From 0887fcf13ecaf35fcb34ef0bc46829f647d030c4 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 3 Jun 2021 10:34:40 +0200 Subject: [PATCH 1/7] it is possible to set if should reset settings on show --- openpype/tools/settings/settings/window.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openpype/tools/settings/settings/window.py b/openpype/tools/settings/settings/window.py index 7a6536fd78..bddac7e98b 100644 --- a/openpype/tools/settings/settings/window.py +++ b/openpype/tools/settings/settings/window.py @@ -19,11 +19,11 @@ class MainWidget(QtWidgets.QWidget): widget_width = 1000 widget_height = 600 - def __init__(self, user_role, parent=None): + def __init__(self, user_role, parent=None, reset_on_show=True): super(MainWidget, self).__init__(parent) self._user_passed = False - self._reset_on_show = True + self._reset_on_show = reset_on_show self._password_dialog = None @@ -95,6 +95,7 @@ class MainWidget(QtWidgets.QWidget): def showEvent(self, event): super(MainWidget, self).showEvent(event) if self._reset_on_show: + self._reset_on_show = False self.reset() def _show_password_dialog(self): From 525675b6b6e35fd79b4b593f18cfdf6fac8ca3df Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 3 Jun 2021 10:35:10 +0200 Subject: [PATCH 2/7] tray action won't auto trigger reset on settings show --- openpype/modules/settings_action.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openpype/modules/settings_action.py b/openpype/modules/settings_action.py index f5bcb5342d..f37d1668ea 100644 --- a/openpype/modules/settings_action.py +++ b/openpype/modules/settings_action.py @@ -66,7 +66,8 @@ class SettingsAction(PypeModule, ITrayAction): if self.settings_window: return from openpype.tools.settings import MainWidget - self.settings_window = MainWidget(self.user_role) + + self.settings_window = MainWidget(self.user_role, reset_on_show=False) self.settings_window.trigger_restart.connect(self._on_trigger_restart) def _on_trigger_restart(self): From 427491e30b070b980313816aef4a93b063d913b1 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 3 Jun 2021 10:35:35 +0200 Subject: [PATCH 3/7] tray settings action use manager role --- openpype/modules/settings_action.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/modules/settings_action.py b/openpype/modules/settings_action.py index f37d1668ea..8a3ee4792a 100644 --- a/openpype/modules/settings_action.py +++ b/openpype/modules/settings_action.py @@ -45,7 +45,7 @@ class SettingsAction(PypeModule, ITrayAction): # User role # TODO should be changeable - self.user_role = "developer" + self.user_role = "manager" # Tray attributes self.settings_window = None From 85b6a644e5f2395bc9d10a8877060917bf08b15c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 3 Jun 2021 10:36:05 +0200 Subject: [PATCH 4/7] use different roles of settings based on arguments --- openpype/pype_commands.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openpype/pype_commands.py b/openpype/pype_commands.py index 326ca8349a..f86ece6799 100644 --- a/openpype/pype_commands.py +++ b/openpype/pype_commands.py @@ -27,7 +27,10 @@ class PypeCommands: from openpype.tools import settings # TODO change argument options to allow enum of user roles - user_role = "developer" + if dev: + user_role = "developer" + else: + user_role = "manager" settings.main(user_role) @staticmethod From 6fe17a19694519733b8c93a194040db8a7e4aa93 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 3 Jun 2021 10:36:33 +0200 Subject: [PATCH 5/7] reduced settings roles --- openpype/tools/settings/__init__.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/openpype/tools/settings/__init__.py b/openpype/tools/settings/__init__.py index 8f60276cc4..1a4752fe54 100644 --- a/openpype/tools/settings/__init__.py +++ b/openpype/tools/settings/__init__.py @@ -16,14 +16,14 @@ from .settings import ( def main(user_role=None): if user_role is None: - user_role = "artist" - else: - user_role_low = user_role.lower() - allowed_roles = ("developer", "manager", "artist") - if user_role_low not in allowed_roles: - raise ValueError("Invalid user role \"{}\". Expected {}".format( - user_role, ", ".join(allowed_roles) - )) + user_role = "manager" + + user_role_low = user_role.lower() + allowed_roles = ("developer", "manager") + if user_role_low not in allowed_roles: + raise ValueError("Invalid user role \"{}\". Expected {}".format( + user_role, ", ".join(allowed_roles) + )) app = QtWidgets.QApplication(sys.argv) app.setWindowIcon(QtGui.QIcon(style.app_icon_path())) From bdd5c382f8419e444976b080479446fd7dee92f0 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 3 Jun 2021 10:37:26 +0200 Subject: [PATCH 6/7] handling of DefaultsNotDefined exception won't add widgets to gui --- .../tools/settings/settings/categories.py | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index b072a7f337..34ab4c464a 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -351,6 +351,7 @@ class SettingsCategoryWidget(QtWidgets.QWidget): dialog = None try: self._create_root_entity() + self.entity.add_require_restart_change_callback( self._on_require_restart_change ) @@ -364,6 +365,16 @@ class SettingsCategoryWidget(QtWidgets.QWidget): self.ignore_input_changes.set_ignore(False) + except DefaultsNotDefined: + dialog = QtWidgets.QMessageBox(self) + dialog.setWindowTitle("Missing default values") + dialog.setText(( + "Default values are not set and you" + " don't have permissions to modify them." + " Please contact OpenPype team." + )) + dialog.setIcon(QtWidgets.QMessageBox.Critical) + except SchemaError as exc: dialog = QtWidgets.QMessageBox(self) dialog.setWindowTitle("Schema error") @@ -494,12 +505,7 @@ class SystemWidget(SettingsCategoryWidget): self.modify_defaults_checkbox.setEnabled(True) except DefaultsNotDefined: if not self.modify_defaults_checkbox: - msg_box = QtWidgets.QMessageBox( - "BUG: Default values are not set and you" - " don't have permissions to modify them." - ) - msg_box.exec_() - return + raise self.entity.set_defaults_state() self.modify_defaults_checkbox.setChecked(True) @@ -571,12 +577,7 @@ class ProjectWidget(SettingsCategoryWidget): except DefaultsNotDefined: if not self.modify_defaults_checkbox: - msg_box = QtWidgets.QMessageBox( - "BUG: Default values are not set and you" - " don't have permissions to modify them." - ) - msg_box.exec_() - return + raise self.entity.set_defaults_state() self.modify_defaults_checkbox.setChecked(True) From 855ec95df2a7673b9b555c6727fda1be42aa041b Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 3 Jun 2021 10:51:45 +0200 Subject: [PATCH 7/7] removed default value for dev argument in cli --- openpype/cli.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/cli.py b/openpype/cli.py index 12997cc7f4..9f4561b82e 100644 --- a/openpype/cli.py +++ b/openpype/cli.py @@ -26,7 +26,7 @@ def main(ctx): @main.command() @click.option("-d", "--dev", is_flag=True, help="Settings in Dev mode") -def settings(dev=False): +def settings(dev): """Show Pype Settings UI.""" PypeCommands().launch_settings_gui(dev)