Helpviewer/AdBlock/AdBlockIcon.py

changeset 6120
4c60a21ce6dd
parent 6048
82ad8ec9548c
child 6645
ad476851d7e0
--- a/Helpviewer/AdBlock/AdBlockIcon.py	Tue Feb 06 19:21:00 2018 +0100
+++ b/Helpviewer/AdBlock/AdBlockIcon.py	Wed Feb 07 18:57:46 2018 +0100
@@ -53,45 +53,45 @@
             self.setPixmap(
                 UI.PixmapCache.getPixmap("adBlockPlusDisabled16.png"))
     
-    def __createMenu(self, menu=None):
+    def __createMenu(self, menu):
         """
         Private slot to create the context menu.
         
-        @param menu parent menu (QMenu)
+        @param menu parent menu
+        @type QMenu
         """
-        if menu is None:
-            menu = self.sender()
-            if menu is None:
-                return
-        
         menu.clear()
         
         import Helpviewer.HelpWindow
         manager = Helpviewer.HelpWindow.HelpWindow.adBlockManager()
         
         if manager.isEnabled():
-            menu.addAction(
+            act = menu.addAction(
                 UI.PixmapCache.getIcon("adBlockPlusDisabled.png"),
-                self.tr("Disable AdBlock"),
-                self.__enableAdBlock).setData(False)
+                self.tr("Disable AdBlock"))
+            act.setData(False)
+            act.triggered.connect(lambda: self.__enableAdBlock(act))
         else:
-            menu.addAction(
+            act = menu.addAction(
                 UI.PixmapCache.getIcon("adBlockPlus.png"),
-                self.tr("Enable AdBlock"),
-                self.__enableAdBlock).setData(True)
+                self.tr("Enable AdBlock"))
+            act.setData(True)
+            act.triggered.connect(lambda: self.__enableAdBlock(act))
         menu.addSeparator()
         if manager.isEnabled() and \
            self.__mw.currentBrowser().page().url().host():
             if self.__isCurrentHostExcepted():
-                menu.addAction(
+                act = menu.addAction(
                     UI.PixmapCache.getIcon("adBlockPlus.png"),
-                    self.tr("Remove AdBlock Exception"),
-                    self.__setException).setData(False)
+                    self.tr("Remove AdBlock Exception"))
+                act.setData(False)
+                act.triggered.connect(lambda: self.__setException(act))
             else:
-                menu.addAction(
+                act = menu.addAction(
                     UI.PixmapCache.getIcon("adBlockPlusGreen.png"),
-                    self.tr("Add AdBlock Exception"),
-                    self.__setException).setData(True)
+                    self.tr("Add AdBlock Exception"))
+                act.setData(True)
+                act.triggered.connect(lambda: self.__setException(act))
         menu.addAction(
             UI.PixmapCache.getIcon("adBlockPlusGreen.png"),
             self.tr("AdBlock Exceptions..."), manager.showExceptionsDialog)
@@ -110,8 +110,9 @@
                 address = entry.urlString()[-55:]
                 actionText = self.tr("{0} with ({1})").format(
                     address, entry.rule.filter()).replace("&", "&&")
-                act = menu.addAction(actionText, manager.showRule)
+                act = menu.addAction(actionText)
                 act.setData(entry.rule)
+                act.triggered.connect(lambda: manager.showRule(act))
         else:
             menu.addAction(self.tr("No content blocked")).setEnabled(False)
     
@@ -124,7 +125,8 @@
         if not self.__menuAction:
             self.__menuAction = QAction(self.tr("AdBlock"), self)
             self.__menuAction.setMenu(QMenu())
-            self.__menuAction.menu().aboutToShow.connect(self.__createMenu)
+            self.__menuAction.menu().aboutToShow.connect(
+                lambda: self.__createMenu(self.__menuAction.menu()))
         
         if self.__enabled:
             self.__menuAction.setIcon(
@@ -145,15 +147,16 @@
         self.__createMenu(menu)
         menu.exec_(pos)
     
-    def __enableAdBlock(self):
+    def __enableAdBlock(self, act):
         """
         Private slot to enable or disable AdBlock.
+        
+        @param act reference to the action
+        @type QAction
         """
-        act = self.sender()
-        if act is not None:
-            import Helpviewer.HelpWindow
-            Helpviewer.HelpWindow.HelpWindow.adBlockManager().setEnabled(
-                act.data())
+        import Helpviewer.HelpWindow
+        Helpviewer.HelpWindow.HelpWindow.adBlockManager().setEnabled(
+            act.data())
     
     def __isCurrentHostExcepted(self):
         """
@@ -184,22 +187,23 @@
             else:
                 self.setPixmap(UI.PixmapCache.getPixmap("adBlockPlus16.png"))
     
-    def __setException(self):
+    def __setException(self, act):
         """
         Private slot to add or remove the current host from the list of
         exceptions.
+        
+        @param act referenced to the action
+        @type QAction
         """
-        act = self.sender()
-        if act is not None:
-            import Helpviewer.HelpWindow
-            urlHost = self.__mw.currentBrowser().page().url().host()
-            if act.data():
-                Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
-                    .addException(urlHost)
-            else:
-                Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
-                    .removeException(urlHost)
-            self.currentChanged()
+        import Helpviewer.HelpWindow
+        urlHost = self.__mw.currentBrowser().page().url().host()
+        if act.data():
+            Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
+                .addException(urlHost)
+        else:
+            Helpviewer.HelpWindow.HelpWindow.adBlockManager()\
+                .removeException(urlHost)
+        self.currentChanged()
     
     def sourceChanged(self, browser, url):
         """

eric ide

mercurial