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(