From 639be45a113d1c669fb86136ea683eab72691808 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 27 Sep 2021 19:30:45 +0200 Subject: [PATCH 1/4] added basics of settings validations --- openpype/settings/__init__.py | 7 +++++-- openpype/tools/tray/pype_tray.py | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/openpype/settings/__init__.py b/openpype/settings/__init__.py index 74f2684b2a2..9d7598a948d 100644 --- a/openpype/settings/__init__.py +++ b/openpype/settings/__init__.py @@ -25,7 +25,8 @@ ) from .entities import ( SystemSettings, - ProjectSettings + ProjectSettings, + DefaultsNotDefined ) @@ -51,6 +52,8 @@ "get_anatomy_settings", "get_environments", "get_local_settings", + "SystemSettings", - "ProjectSettings" + "ProjectSettings", + "DefaultsNotDefined" ) diff --git a/openpype/tools/tray/pype_tray.py b/openpype/tools/tray/pype_tray.py index 35b254513ff..61a938941cb 100644 --- a/openpype/tools/tray/pype_tray.py +++ b/openpype/tools/tray/pype_tray.py @@ -17,6 +17,11 @@ from openpype.lib import get_pype_execute_args from openpype.modules import TrayModulesManager from openpype import style +from openpype.settings import ( + SystemSettings, + ProjectSettings, + DefaultsNotDefined +) from .pype_info_widget import PypeInfoWidget @@ -114,6 +119,18 @@ def initialize_modules(self): self.main_thread_timer = main_thread_timer + def _validate_settings_defaults(self): + valid = True + try: + SystemSettings() + ProjectSettings() + + except DefaultsNotDefined: + valid = False + + if valid: + return + def show_tray_message(self, title, message, icon=None, msecs=None): """Show tray message. From 9888f2750bdce56360924f32df8b3a524d85e638 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 27 Sep 2021 19:31:05 +0200 Subject: [PATCH 2/4] run startup validations after tray manager initialization --- openpype/tools/tray/pype_tray.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/openpype/tools/tray/pype_tray.py b/openpype/tools/tray/pype_tray.py index 61a938941cb..755154095df 100644 --- a/openpype/tools/tray/pype_tray.py +++ b/openpype/tools/tray/pype_tray.py @@ -119,6 +119,13 @@ def initialize_modules(self): self.main_thread_timer = main_thread_timer + + self.execute_in_main_thread(self._startup_validations) + + def _startup_validations(self): + """Run possible startup validations.""" + self._validate_settings_defaults() + def _validate_settings_defaults(self): valid = True try: From c25f1307a7f05b982c9f44b1ecbc3720e7d98999 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 27 Sep 2021 19:31:39 +0200 Subject: [PATCH 3/4] show messageboxwhen settings are not valid --- openpype/tools/tray/pype_tray.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/openpype/tools/tray/pype_tray.py b/openpype/tools/tray/pype_tray.py index 755154095df..279d71980fa 100644 --- a/openpype/tools/tray/pype_tray.py +++ b/openpype/tools/tray/pype_tray.py @@ -119,6 +119,8 @@ def initialize_modules(self): self.main_thread_timer = main_thread_timer + # For storing missing settings dialog + self._settings_validation_dialog = None self.execute_in_main_thread(self._startup_validations) @@ -138,6 +140,32 @@ def _validate_settings_defaults(self): if valid: return + title = "Settings miss default values" + msg = ( + "Your OpenPype may not work as expected because have missing" + " default settings values. Please contact OpenPype team." + ) + msg_box = QtWidgets.QMessageBox( + QtWidgets.QMessageBox.Warning, + title, + msg, + QtWidgets.QMessageBox.Ok, + flags=QtCore.Qt.Dialog + ) + icon = QtGui.QIcon(resources.get_openpype_icon_filepath()) + msg_box.setWindowIcon(icon) + msg_box.setStyleSheet(style.load_stylesheet()) + msg_box.buttonClicked.connect(self._post_validate_settings_defaults) + + self._settings_validation_dialog = msg_box + + msg_box.show() + + def _post_validate_settings_defaults(self): + widget = self._settings_validation_dialog + self._settings_validation_dialog = None + widget.deleteLater() + def show_tray_message(self, title, message, icon=None, msecs=None): """Show tray message. From b1cd7f9b7a7f929f6a4a763f77cee9b9f7c137d9 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Wed, 29 Sep 2021 17:13:29 +0200 Subject: [PATCH 4/4] message text changes Still not sure it it will work for a studio who is self maintaining --- openpype/tools/tray/pype_tray.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openpype/tools/tray/pype_tray.py b/openpype/tools/tray/pype_tray.py index 279d71980fa..fde43980cca 100644 --- a/openpype/tools/tray/pype_tray.py +++ b/openpype/tools/tray/pype_tray.py @@ -142,8 +142,9 @@ def _validate_settings_defaults(self): title = "Settings miss default values" msg = ( - "Your OpenPype may not work as expected because have missing" - " default settings values. Please contact OpenPype team." + "Your OpenPype will not work as expected! \n" + "Some default values in settigs are missing. \n\n" + "Please contact OpenPype team." ) msg_box = QtWidgets.QMessageBox( QtWidgets.QMessageBox.Warning,