From 921fc00e8f8471d00bb14d571ea77c0d232492b4 Mon Sep 17 00:00:00 2001 From: David Lai Date: Sun, 12 Sep 2021 23:26:53 +0800 Subject: [PATCH] keep selected project in view when being archived --- openpype/tools/settings/settings/widgets.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/widgets.py b/openpype/tools/settings/settings/widgets.py index 6dee90daa9..d1a8bd8958 100644 --- a/openpype/tools/settings/settings/widgets.py +++ b/openpype/tools/settings/settings/widgets.py @@ -623,7 +623,10 @@ class ProjectListSortFilterProxy(QtCore.QSortFilterProxyModel): return True index = self.sourceModel().index(source_row, 0, source_parent) - return bool(index.data(self.filterRole())) + is_active = bool(index.data(self.filterRole())) + is_selected = bool(index.data(ProjectListWidget.ProjectSelectedRole)) + + return is_active or is_selected def is_filter_enabled(self): return self._enable_filter @@ -639,6 +642,7 @@ class ProjectListWidget(QtWidgets.QWidget): ProjectSortRole = QtCore.Qt.UserRole + 10 ProjectFilterRole = QtCore.Qt.UserRole + 11 + ProjectSelectedRole = QtCore.Qt.UserRole + 12 def __init__(self, parent, no_archived=False): self._parent = parent @@ -756,6 +760,8 @@ class ProjectListWidget(QtWidgets.QWidget): found_items = model.findItems(self.default) index = model.indexFromItem(found_items[0]) + model.setData(index, True, self.ProjectSelectedRole) + index = proxy.mapFromSource(index) self.project_list.selectionModel().clear() @@ -806,6 +812,7 @@ class ProjectListWidget(QtWidgets.QWidget): row = QtGui.QStandardItem(project_name) row.setData(visible, self.ProjectFilterRole) + row.setData(False, self.ProjectSelectedRole) if is_archived: row.setData("~" + project_name, self.ProjectSortRole)