Helpviewer/QtHelpFiltersDialog.py

changeset 5597
3d88d53f8c2b
parent 5587
ea526b78ee6c
child 6048
82ad8ec9548c
equal deleted inserted replaced
5596:4550d8e34765 5597:3d88d53f8c2b
49 self.__removedFilters = [] 49 self.__removedFilters = []
50 self.__filterMap = {} 50 self.__filterMap = {}
51 self.__filterMapBackup = {} 51 self.__filterMapBackup = {}
52 self.__removedAttributes = [] 52 self.__removedAttributes = []
53 53
54 for filter in helpEngineCore.customFilters(): 54 for customFilter in helpEngineCore.customFilters():
55 atts = helpEngineCore.filterAttributes(filter) 55 atts = helpEngineCore.filterAttributes(customFilter)
56 self.__filterMapBackup[filter] = atts 56 self.__filterMapBackup[customFilter] = atts
57 if filter not in self.__filterMap: 57 if customFilter not in self.__filterMap:
58 self.__filterMap[filter] = atts 58 self.__filterMap[customFilter] = atts
59 59
60 self.filtersList.addItems(sorted(self.__filterMap.keys())) 60 self.filtersList.addItems(sorted(self.__filterMap.keys()))
61 for attr in helpEngineCore.filterAttributes(): 61 for attr in helpEngineCore.filterAttributes():
62 QTreeWidgetItem(self.attributesList, [attr]) 62 QTreeWidgetItem(self.attributesList, [attr])
63 self.attributesList.sortItems(0, Qt.AscendingOrder) 63 self.attributesList.sortItems(0, Qt.AscendingOrder)
125 @pyqtSlot() 125 @pyqtSlot()
126 def on_addButton_clicked(self): 126 def on_addButton_clicked(self):
127 """ 127 """
128 Private slot to add a new filter. 128 Private slot to add a new filter.
129 """ 129 """
130 filter, ok = QInputDialog.getText( 130 customFilter, ok = QInputDialog.getText(
131 None, 131 None,
132 self.tr("Add Filter"), 132 self.tr("Add Filter"),
133 self.tr("Filter name:"), 133 self.tr("Filter name:"),
134 QLineEdit.Normal) 134 QLineEdit.Normal)
135 if not filter: 135 if not customFilter:
136 return 136 return
137 137
138 if filter not in self.__filterMap: 138 if customFilter not in self.__filterMap:
139 self.__filterMap[filter] = [] 139 self.__filterMap[customFilter] = []
140 self.filtersList.addItem(filter) 140 self.filtersList.addItem(customFilter)
141 141
142 itm = self.filtersList.findItems(filter, Qt.MatchCaseSensitive)[0] 142 itm = self.filtersList.findItems(
143 customFilter, Qt.MatchCaseSensitive)[0]
143 self.filtersList.setCurrentItem(itm) 144 self.filtersList.setCurrentItem(itm)
144 145
145 @pyqtSlot() 146 @pyqtSlot()
146 def on_removeButton_clicked(self): 147 def on_removeButton_clicked(self):
147 """ 148 """
191 if itm is None: 192 if itm is None:
192 continue 193 continue
193 194
194 attr = itm.text(0) 195 attr = itm.text(0)
195 self.__removedAttributes.append(attr) 196 self.__removedAttributes.append(attr)
196 for filter in self.__filterMap: 197 for customFilter in self.__filterMap:
197 if attr in self.__filterMap[filter]: 198 if attr in self.__filterMap[customFilter]:
198 self.__filterMap[filter].remove(attr) 199 self.__filterMap[customFilter].remove(attr)
199 200
200 del itm 201 del itm
201 202
202 @pyqtSlot() 203 @pyqtSlot()
203 def on_unusedAttributesButton_clicked(self): 204 def on_unusedAttributesButton_clicked(self):
204 """ 205 """
205 Private slot to select all unused attributes. 206 Private slot to select all unused attributes.
206 """ 207 """
207 # step 1: determine all used attributes 208 # step 1: determine all used attributes
208 attributes = set() 209 attributes = set()
209 for filter in self.__filterMap: 210 for customFilter in self.__filterMap:
210 attributes |= set(self.__filterMap[filter]) 211 attributes |= set(self.__filterMap[customFilter])
211 212
212 # step 2: select all unused attribute items 213 # step 2: select all unused attribute items
213 self.attributesList.clearSelection() 214 self.attributesList.clearSelection()
214 for row in range(self.attributesList.topLevelItemCount()): 215 for row in range(self.attributesList.topLevelItemCount()):
215 itm = self.attributesList.topLevelItem(row) 216 itm = self.attributesList.topLevelItem(row)
239 """ 240 """
240 filtersChanged = False 241 filtersChanged = False
241 if len(self.__filterMapBackup) != len(self.__filterMap): 242 if len(self.__filterMapBackup) != len(self.__filterMap):
242 filtersChanged = True 243 filtersChanged = True
243 else: 244 else:
244 for filter in self.__filterMapBackup: 245 for customFilter in self.__filterMapBackup:
245 if filter not in self.__filterMap: 246 if customFilter not in self.__filterMap:
246 filtersChanged = True 247 filtersChanged = True
247 else: 248 else:
248 oldFilterAtts = self.__filterMapBackup[filter] 249 oldFilterAtts = self.__filterMapBackup[customFilter]
249 newFilterAtts = self.__filterMap[filter] 250 newFilterAtts = self.__filterMap[customFilter]
250 if len(oldFilterAtts) != len(newFilterAtts): 251 if len(oldFilterAtts) != len(newFilterAtts):
251 filtersChanged = True 252 filtersChanged = True
252 else: 253 else:
253 for attr in oldFilterAtts: 254 for attr in oldFilterAtts:
254 if attr not in newFilterAtts: 255 if attr not in newFilterAtts:
257 258
258 if filtersChanged: 259 if filtersChanged:
259 break 260 break
260 261
261 if filtersChanged: 262 if filtersChanged:
262 for filter in self.__removedFilters: 263 for customFilter in self.__removedFilters:
263 self.__engine.removeCustomFilter(filter) 264 self.__engine.removeCustomFilter(customFilter)
264 for filter in self.__filterMap: 265 for customFilter in self.__filterMap:
265 self.__engine.addCustomFilter(filter, self.__filterMap[filter]) 266 self.__engine.addCustomFilter(
267 customFilter, self.__filterMap[customFilter])
266 268
267 if self.__removedAttributes: 269 if self.__removedAttributes:
268 self.__removeAttributes() 270 self.__removeAttributes()
269 271
270 if filtersChanged or self.__removedAttributes: 272 if filtersChanged or self.__removedAttributes:

eric ide

mercurial