Skip to content
This repository has been archived by the owner on Sep 20, 2024. It is now read-only.

Commit

Permalink
Merge pull request #2080 from pypeclub/feature/PYPE-1221_Missing-defa…
Browse files Browse the repository at this point in the history
…ults-in-settings

Tray UI: Message box about missing settings defaults
  • Loading branch information
iLLiCiTiT authored Sep 29, 2021
2 parents 077e243 + b1cd7f9 commit 35b86d1
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 2 deletions.
7 changes: 5 additions & 2 deletions openpype/settings/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@
)
from .entities import (
SystemSettings,
ProjectSettings
ProjectSettings,
DefaultsNotDefined
)


Expand All @@ -51,6 +52,8 @@
"get_anatomy_settings",
"get_environments",
"get_local_settings",

"SystemSettings",
"ProjectSettings"
"ProjectSettings",
"DefaultsNotDefined"
)
53 changes: 53 additions & 0 deletions openpype/tools/tray/pype_tray.py
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -114,6 +119,54 @@ 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)

def _startup_validations(self):
"""Run possible startup validations."""
self._validate_settings_defaults()

def _validate_settings_defaults(self):
valid = True
try:
SystemSettings()
ProjectSettings()

except DefaultsNotDefined:
valid = False

if valid:
return

title = "Settings miss default values"
msg = (
"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,
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.
Expand Down

0 comments on commit 35b86d1

Please sign in to comment.