diff --git a/openpype/tools/loader/widgets.py b/openpype/tools/loader/widgets.py index 3accaed5ab..ed130f765c 100644 --- a/openpype/tools/loader/widgets.py +++ b/openpype/tools/loader/widgets.py @@ -72,6 +72,31 @@ class LoadErrorMessageBox(ErrorMessageBox): self._messages = messages super(LoadErrorMessageBox, self).__init__("Loading failed", parent) + def _create_top_widget(self, parent_widget): + label_widget = QtWidgets.QLabel(parent_widget) + label_widget.setText( + "Failed to load items" + ) + return label_widget + + def _get_report_data(self): + report_data = [] + for exc_msg, tb_text, repre, subset, version in self._messages: + report_message = ( + "During load error happened on Subset: \"{subset}\"" + " Representation: \"{repre}\" Version: {version}" + "\n\nError message: {message}" + ).format( + subset=subset, + repre=repre, + version=version, + message=exc_msg + ) + if tb_text: + report_message += "\n\n{}".format(tb_text) + report_data.append(report_message) + return report_data + def _create_content(self, content_layout): item_name_template = ( "Subset: {}
" @@ -102,31 +127,6 @@ class LoadErrorMessageBox(ErrorMessageBox): content_layout.addWidget(line) content_layout.addWidget(tb_widget) - def _get_report_data(self): - report_data = [] - for exc_msg, tb_text, repre, subset, version in self._messages: - report_message = ( - "During load error happened on Subset: \"{subset}\"" - " Representation: \"{repre}\" Version: {version}" - "\n\nError message: {message}" - ).format( - subset=subset, - repre=repre, - version=version, - message=exc_msg - ) - if tb_text: - report_message += "\n\n{}".format(tb_text) - report_data.append(report_message) - return report_data - - def _create_top_widget(self, parent_widget): - label_widget = QtWidgets.QLabel(parent_widget) - label_widget.setText( - "Failed to load items" - ) - return label_widget - class SubsetWidget(QtWidgets.QWidget): """A widget that lists the published subsets for an asset""" diff --git a/openpype/tools/utils/error_dialog.py b/openpype/tools/utils/error_dialog.py index 2f39ccf139..0336f4bb08 100644 --- a/openpype/tools/utils/error_dialog.py +++ b/openpype/tools/utils/error_dialog.py @@ -3,20 +3,23 @@ from Qt import QtWidgets, QtCore from .widgets import ClickableFrame, ExpandBtn +def convert_text_for_html(text): + return ( + text + .replace("<", "<") + .replace(">", ">") + .replace("\n", "
") + .replace(" ", " ") + ) + + class TracebackWidget(QtWidgets.QWidget): def __init__(self, tb_text, parent): super(TracebackWidget, self).__init__(parent) # Modify text to match html # - add more replacements when needed - tb_text = ( - tb_text - .replace("<", "<") - .replace(">", ">") - .replace("\n", "
") - .replace(" ", " ") - ) - + tb_text = convert_text_for_html(tb_text) expand_btn = ExpandBtn(self) clickable_frame = ClickableFrame(self) @@ -103,6 +106,10 @@ class ErrorMessageBox(QtWidgets.QDialog): self._report_data = report_data self._content_widget = content_widget + @staticmethod + def convert_text_for_html(text): + return convert_text_for_html(text) + def _create_top_widget(self, parent_widget): label_widget = QtWidgets.QLabel(parent_widget) label_widget.setText(