diff --git a/openpype/hosts/blender/api/ops.py b/openpype/hosts/blender/api/ops.py index a73ef0133a..3069c3e1c9 100644 --- a/openpype/hosts/blender/api/ops.py +++ b/openpype/hosts/blender/api/ops.py @@ -306,6 +306,17 @@ class LaunchManager(LaunchQtApp): self._window.refresh() +class LaunchLibrary(LaunchQtApp): + """Launch Library Loader.""" + + bl_idname = "wm.library_loader" + bl_label = "Library..." + _tool_name = "libraryloader" + + def before_window_show(self): + self._window.refresh() + + class LaunchWorkFiles(LaunchQtApp): """Launch Avalon Work Files.""" @@ -365,6 +376,7 @@ class TOPBAR_MT_avalon(bpy.types.Menu): icon_value=pyblish_menu_icon_id, ) layout.operator(LaunchManager.bl_idname, text="Manage...") + layout.operator(LaunchLibrary.bl_idname, text="Library...") layout.separator() layout.operator(LaunchWorkFiles.bl_idname, text="Work Files...") # TODO (jasper): maybe add 'Reload Pipeline', 'Reset Frame Range' and @@ -382,6 +394,7 @@ classes = [ LaunchLoader, LaunchPublisher, LaunchManager, + LaunchLibrary, LaunchWorkFiles, TOPBAR_MT_avalon, ] diff --git a/openpype/hosts/flame/api/menu.py b/openpype/hosts/flame/api/menu.py index 8b4bfd4550..7f1a6a24e2 100644 --- a/openpype/hosts/flame/api/menu.py +++ b/openpype/hosts/flame/api/menu.py @@ -110,19 +110,19 @@ class FlameMenuProjectConnect(_FlameMenuApp): menu = deepcopy(self.menu) menu['actions'].append({ - "name": "Workfiles ...", + "name": "Workfiles...", "execute": lambda x: self.tools_helper.show_workfiles() }) menu['actions'].append({ - "name": "Load ...", + "name": "Load...", "execute": lambda x: self.tools_helper.show_loader() }) menu['actions'].append({ - "name": "Manage ...", + "name": "Manage...", "execute": lambda x: self.tools_helper.show_scene_inventory() }) menu['actions'].append({ - "name": "Library ...", + "name": "Library...", "execute": lambda x: self.tools_helper.show_library_loader() }) return menu @@ -164,24 +164,27 @@ class FlameMenuTimeline(_FlameMenuApp): menu = deepcopy(self.menu) menu['actions'].append({ - "name": "Create ...", + "name": "Create...", "execute": lambda x: callback_selection( x, self.tools_helper.show_creator) }) menu['actions'].append({ - "name": "Publish ...", + "name": "Publish...", "execute": lambda x: callback_selection( x, self.tools_helper.show_publish) }) menu['actions'].append({ - "name": "Load ...", + "name": "Load...", "execute": lambda x: self.tools_helper.show_loader() }) menu['actions'].append({ - "name": "Manage ...", + "name": "Manage...", "execute": lambda x: self.tools_helper.show_scene_inventory() }) - + menu['actions'].append({ + "name": "Library...", + "execute": lambda x: self.tools_helper.show_library_loader() + }) return menu def refresh(self, *args, **kwargs): diff --git a/openpype/hosts/fusion/api/menu.py b/openpype/hosts/fusion/api/menu.py index 5d2efb4911..d1c01163b1 100644 --- a/openpype/hosts/fusion/api/menu.py +++ b/openpype/hosts/fusion/api/menu.py @@ -54,13 +54,13 @@ class OpenPypeMenu(QtWidgets.QWidget): ) self.render_mode_widget = None self.setWindowTitle("OpenPype") - workfiles_btn = QtWidgets.QPushButton("Workfiles ...", self) - create_btn = QtWidgets.QPushButton("Create ...", self) - publish_btn = QtWidgets.QPushButton("Publish ...", self) - load_btn = QtWidgets.QPushButton("Load ...", self) - inventory_btn = QtWidgets.QPushButton("Inventory ...", self) - libload_btn = QtWidgets.QPushButton("Library ...", self) - rendermode_btn = QtWidgets.QPushButton("Set render mode ...", self) + workfiles_btn = QtWidgets.QPushButton("Workfiles...", self) + create_btn = QtWidgets.QPushButton("Create...", self) + publish_btn = QtWidgets.QPushButton("Publish...", self) + load_btn = QtWidgets.QPushButton("Load...", self) + inventory_btn = QtWidgets.QPushButton("Inventory...", self) + libload_btn = QtWidgets.QPushButton("Library...", self) + rendermode_btn = QtWidgets.QPushButton("Set render mode...", self) duplicate_with_inputs_btn = QtWidgets.QPushButton( "Duplicate with input connections", self ) diff --git a/openpype/hosts/hiero/api/menu.py b/openpype/hosts/hiero/api/menu.py index 5aaab7a2e5..306bef87ca 100644 --- a/openpype/hosts/hiero/api/menu.py +++ b/openpype/hosts/hiero/api/menu.py @@ -72,7 +72,7 @@ def menu_install(): menu.addSeparator() - workfiles_action = menu.addAction("Work Files ...") + workfiles_action = menu.addAction("Work Files...") workfiles_action.setIcon(QtGui.QIcon("icons:Position.png")) workfiles_action.triggered.connect(launch_workfiles_app) @@ -82,30 +82,36 @@ def menu_install(): menu.addSeparator() - publish_action = menu.addAction("Publish ...") + publish_action = menu.addAction("Publish...") publish_action.setIcon(QtGui.QIcon("icons:Output.png")) publish_action.triggered.connect( lambda *args: publish(hiero.ui.mainWindow()) ) - creator_action = menu.addAction("Create ...") + creator_action = menu.addAction("Create...") creator_action.setIcon(QtGui.QIcon("icons:CopyRectangle.png")) creator_action.triggered.connect( lambda: host_tools.show_creator(parent=main_window) ) - loader_action = menu.addAction("Load ...") + loader_action = menu.addAction("Load...") loader_action.setIcon(QtGui.QIcon("icons:CopyRectangle.png")) loader_action.triggered.connect( lambda: host_tools.show_loader(parent=main_window) ) - sceneinventory_action = menu.addAction("Manage ...") + sceneinventory_action = menu.addAction("Manage...") sceneinventory_action.setIcon(QtGui.QIcon("icons:CopyRectangle.png")) sceneinventory_action.triggered.connect( lambda: host_tools.show_scene_inventory(parent=main_window) ) + library_action = menu.addAction("Library...") + library_action.setIcon(QtGui.QIcon("icons:CopyRectangle.png")) + library_action.triggered.connect( + lambda: host_tools.show_library_loader(parent=main_window) + ) + if os.getenv("OPENPYPE_DEVELOP"): menu.addSeparator() reload_action = menu.addAction("Reload pipeline") diff --git a/openpype/hosts/houdini/startup/MainMenuCommon.xml b/openpype/hosts/houdini/startup/MainMenuCommon.xml index bc4a2e809a..b8c7f93d76 100644 --- a/openpype/hosts/houdini/startup/MainMenuCommon.xml +++ b/openpype/hosts/houdini/startup/MainMenuCommon.xml @@ -5,7 +5,7 @@ - + - + + + + + + - + - - + + +host_tools.show_library_loader(parent=parent) +]]> - + +]]> @@ -63,7 +73,8 @@ host_tools.show_workfiles(parent) import hou from openpype.tools.utils import host_tools parent = hou.qt.mainWindow() -host_tools.show_experimental_tools_dialog(parent)]]> +host_tools.show_experimental_tools_dialog(parent) +]]> diff --git a/openpype/hosts/nuke/api/pipeline.py b/openpype/hosts/nuke/api/pipeline.py index c47187666b..fbbc39f98f 100644 --- a/openpype/hosts/nuke/api/pipeline.py +++ b/openpype/hosts/nuke/api/pipeline.py @@ -183,7 +183,12 @@ def _install_menu(): "Manage...", lambda: host_tools.show_scene_inventory(parent=main_window) ) - + menu.addCommand( + "Library...", + lambda: host_tools.show_library_loader( + parent=main_window + ) + ) menu.addSeparator() menu.addCommand( "Set Resolution", diff --git a/openpype/hosts/resolve/api/menu.py b/openpype/hosts/resolve/api/menu.py index 0d5930d275..9e0dd12376 100644 --- a/openpype/hosts/resolve/api/menu.py +++ b/openpype/hosts/resolve/api/menu.py @@ -54,15 +54,15 @@ class OpenPypeMenu(QtWidgets.QWidget): ) self.setWindowTitle("OpenPype") - workfiles_btn = QtWidgets.QPushButton("Workfiles ...", self) - create_btn = QtWidgets.QPushButton("Create ...", self) - publish_btn = QtWidgets.QPushButton("Publish ...", self) - load_btn = QtWidgets.QPushButton("Load ...", self) - inventory_btn = QtWidgets.QPushButton("Inventory ...", self) - subsetm_btn = QtWidgets.QPushButton("Subset Manager ...", self) - libload_btn = QtWidgets.QPushButton("Library ...", self) + workfiles_btn = QtWidgets.QPushButton("Workfiles...", self) + create_btn = QtWidgets.QPushButton("Create...", self) + publish_btn = QtWidgets.QPushButton("Publish...", self) + load_btn = QtWidgets.QPushButton("Load...", self) + inventory_btn = QtWidgets.QPushButton("Inventory...", self) + subsetm_btn = QtWidgets.QPushButton("Subset Manager...", self) + libload_btn = QtWidgets.QPushButton("Library...", self) experimental_btn = QtWidgets.QPushButton( - "Experimental tools ...", self + "Experimental tools...", self ) # rename_btn = QtWidgets.QPushButton("Rename", self) # set_colorspace_btn = QtWidgets.QPushButton(