eric6/Helpviewer/UserAgent/UserAgentMenu.py

changeset 7220
5cf645f6daab
parent 7218
eaf2cf171f3a
parent 7211
1c97f3142fa8
child 7221
0485ccdf7877
diff -r eaf2cf171f3a -r 5cf645f6daab eric6/Helpviewer/UserAgent/UserAgentMenu.py
--- a/eric6/Helpviewer/UserAgent/UserAgentMenu.py	Sat Sep 07 14:45:27 2019 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-# -*- coding: utf-8 -*-
-
-# Copyright (c) 2010 - 2019 Detlev Offenbach <detlev@die-offenbachs.de>
-#
-
-"""
-Module implementing a menu to select the user agent string.
-"""
-
-from __future__ import unicode_literals
-
-from PyQt5.QtCore import QXmlStreamReader, QFile, QIODevice
-from PyQt5.QtWidgets import QMenu, QAction, QActionGroup, QInputDialog, \
-    QLineEdit
-
-from E5Gui import E5MessageBox
-
-
-class UserAgentMenu(QMenu):
-    """
-    Class implementing a menu to select the user agent string.
-    """
-    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(UserAgentMenu, self).__init__(title, parent)
-        
-        self.__manager = None
-        self.__url = url
-        if self.__url:
-            if self.__url.isValid():
-                import Helpviewer.HelpWindow
-                self.__manager = \
-                    Helpviewer.HelpWindow.HelpWindow.userAgentsManager()
-            else:
-                self.__url = None
-        
-        self.aboutToShow.connect(self.__populateMenu)
-    
-    def __populateMenu(self):
-        """
-        Private slot to populate the menu.
-        """
-        self.aboutToShow.disconnect(self.__populateMenu)
-        
-        self.__actionGroup = QActionGroup(self)
-        
-        # add default action
-        self.__defaultUserAgent = QAction(self)
-        self.__defaultUserAgent.setText(self.tr("Default"))
-        self.__defaultUserAgent.setCheckable(True)
-        self.__defaultUserAgent.triggered.connect(
-            self.__switchToDefaultUserAgent)
-        if self.__url:
-            self.__defaultUserAgent.setChecked(
-                self.__manager.userAgentForUrl(self.__url) == "")
-        else:
-            from Helpviewer.HelpBrowserWV import HelpWebPage
-            self.__defaultUserAgent.setChecked(HelpWebPage().userAgent() == "")
-        self.addAction(self.__defaultUserAgent)
-        self.__actionGroup.addAction(self.__defaultUserAgent)
-        isChecked = self.__defaultUserAgent.isChecked()
-        
-        # add default extra user agents
-        isChecked = self.__addDefaultActions() or isChecked
-        
-        # add other action
-        self.addSeparator()
-        self.__otherUserAgent = QAction(self)
-        self.__otherUserAgent.setText(self.tr("Other..."))
-        self.__otherUserAgent.setCheckable(True)
-        self.__otherUserAgent.triggered.connect(
-            self.__switchToOtherUserAgent)
-        self.addAction(self.__otherUserAgent)
-        self.__actionGroup.addAction(self.__otherUserAgent)
-        self.__otherUserAgent.setChecked(not isChecked)
-    
-    def __switchToDefaultUserAgent(self):
-        """
-        Private slot to set the default user agent.
-        """
-        if self.__url:
-            self.__manager.removeUserAgent(self.__url.host())
-        else:
-            from Helpviewer.HelpBrowserWV import HelpWebPage
-            HelpWebPage().setUserAgent("")
-    
-    def __switchToOtherUserAgent(self):
-        """
-        Private slot to set a custom user agent string.
-        """
-        from Helpviewer.HelpBrowserWV import HelpWebPage
-        userAgent, ok = QInputDialog.getText(
-            self,
-            self.tr("Custom user agent"),
-            self.tr("User agent:"),
-            QLineEdit.Normal,
-            HelpWebPage().userAgent(resolveEmpty=True))
-        if ok:
-            if self.__url:
-                self.__manager.setUserAgentForUrl(self.__url, userAgent)
-            else:
-                HelpWebPage().setUserAgent(userAgent)
-    
-    def __changeUserAgent(self, act):
-        """
-        Private slot to change the user agent.
-        
-        @param act reference to the action that triggered
-        @type QAction
-        """
-        if self.__url:
-            self.__manager.setUserAgentForUrl(self.__url, act.data())
-        else:
-            from Helpviewer.HelpBrowserWV import HelpWebPage
-            HelpWebPage().setUserAgent(act.data())
-    
-    def __addDefaultActions(self):
-        """
-        Private slot to add the default user agent entries.
-        
-        @return flag indicating that a user agent entry is checked (boolean)
-        """
-        from . import UserAgentDefaults_rc              # __IGNORE_WARNING__
-        defaultUserAgents = QFile(":/UserAgentDefaults.xml")
-        defaultUserAgents.open(QIODevice.ReadOnly)
-        
-        menuStack = []
-        isChecked = False
-        
-        if self.__url:
-            currentUserAgentString = self.__manager.userAgentForUrl(self.__url)
-        else:
-            from Helpviewer.HelpBrowserWV import HelpWebPage
-            currentUserAgentString = HelpWebPage().userAgent()
-        xml = QXmlStreamReader(defaultUserAgents)
-        while not xml.atEnd():
-            xml.readNext()
-            if xml.isStartElement() and xml.name() == "separator":
-                if menuStack:
-                    menuStack[-1].addSeparator()
-                else:
-                    self.addSeparator()
-                continue
-            
-            if xml.isStartElement() and xml.name() == "useragent":
-                attributes = xml.attributes()
-                title = attributes.value("description")
-                userAgent = attributes.value("useragent")
-                
-                act = QAction(self)
-                act.setText(title)
-                act.setData(userAgent)
-                act.setToolTip(userAgent)
-                act.setCheckable(True)
-                act.setChecked(userAgent == currentUserAgentString)
-                act.triggered.connect(lambda: self.__changeUserAgent(act))
-                if menuStack:
-                    menuStack[-1].addAction(act)
-                else:
-                    self.addAction(act)
-                self.__actionGroup.addAction(act)
-                isChecked = isChecked or act.isChecked()
-            
-            if xml.isStartElement() and xml.name() == "useragentmenu":
-                attributes = xml.attributes()
-                title = attributes.value("title")
-                if title == "v_a_r_i_o_u_s":
-                    title = self.tr("Various")
-                
-                menu = QMenu(self)
-                menu.setTitle(title)
-                self.addMenu(menu)
-                menuStack.append(menu)
-            
-            if xml.isEndElement() and xml.name() == "useragentmenu":
-                menuStack.pop()
-        
-        if xml.hasError():
-            E5MessageBox.critical(
-                self,
-                self.tr("Parsing default user agents"),
-                self.tr(
-                    """<p>Error parsing default user agents.</p><p>{0}</p>""")
-                .format(xml.errorString()))
-        
-        return isChecked

eric ide

mercurial