eric6/WebBrowser/AdBlock/AdBlockTreeWidget.py

changeset 8143
2c730d5fd177
parent 7923
91e843545d9a
child 8218
7c09585bd960
equal deleted inserted replaced
8141:27f636beebad 8143:2c730d5fd177
36 self.__subscription = subscription 36 self.__subscription = subscription
37 self.__topItem = None 37 self.__topItem = None
38 self.__ruleToBeSelected = "" 38 self.__ruleToBeSelected = ""
39 self.__itemChangingBlock = False 39 self.__itemChangingBlock = False
40 40
41 self.setContextMenuPolicy(Qt.CustomContextMenu) 41 self.setContextMenuPolicy(Qt.ContextMenuPolicy.CustomContextMenu)
42 self.setDefaultItemShowMode(E5TreeWidget.ItemsExpanded) 42 self.setDefaultItemShowMode(E5TreeWidget.ItemsExpanded)
43 self.setHeaderHidden(True) 43 self.setHeaderHidden(True)
44 self.setAlternatingRowColors(True) 44 self.setAlternatingRowColors(True)
45 45
46 self.customContextMenuRequested.connect(self.__contextMenuRequested) 46 self.customContextMenuRequested.connect(self.__contextMenuRequested)
65 @type AdBlockRule 65 @type AdBlockRule
66 """ 66 """
67 if not bool(self.__topItem) and bool(rule): 67 if not bool(self.__topItem) and bool(rule):
68 self.__ruleToBeSelected = rule.filter() 68 self.__ruleToBeSelected = rule.filter()
69 elif self.__ruleToBeSelected: 69 elif self.__ruleToBeSelected:
70 items = self.findItems(self.__ruleToBeSelected, Qt.MatchRecursive) 70 items = self.findItems(
71 self.__ruleToBeSelected, Qt.MatchFlag.MatchRecursive)
71 if items: 72 if items:
72 item = items[0] 73 item = items[0]
73 self.setCurrentItem(item) 74 self.setCurrentItem(item)
74 self.scrollToItem(item, QAbstractItemView.PositionAtCenter) 75 self.scrollToItem(
76 item, QAbstractItemView.ScrollHint.PositionAtCenter)
75 77
76 self.__ruleToBeSelected = "" 78 self.__ruleToBeSelected = ""
77 79
78 def refresh(self): 80 def refresh(self):
79 """ 81 """
95 97
96 index = 0 98 index = 0
97 for rule in allRules: 99 for rule in allRules:
98 item = QTreeWidgetItem(self.__topItem) 100 item = QTreeWidgetItem(self.__topItem)
99 item.setText(0, rule.filter()) 101 item.setText(0, rule.filter())
100 item.setData(0, Qt.UserRole, index) 102 item.setData(0, Qt.ItemDataRole.UserRole, index)
101 if self.__subscription.canEditRules(): 103 if self.__subscription.canEditRules():
102 item.setFlags(item.flags() | Qt.ItemIsEditable) 104 item.setFlags(item.flags() | Qt.ItemFlag.ItemIsEditable)
103 self.__adjustItemFeatures(item, rule) 105 self.__adjustItemFeatures(item, rule)
104 index += 1 106 index += 1
105 107
106 self.expandAll() 108 self.expandAll()
107 self.showRule(None) 109 self.showRule(None)
120 if not filterRule: 122 if not filterRule:
121 filterRule, ok = QInputDialog.getText( 123 filterRule, ok = QInputDialog.getText(
122 self, 124 self,
123 self.tr("Add Custom Rule"), 125 self.tr("Add Custom Rule"),
124 self.tr("Write your rule here:"), 126 self.tr("Write your rule here:"),
125 QLineEdit.Normal) 127 QLineEdit.EchoMode.Normal)
126 if not ok or filterRule == "": 128 if not ok or filterRule == "":
127 return 129 return
128 130
129 from .AdBlockRule import AdBlockRule 131 from .AdBlockRule import AdBlockRule
130 rule = AdBlockRule(filterRule, self.__subscription) 132 rule = AdBlockRule(filterRule, self.__subscription)
140 not self.__subscription.canEditRules() or 142 not self.__subscription.canEditRules() or
141 item == self.__topItem 143 item == self.__topItem
142 ): 144 ):
143 return 145 return
144 146
145 offset = item.data(0, Qt.UserRole) 147 offset = item.data(0, Qt.ItemDataRole.UserRole)
146 self.__subscription.removeRule(offset) 148 self.__subscription.removeRule(offset)
147 self.deleteItem(item) 149 self.deleteItem(item)
148 150
149 def __contextMenuRequested(self, pos): 151 def __contextMenuRequested(self, pos):
150 """ 152 """
179 if itm is None or self.__itemChangingBlock: 181 if itm is None or self.__itemChangingBlock:
180 return 182 return
181 183
182 self.__itemChangingBlock = True 184 self.__itemChangingBlock = True
183 185
184 offset = itm.data(0, Qt.UserRole) 186 offset = itm.data(0, Qt.ItemDataRole.UserRole)
185 oldRule = self.__subscription.rule(offset) 187 oldRule = self.__subscription.rule(offset)
186 188
187 if itm.checkState(0) == Qt.Unchecked and oldRule.isEnabled(): 189 if (
190 itm.checkState(0) == Qt.CheckState.Unchecked and
191 oldRule.isEnabled()
192 ):
188 # Disable rule 193 # Disable rule
189 rule = self.__subscription.setRuleEnabled(offset, False) 194 rule = self.__subscription.setRuleEnabled(offset, False)
190 self.__adjustItemFeatures(itm, rule) 195 self.__adjustItemFeatures(itm, rule)
191 elif itm.checkState(0) == Qt.Checked and not oldRule.isEnabled(): 196 elif (
197 itm.checkState(0) == Qt.CheckState.Checked and
198 not oldRule.isEnabled()
199 ):
192 # Enable rule 200 # Enable rule
193 rule = self.__subscription.setRuleEnabled(offset, True) 201 rule = self.__subscription.setRuleEnabled(offset, True)
194 self.__adjustItemFeatures(itm, rule) 202 self.__adjustItemFeatures(itm, rule)
195 elif self.__subscription.canEditRules(): 203 elif self.__subscription.canEditRules():
196 from .AdBlockRule import AdBlockRule 204 from .AdBlockRule import AdBlockRule
231 @type AdBlockRule 239 @type AdBlockRule
232 """ 240 """
233 if not rule.isEnabled(): 241 if not rule.isEnabled():
234 font = QFont() 242 font = QFont()
235 font.setItalic(True) 243 font.setItalic(True)
236 itm.setForeground(0, QColor(Qt.gray)) 244 itm.setForeground(0, QColor(Qt.GlobalColor.gray))
237 245
238 if not rule.isComment() and not rule.isHeader(): 246 if not rule.isComment() and not rule.isHeader():
239 itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable) 247 itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsUserCheckable)
240 itm.setCheckState(0, Qt.Unchecked) 248 itm.setCheckState(0, Qt.CheckState.Unchecked)
241 itm.setFont(0, font) 249 itm.setFont(0, font)
242 250
243 return 251 return
244 252
245 itm.setFlags(itm.flags() | Qt.ItemIsUserCheckable) 253 itm.setFlags(itm.flags() | Qt.ItemFlag.ItemIsUserCheckable)
246 itm.setCheckState(0, Qt.Checked) 254 itm.setCheckState(0, Qt.CheckState.Checked)
247 255
248 if rule.isCSSRule(): 256 if rule.isCSSRule():
249 itm.setForeground(0, QColor(Qt.darkBlue)) 257 itm.setForeground(0, QColor(Qt.GlobalColor.darkBlue))
250 itm.setFont(0, QFont()) 258 itm.setFont(0, QFont())
251 elif rule.isException(): 259 elif rule.isException():
252 itm.setForeground(0, QColor(Qt.darkGreen)) 260 itm.setForeground(0, QColor(Qt.GlobalColor.darkGreen))
253 itm.setFont(0, QFont()) 261 itm.setFont(0, QFont())
254 else: 262 else:
255 itm.setForeground(0, QColor()) 263 itm.setForeground(0, QColor())
256 itm.setFont(0, QFont()) 264 itm.setFont(0, QFont())
257 265
261 269
262 @param evt key press event 270 @param evt key press event
263 @type QKeyEvent 271 @type QKeyEvent
264 """ 272 """
265 if ( 273 if (
266 evt.key() == Qt.Key_C and 274 evt.key() == Qt.Key.Key_C and
267 evt.modifiers() & Qt.ControlModifier 275 evt.modifiers() & Qt.KeyboardModifier.ControlModifier
268 ): 276 ):
269 self.__copyFilter() 277 self.__copyFilter()
270 elif evt.key() == Qt.Key_Delete: 278 elif evt.key() == Qt.Key.Key_Delete:
271 self.removeRule() 279 self.removeRule()
272 else: 280 else:
273 super(AdBlockTreeWidget, self).keyPressEvent(evt) 281 super(AdBlockTreeWidget, self).keyPressEvent(evt)

eric ide

mercurial