Helpviewer/UserAgent/UserAgentMenu.py

changeset 1596
8d59e4f3c828
parent 1509
c0b5e693b0eb
child 2302
f29e9405c851
--- a/Helpviewer/UserAgent/UserAgentMenu.py	Sat Feb 04 19:03:49 2012 +0100
+++ b/Helpviewer/UserAgent/UserAgentMenu.py	Sun Feb 05 16:22:37 2012 +0100
@@ -15,21 +15,31 @@
 from .UserAgentDefaults import UserAgentDefaults
 
 from Helpviewer.HelpBrowserWV import HelpWebPage
+import Helpviewer.HelpWindow
 
 
 class UserAgentMenu(QMenu):
     """
     Class implementing a menu to select the user agent string.
     """
-    def __init__(self, title, parent=None):
+    def __init__(self, title, url=None, parent=None):
         """
         Constructor
         
         @param title title of the menu (string)
+        @param url URL to set user agent for (QUrl)
         @param parent reference to the parent widget (QWidget)
         """
         super().__init__(title, parent)
         
+        self.__manager = None
+        self.__url = url
+        if self.__url:
+            if self.__url.isValid():
+                self.__manager = Helpviewer.HelpWindow.HelpWindow.userAgentsManager()
+            else:
+                self.__url = None
+        
         self.aboutToShow.connect(self.__populateMenu)
     
     def __populateMenu(self):
@@ -45,7 +55,11 @@
         self.__defaultUserAgent.setText(self.trUtf8("Default"))
         self.__defaultUserAgent.setCheckable(True)
         self.__defaultUserAgent.triggered[()].connect(self.__switchToDefaultUserAgent)
-        self.__defaultUserAgent.setChecked(HelpWebPage().userAgent() == "")
+        if self.__url:
+            self.__defaultUserAgent.setChecked(
+                self.__manager.userAgentForUrl(self.__url) == "")
+        else:
+            self.__defaultUserAgent.setChecked(HelpWebPage().userAgent() == "")
         self.addAction(self.__defaultUserAgent)
         self.__actionGroup.addAction(self.__defaultUserAgent)
         isChecked = self.__defaultUserAgent.isChecked()
@@ -67,7 +81,10 @@
         """
         Private slot to set the default user agent.
         """
-        HelpWebPage().setUserAgent("")
+        if self.__url:
+            self.__manager.removeUserAgent(self.__url.host())
+        else:
+            HelpWebPage().setUserAgent("")
     
     def __switchToOtherUserAgent(self):
         """
@@ -80,14 +97,20 @@
             QLineEdit.Normal,
             HelpWebPage().userAgent(resolveEmpty=True))
         if ok:
-            HelpWebPage().setUserAgent(userAgent)
+            if self.__url:
+                self.__manager.setUserAgentForUrl(self.__url, userAgent)
+            else:
+                HelpWebPage().setUserAgent(userAgent)
     
     def __changeUserAgent(self):
         """
         Private slot to change the user agent.
         """
         act = self.sender()
-        HelpWebPage().setUserAgent(act.data())
+        if self.__url:
+            self.__manager.setUserAgentForUrl(self.__url, act.data())
+        else:
+            HelpWebPage().setUserAgent(act.data())
     
     def __addDefaultActions(self):
         """
@@ -99,7 +122,10 @@
         isChecked = False
         defaultUserAgents = QByteArray(UserAgentDefaults)
         
-        currentUserAgentString = HelpWebPage().userAgent()
+        if self.__url:
+            currentUserAgentString = self.__manager.userAgentForUrl(self.__url)
+        else:
+            currentUserAgentString = HelpWebPage().userAgent()
         xml = QXmlStreamReader(defaultUserAgents)
         while not xml.atEnd():
             xml.readNext()

eric ide

mercurial