33 self.__menuAction = None |
33 self.__menuAction = None |
34 self.__enabled = False |
34 self.__enabled = False |
35 |
35 |
36 self.setMaximumHeight(16) |
36 self.setMaximumHeight(16) |
37 self.setCursor(Qt.PointingHandCursor) |
37 self.setCursor(Qt.PointingHandCursor) |
38 self.setToolTip( |
38 self.setToolTip(self.trUtf8( |
39 self.trUtf8("AdBlock lets you block unwanted content on web pages.")) |
39 "AdBlock lets you block unwanted content on web pages.")) |
40 |
40 |
41 self.clicked.connect(self.__showMenu) |
41 self.clicked.connect(self.__showMenu) |
42 |
42 |
43 def setEnabled(self, enabled): |
43 def setEnabled(self, enabled): |
44 """ |
44 """ |
67 |
68 |
68 import Helpviewer.HelpWindow |
69 import Helpviewer.HelpWindow |
69 manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager() |
70 manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager() |
70 |
71 |
71 if manager.isEnabled(): |
72 if manager.isEnabled(): |
72 menu.addAction(UI.PixmapCache.getIcon("adBlockPlusDisabled.png"), |
73 menu.addAction( |
73 self.trUtf8("Disable AdBlock"), self.__enableAdBlock).setData(False) |
74 UI.PixmapCache.getIcon("adBlockPlusDisabled.png"), |
74 else: |
75 self.trUtf8("Disable AdBlock"), |
75 menu.addAction(UI.PixmapCache.getIcon("adBlockPlus.png"), |
76 self.__enableAdBlock).setData(False) |
76 self.trUtf8("Enable AdBlock"), self.__enableAdBlock).setData(True) |
77 else: |
|
78 menu.addAction( |
|
79 UI.PixmapCache.getIcon("adBlockPlus.png"), |
|
80 self.trUtf8("Enable AdBlock"), |
|
81 self.__enableAdBlock).setData(True) |
77 menu.addSeparator() |
82 menu.addSeparator() |
78 if manager.isEnabled() and \ |
83 if manager.isEnabled() and \ |
79 self.__mw.currentBrowser().page().url().host(): |
84 self.__mw.currentBrowser().page().url().host(): |
80 if self.__isCurrentHostExcepted(): |
85 if self.__isCurrentHostExcepted(): |
81 menu.addAction(UI.PixmapCache.getIcon("adBlockPlus.png"), |
86 menu.addAction(UI.PixmapCache.getIcon("adBlockPlus.png"), |
92 self.trUtf8("AdBlock Configuration..."), manager.showDialog) |
97 self.trUtf8("AdBlock Configuration..."), manager.showDialog) |
93 menu.addSeparator() |
98 menu.addSeparator() |
94 |
99 |
95 entries = self.__mw.currentBrowser().page().getAdBlockedPageEntries() |
100 entries = self.__mw.currentBrowser().page().getAdBlockedPageEntries() |
96 if entries: |
101 if entries: |
97 menu.addAction( |
102 menu.addAction(self.trUtf8( |
98 self.trUtf8("Blocked URL (AdBlock Rule) - click to edit rule"))\ |
103 "Blocked URL (AdBlock Rule) - click to edit rule"))\ |
99 .setEnabled(False) |
104 .setEnabled(False) |
100 for entry in entries: |
105 for entry in entries: |
101 address = entry.urlString()[-55:] |
106 address = entry.urlString()[-55:] |
102 actionText = self.trUtf8("{0} with ({1})").format( |
107 actionText = self.trUtf8("{0} with ({1})").format( |
103 address, entry.rule.filter()).replace("&", "&&") |
108 address, entry.rule.filter()).replace("&", "&&") |
116 self.__menuAction = QAction(self.trUtf8("AdBlock")) |
121 self.__menuAction = QAction(self.trUtf8("AdBlock")) |
117 self.__menuAction.setMenu(QMenu()) |
122 self.__menuAction.setMenu(QMenu()) |
118 self.__menuAction.menu().aboutToShow.connect(self.__createMenu) |
123 self.__menuAction.menu().aboutToShow.connect(self.__createMenu) |
119 |
124 |
120 if self.__enabled: |
125 if self.__enabled: |
121 self.__menuAction.setIcon(UI.PixmapCache.getIcon("adBlockPlus.png")) |
126 self.__menuAction.setIcon( |
122 else: |
127 UI.PixmapCache.getIcon("adBlockPlus.png")) |
123 self.__menuAction.setIcon(UI.PixmapCache.getIcon("adBlockPlusDisabled.png")) |
128 else: |
|
129 self.__menuAction.setIcon( |
|
130 UI.PixmapCache.getIcon("adBlockPlusDisabled.png")) |
124 |
131 |
125 return self.__menuAction |
132 return self.__menuAction |
126 |
133 |
127 def __showMenu(self, pos): |
134 def __showMenu(self, pos): |
128 """ |
135 """ |
139 Private slot to enable or disable AdBlock. |
146 Private slot to enable or disable AdBlock. |
140 """ |
147 """ |
141 act = self.sender() |
148 act = self.sender() |
142 if act is not None: |
149 if act is not None: |
143 import Helpviewer.HelpWindow |
150 import Helpviewer.HelpWindow |
144 Helpviewer.HelpWindow.HelpWindow.adBlockManager().setEnabled(act.data()) |
151 Helpviewer.HelpWindow.HelpWindow.adBlockManager().setEnabled( |
|
152 act.data()) |
145 |
153 |
146 def __isCurrentHostExcepted(self): |
154 def __isCurrentHostExcepted(self): |
147 """ |
155 """ |
148 Private method to check, if the host of the current browser is excepted. |
156 Private method to check, if the host of the current browser is |
|
157 excepted. |
149 |
158 |
150 @return flag indicating an exception (boolean) |
159 @return flag indicating an exception (boolean) |
151 """ |
160 """ |
152 browser = self.__mw.currentBrowser() |
161 browser = self.__mw.currentBrowser() |
153 urlHost = browser.page().url().host() |
162 urlHost = browser.page().url().host() |
154 |
163 |
155 import Helpviewer.HelpWindow |
164 import Helpviewer.HelpWindow |
156 return urlHost and \ |
165 return urlHost and \ |
157 Helpviewer.HelpWindow.HelpWindow.adBlockManager().isHostExcepted(urlHost) |
166 Helpviewer.HelpWindow.HelpWindow.adBlockManager()\ |
|
167 .isHostExcepted(urlHost) |
158 |
168 |
159 def currentChanged(self): |
169 def currentChanged(self): |
160 """ |
170 """ |
161 Public slot to handle a change of the current browser tab. |
171 Public slot to handle a change of the current browser tab. |
162 """ |
172 """ |
163 if self.__enabled: |
173 if self.__enabled: |
164 if self.__isCurrentHostExcepted(): |
174 if self.__isCurrentHostExcepted(): |
165 self.setPixmap(UI.PixmapCache.getPixmap("adBlockPlusGreen16.png")) |
175 self.setPixmap( |
|
176 UI.PixmapCache.getPixmap("adBlockPlusGreen16.png")) |
166 else: |
177 else: |
167 self.setPixmap(UI.PixmapCache.getPixmap("adBlockPlus16.png")) |
178 self.setPixmap(UI.PixmapCache.getPixmap("adBlockPlus16.png")) |
168 |
179 |
169 def __setException(self): |
180 def __setException(self): |
170 """ |
181 """ |
171 Private slot to add or remove the current host from the list of exceptions. |
182 Private slot to add or remove the current host from the list of |
|
183 exceptions. |
172 """ |
184 """ |
173 act = self.sender() |
185 act = self.sender() |
174 if act is not None: |
186 if act is not None: |
175 import Helpviewer.HelpWindow |
187 import Helpviewer.HelpWindow |
176 urlHost = self.__mw.currentBrowser().page().url().host() |
188 urlHost = self.__mw.currentBrowser().page().url().host() |
177 if act.data(): |
189 if act.data(): |
178 Helpviewer.HelpWindow.HelpWindow.adBlockManager().addException(urlHost) |
190 Helpviewer.HelpWindow.HelpWindow.adBlockManager()\ |
|
191 .addException(urlHost) |
179 else: |
192 else: |
180 Helpviewer.HelpWindow.HelpWindow.adBlockManager().removeException(urlHost) |
193 Helpviewer.HelpWindow.HelpWindow.adBlockManager()\ |
|
194 .removeException(urlHost) |
181 self.currentChanged() |
195 self.currentChanged() |
182 |
196 |
183 def sourceChanged(self, browser, url): |
197 def sourceChanged(self, browser, url): |
184 """ |
198 """ |
185 Public slot to handle URL changes. |
199 Public slot to handle URL changes. |