From c2fef8d624799bc4c89cc2f3534aad0116c93b3d Mon Sep 17 00:00:00 2001 From: Sergey Zhuravlevich Date: Thu, 7 Jan 2021 09:38:33 +0100 Subject: [PATCH] Prioritize dialog: allow adding multiple criteria at once Adding criteria to the prioritizations list one-by-one can be tedious. This commit enables extended selection in the criteria list and implements adding multiple items. Multiple criteria can be selected with conventional methods, such as holding down Ctrl or Shift keys and clicking the items or holding down the left mouse button and hovering the cursor over the list. All items also can be selected with Ctrl+A. Signed-off-by: Sergey Zhuravlevich --- core/gui/prioritize_dialog.py | 7 ++++--- qt/prioritize_dialog.py | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/gui/prioritize_dialog.py b/core/gui/prioritize_dialog.py index 7437497e..62f57619 100644 --- a/core/gui/prioritize_dialog.py +++ b/core/gui/prioritize_dialog.py @@ -72,9 +72,10 @@ class PrioritizeDialog(GUIObject): # Add selected criteria in criteria_list to prioritization_list. if self.criteria_list.selected_index is None: return - crit = self.criteria[self.criteria_list.selected_index] - self.prioritizations.append(crit) - del crit + for i in self.criteria_list.selected_indexes: + crit = self.criteria[i] + self.prioritizations.append(crit) + del crit self.prioritization_list[:] = [crit.display for crit in self.prioritizations] def remove_selected(self): diff --git a/qt/prioritize_dialog.py b/qt/prioritize_dialog.py index d3e76322..3fb1ef02 100644 --- a/qt/prioritize_dialog.py +++ b/qt/prioritize_dialog.py @@ -102,6 +102,7 @@ class PrioritizeDialog(QDialog): self.promptLabel.setWordWrap(True) self.categoryCombobox = QComboBox() self.criteriaListView = QListView() + self.criteriaListView.setSelectionMode(QAbstractItemView.ExtendedSelection) self.addCriteriaButton = QPushButton( self.style().standardIcon(QStyle.SP_ArrowRight), "" )