From 8270f2fc402a7cb119fdc71ead0bd474f0d7c9d6 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 8 Dec 2021 13:07:57 +0100 Subject: [PATCH] catch exceptions happened during applying values from different project --- openpype/tools/settings/settings/base.py | 40 ++++++++++++++++++------ 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/openpype/tools/settings/settings/base.py b/openpype/tools/settings/settings/base.py index 94687f4f35..6776845125 100644 --- a/openpype/tools/settings/settings/base.py +++ b/openpype/tools/settings/settings/base.py @@ -1,4 +1,6 @@ +import sys import json +import traceback from Qt import QtWidgets, QtGui, QtCore @@ -316,17 +318,35 @@ class BaseWidget(QtWidgets.QWidget): def _apply_values_from_project(self, project_name): with self.category_widget.working_state_context(): - path_keys = [ - item - for item in self.entity.path.split("/") - if item - ] + try: + path_keys = [ + item + for item in self.entity.path.split("/") + if item + ] + entity = ProjectSettings(project_name) + for key in path_keys: + entity = entity[key] + self.entity.set(entity.value) - settings = ProjectSettings(project_name) - entity = settings - for key in path_keys: - entity = entity[key] - self.entity.set(entity.value) + except Exception: + if project_name is None: + project_name = DEFAULT_PROJECT_LABEL + + # TODO better message + title = "Applying values failed" + msg = "Using values from project \"{}\" failed.".format( + project_name + ) + detail_msg = "".join( + traceback.format_exception(*sys.exc_info()) + ) + dialog = QtWidgets.QMessageBox(self) + dialog.setWindowTitle(title) + dialog.setIcon(QtWidgets.QMessageBox.Warning) + dialog.setText(msg) + dialog.setDetailedText(detail_msg) + dialog.exec_() def show_actions_menu(self, event=None): if event and event.button() != QtCore.Qt.RightButton: