Debugger/VariablesFilterDialog.py

changeset 5171
f1e9eebd5469
parent 5166
5de86adef66d
child 5389
9b1c800daff3
diff -r 74e000797a93 -r f1e9eebd5469 Debugger/VariablesFilterDialog.py
--- 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):
         """

eric ide

mercurial