.*)_(.*)_SHD"
},
"ValidateShadingEngine": {
diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_fusion.json b/openpype/settings/entities/schemas/projects_schema/schema_project_fusion.json
index 464cf2c06d..7971c62300 100644
--- a/openpype/settings/entities/schemas/projects_schema/schema_project_fusion.json
+++ b/openpype/settings/entities/schemas/projects_schema/schema_project_fusion.json
@@ -68,6 +68,50 @@
"label": "Resync profile on each launch"
}
]
+ },
+ {
+ "type": "dict",
+ "collapsible": true,
+ "key": "create",
+ "label": "Creator plugins",
+ "children": [
+ {
+ "type": "dict",
+ "collapsible": true,
+ "key": "CreateSaver",
+ "label": "Create Saver",
+ "is_group": true,
+ "children": [
+ {
+ "type": "text",
+ "key": "temp_rendering_path_template",
+ "label": "Temporary rendering path template"
+ },
+ {
+ "type": "list",
+ "key": "default_variants",
+ "label": "Default variants",
+ "object_type": {
+ "type": "text"
+ }
+ },
+ {
+ "key": "instance_attributes",
+ "label": "Instance attributes",
+ "type": "enum",
+ "multiselection": true,
+ "enum_items": [
+ {
+ "reviewable": "Reviewable"
+ },
+ {
+ "farm_rendering": "Farm rendering"
+ }
+ ]
+ }
+ ]
+ }
+ ]
}
]
}
diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_max.json b/openpype/settings/entities/schemas/projects_schema/schema_project_max.json
index 4fba9aff0a..42506559d0 100644
--- a/openpype/settings/entities/schemas/projects_schema/schema_project_max.json
+++ b/openpype/settings/entities/schemas/projects_schema/schema_project_max.json
@@ -73,6 +73,10 @@
}
}
]
+ },
+ {
+ "type": "schema",
+ "name": "schema_max_publish"
}
]
}
diff --git a/openpype/settings/entities/schemas/projects_schema/schemas/schema_max_publish.json b/openpype/settings/entities/schemas/projects_schema/schemas/schema_max_publish.json
new file mode 100644
index 0000000000..ea08c735a6
--- /dev/null
+++ b/openpype/settings/entities/schemas/projects_schema/schemas/schema_max_publish.json
@@ -0,0 +1,33 @@
+{
+ "type": "dict",
+ "collapsible": true,
+ "key": "publish",
+ "label": "Publish plugins",
+ "children": [
+ {
+ "type": "dict",
+ "collapsible": true,
+ "checkbox_key": "enabled",
+ "key": "ValidateFrameRange",
+ "label": "Validate Frame Range",
+ "is_group": true,
+ "children": [
+ {
+ "type": "boolean",
+ "key": "enabled",
+ "label": "Enabled"
+ },
+ {
+ "type": "boolean",
+ "key": "optional",
+ "label": "Optional"
+ },
+ {
+ "type": "boolean",
+ "key": "active",
+ "label": "Active"
+ }
+ ]
+ }
+ ]
+ }
diff --git a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_publish.json b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_publish.json
index 346948c658..07c8d8715b 100644
--- a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_publish.json
+++ b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_publish.json
@@ -126,6 +126,11 @@
"key": "optional",
"label": "Optional"
},
+ {
+ "type": "boolean",
+ "key": "active",
+ "label": "Active"
+ },
{
"type": "label",
"label": "Shader name regex can use named capture group asset to validate against current asset name.Example:
^.*(?P=<asset>.+)_SHD
"
diff --git a/openpype/vendor/python/common/scriptsmenu/scriptsmenu.py b/openpype/vendor/python/common/scriptsmenu/scriptsmenu.py
index 6f6d0b5715..8ab621f757 100644
--- a/openpype/vendor/python/common/scriptsmenu/scriptsmenu.py
+++ b/openpype/vendor/python/common/scriptsmenu/scriptsmenu.py
@@ -19,9 +19,9 @@ class ScriptsMenu(QtWidgets.QMenu):
Args:
title (str): the name of the root menu which will be created
-
+
parent (QtWidgets.QObject) : the QObject to parent the menu to
-
+
Returns:
None
@@ -94,7 +94,7 @@ class ScriptsMenu(QtWidgets.QMenu):
parent(QtWidgets.QWidget): the object to parent the menu to
title(str): the title of the menu
-
+
Returns:
QtWidget.QMenu instance
"""
@@ -111,7 +111,7 @@ class ScriptsMenu(QtWidgets.QMenu):
return menu
def add_script(self, parent, title, command, sourcetype, icon=None,
- tags=None, label=None, tooltip=None):
+ tags=None, label=None, tooltip=None, shortcut=None):
"""Create an action item which runs a script when clicked
Args:
@@ -134,6 +134,8 @@ class ScriptsMenu(QtWidgets.QMenu):
tooltip (str): A tip for the user about the usage fo the tool
+ shortcut (str): A shortcut to run the command
+
Returns:
QtWidget.QAction instance
@@ -166,6 +168,9 @@ class ScriptsMenu(QtWidgets.QMenu):
raise RuntimeError("Script action can't be "
"processed: {}".format(e))
+ if shortcut:
+ script_action.setShortcut(shortcut)
+
if icon:
iconfile = os.path.expandvars(icon)
script_action.iconfile = iconfile
@@ -253,7 +258,7 @@ class ScriptsMenu(QtWidgets.QMenu):
def _update_search(self, search):
"""Hide all the samples which do not match the user's import
-
+
Returns:
None
diff --git a/openpype/version.py b/openpype/version.py
index 7df154fe1e..3a0d05be0e 100644
--- a/openpype/version.py
+++ b/openpype/version.py
@@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
"""Package declaring Pype version."""
-__version__ = "3.15.7-nightly.2"
+__version__ = "3.15.7"
diff --git a/pyproject.toml b/pyproject.toml
index 8f8c8ac47b..d2158a9e18 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "OpenPype"
-version = "3.15.6" # OpenPype
+version = "3.15.7" # OpenPype
description = "Open VFX and Animation pipeline with support."
authors = ["OpenPype Team "]
license = "MIT License"
diff --git a/tests/unit/openpype/plugins/publish/test_validate_sequence_frames.py b/tests/unit/openpype/hosts/unreal/plugins/publish/test_validate_sequence_frames.py
similarity index 100%
rename from tests/unit/openpype/plugins/publish/test_validate_sequence_frames.py
rename to tests/unit/openpype/hosts/unreal/plugins/publish/test_validate_sequence_frames.py