Merge pull request #4473 from ynput/feature/report_plugin_discovery_crashes

Publisher: Report also crashed creators and convertors
This commit is contained in:
Jakub Trllo 2023-02-16 15:03:19 +01:00 committed by GitHub
commit 973aa11fc4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 79 additions and 44 deletions

View file

@ -169,6 +169,8 @@ class PublishReport:
def __init__(self, controller):
self.controller = controller
self._create_discover_result = None
self._convert_discover_result = None
self._publish_discover_result = None
self._plugin_data = []
self._plugin_data_with_plugin = []
@ -181,6 +183,10 @@ class PublishReport:
def reset(self, context, create_context):
"""Reset report and clear all data."""
self._create_discover_result = create_context.creator_discover_result
self._convert_discover_result = (
create_context.convertor_discover_result
)
self._publish_discover_result = create_context.publish_discover_result
self._plugin_data = []
self._plugin_data_with_plugin = []
@ -293,9 +299,19 @@ class PublishReport:
if plugin not in self._stored_plugins:
plugins_data.append(self._create_plugin_data_item(plugin))
crashed_file_paths = {}
reports = []
if self._create_discover_result is not None:
reports.append(self._create_discover_result)
if self._convert_discover_result is not None:
reports.append(self._convert_discover_result)
if self._publish_discover_result is not None:
items = self._publish_discover_result.crashed_file_paths.items()
reports.append(self._publish_discover_result)
crashed_file_paths = {}
for report in reports:
items = report.crashed_file_paths.items()
for filepath, exc_info in items:
crashed_file_paths[filepath] = "".join(
traceback.format_exception(*exc_info)

View file

@ -457,13 +457,14 @@ class CreateWidget(QtWidgets.QWidget):
# TODO add details about creator
new_creators.add(identifier)
if identifier in existing_items:
is_new = False
item = existing_items[identifier]
else:
is_new = True
item = QtGui.QStandardItem()
item.setFlags(
QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable
)
self._creators_model.appendRow(item)
item.setData(creator_item.label, QtCore.Qt.DisplayRole)
item.setData(creator_item.show_order, CREATOR_SORT_ROLE)
@ -473,6 +474,8 @@ class CreateWidget(QtWidgets.QWidget):
CREATOR_THUMBNAIL_ENABLED_ROLE
)
item.setData(creator_item.family, FAMILY_ROLE)
if is_new:
self._creators_model.appendRow(item)
# Remove families that are no more available
for identifier in (old_creators - new_creators):