--- a/Debugger/VariablesFilterDialog.py Wed Sep 14 20:08:16 2016 +0200 +++ b/Debugger/VariablesFilterDialog.py Fri Sep 16 19:28:39 2016 +0200 @@ -9,9 +9,10 @@ from __future__ import unicode_literals -from PyQt5.QtWidgets import QDialog, QDialogButtonBox +from PyQt5.QtCore import Qt +from PyQt5.QtWidgets import QDialog, QDialogButtonBox, QListWidgetItem -from Debugger.Config import ConfigVarTypeDispStrings +from Debugger.Config import ConfigVarTypeDispStrings, ConfigVarTypeFilters import Preferences from .Ui_VariablesFilterDialog import Ui_VariablesFilterDialog @@ -41,19 +42,15 @@ self.defaultButton = self.buttonBox.addButton( self.tr("Save Default"), QDialogButtonBox.ActionRole) - lDefaultFilter, gDefaultFilter = Preferences.getVarFilters() + #populate the list widgets and set the default selection + for widget in self.localsList, self.globalsList: + for varType, varTypeStr in ConfigVarTypeDispStrings.items(): + itm = QListWidgetItem(self.tr(varTypeStr), widget) + itm.setData(Qt.UserRole, ConfigVarTypeFilters[varType]) + widget.addItem(itm) - #populate the listboxes and set the default selection - for lb in self.localsList, self.globalsList: - for ts in ConfigVarTypeDispStrings: - lb.addItem(self.tr(ts)) - - for filterIndex in lDefaultFilter: - itm = self.localsList.item(filterIndex) - itm.setSelected(True) - for filterIndex in gDefaultFilter: - itm = self.globalsList.item(filterIndex) - itm.setSelected(True) + lDefaultFilter, gDefaultFilter = Preferences.getVarFilters() + self.setSelection(lDefaultFilter, gDefaultFilter) def getSelection(self): """ @@ -63,17 +60,18 @@ locals variables filter, the second the globals variables filter. """ lList = [] - gList = [] for row in range(self.localsList.count()): itm = self.localsList.item(row) if itm.isSelected(): - lList.append(row) + lList.append(itm.data(Qt.UserRole)) + + gList = [] for row in range(self.globalsList.count()): itm = self.globalsList.item(row) if itm.isSelected(): - gList.append(row) + gList.append(itm.data(Qt.UserRole)) return (lList, gList) - + def setSelection(self, lList, gList): """ Public slot to set the current selection. @@ -83,10 +81,11 @@ """ for row in range(self.localsList.count()): itm = self.localsList.item(row) - itm.setSelected(row in lList) + itm.setSelected(itm.data(Qt.UserRole) in lList) + for row in range(self.globalsList.count()): itm = self.globalsList.item(row) - itm.setSelected(row in gList) + itm.setSelected(itm.data(Qt.UserRole) in gList) def on_buttonBox_clicked(self, button): """