Helpviewer/UserAgent/UserAgentMenu.py

Sun, 10 Feb 2013 18:31:31 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sun, 10 Feb 2013 18:31:31 +0100
changeset 2403
e3d7a861547c
parent 2302
f29e9405c851
child 2525
8b507a9a2d40
child 3002
6ffc581f00f1
permissions
-rw-r--r--

Continued implementing the delayed import.

383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
2302
f29e9405c851 Updated copyright for 2013.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1596
diff changeset
3 # Copyright (c) 2010 - 2013 Detlev Offenbach <detlev@die-offenbachs.de>
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a menu to select the user agent string.
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10 from PyQt4.QtCore import QByteArray, QXmlStreamReader
537
72b32daeb8d6 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
11 from PyQt4.QtGui import QMenu, QAction, QActionGroup, QInputDialog, QLineEdit
72b32daeb8d6 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
12
72b32daeb8d6 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
13 from E5Gui import E5MessageBox
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
14
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
15
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
16 class UserAgentMenu(QMenu):
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
17 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18 Class implementing a menu to select the user agent string.
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
19 """
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
20 def __init__(self, title, url=None, parent=None):
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
21 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 Constructor
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 @param title title of the menu (string)
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
25 @param url URL to set user agent for (QUrl)
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26 @param parent reference to the parent widget (QWidget)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
27 """
1131
7781e396c903 Changed the code to use super() to access the superclass.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1102
diff changeset
28 super().__init__(title, parent)
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
30 self.__manager = None
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
31 self.__url = url
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
32 if self.__url:
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
33 if self.__url.isValid():
2403
e3d7a861547c Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
34 import Helpviewer.HelpWindow
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
35 self.__manager = Helpviewer.HelpWindow.HelpWindow.userAgentsManager()
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
36 else:
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
37 self.__url = None
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
38
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 self.aboutToShow.connect(self.__populateMenu)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
40
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41 def __populateMenu(self):
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 Private slot to populate the menu.
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45 self.aboutToShow.disconnect(self.__populateMenu)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46
1102
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
47 self.__actionGroup = QActionGroup(self)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
48
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 # add default action
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 self.__defaultUserAgent = QAction(self)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 self.__defaultUserAgent.setText(self.trUtf8("Default"))
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52 self.__defaultUserAgent.setCheckable(True)
454
d28d558f7484 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 383
diff changeset
53 self.__defaultUserAgent.triggered[()].connect(self.__switchToDefaultUserAgent)
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
54 if self.__url:
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
55 self.__defaultUserAgent.setChecked(
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
56 self.__manager.userAgentForUrl(self.__url) == "")
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
57 else:
2403
e3d7a861547c Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
58 from Helpviewer.HelpBrowserWV import HelpWebPage
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
59 self.__defaultUserAgent.setChecked(HelpWebPage().userAgent() == "")
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 self.addAction(self.__defaultUserAgent)
1102
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
61 self.__actionGroup.addAction(self.__defaultUserAgent)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
62 isChecked = self.__defaultUserAgent.isChecked()
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 # add default extra user agents
1102
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
65 isChecked = self.__addDefaultActions() or isChecked
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
66
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 # add other action
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 self.addSeparator()
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 self.__otherUserAgent = QAction(self)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 self.__otherUserAgent.setText(self.trUtf8("Other..."))
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71 self.__otherUserAgent.setCheckable(True)
454
d28d558f7484 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 383
diff changeset
72 self.__otherUserAgent.triggered[()].connect(self.__switchToOtherUserAgent)
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
73 self.addAction(self.__otherUserAgent)
1102
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
74 self.__actionGroup.addAction(self.__otherUserAgent)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
75 self.__otherUserAgent.setChecked(not isChecked)
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
76
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
77 def __switchToDefaultUserAgent(self):
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
78 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
79 Private slot to set the default user agent.
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
80 """
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
81 if self.__url:
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
82 self.__manager.removeUserAgent(self.__url.host())
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
83 else:
2403
e3d7a861547c Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
84 from Helpviewer.HelpBrowserWV import HelpWebPage
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
85 HelpWebPage().setUserAgent("")
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
86
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
87 def __switchToOtherUserAgent(self):
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
88 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
89 Private slot to set a custom user agent string.
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
90 """
2403
e3d7a861547c Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
91 from Helpviewer.HelpBrowserWV import HelpWebPage
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
92 userAgent, ok = QInputDialog.getText(
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
93 self,
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
94 self.trUtf8("Custom user agent"),
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
95 self.trUtf8("User agent:"),
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 QLineEdit.Normal,
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
97 HelpWebPage().userAgent(resolveEmpty=True))
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
98 if ok:
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
99 if self.__url:
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
100 self.__manager.setUserAgentForUrl(self.__url, userAgent)
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
101 else:
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
102 HelpWebPage().setUserAgent(userAgent)
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
103
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 def __changeUserAgent(self):
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106 Private slot to change the user agent.
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
108 act = self.sender()
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
109 if self.__url:
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
110 self.__manager.setUserAgentForUrl(self.__url, act.data())
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
111 else:
2403
e3d7a861547c Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
112 from Helpviewer.HelpBrowserWV import HelpWebPage
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
113 HelpWebPage().setUserAgent(act.data())
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115 def __addDefaultActions(self):
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 """
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 Private slot to add the default user agent entries.
1102
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
118
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
119 @return flag indicating that a user agent entry is checked (boolean)
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 """
2403
e3d7a861547c Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
121 from .UserAgentDefaults import UserAgentDefaults
1102
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
122 menuStack = []
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
123 isChecked = False
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
124 defaultUserAgents = QByteArray(UserAgentDefaults)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
125
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
126 if self.__url:
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
127 currentUserAgentString = self.__manager.userAgentForUrl(self.__url)
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
128 else:
2403
e3d7a861547c Continued implementing the delayed import.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
129 from Helpviewer.HelpBrowserWV import HelpWebPage
1596
8d59e4f3c828 Extended the User Agent handling to be able to set the string on a host basis (next to the global user agent string).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
130 currentUserAgentString = HelpWebPage().userAgent()
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
131 xml = QXmlStreamReader(defaultUserAgents)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
132 while not xml.atEnd():
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
133 xml.readNext()
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
134 if xml.isStartElement() and xml.name() == "separator":
1102
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
135 if menuStack:
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
136 menuStack[-1].addSeparator()
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
137 else:
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
138 self.addSeparator()
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
139 continue
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 if xml.isStartElement() and xml.name() == "useragent":
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 attributes = xml.attributes()
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
143 title = attributes.value("description")
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
144 userAgent = attributes.value("useragent")
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
145
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 act = QAction(self)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147 act.setText(title)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 act.setData(userAgent)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 act.setToolTip(userAgent)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 act.setCheckable(True)
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
151 act.setChecked(userAgent == currentUserAgentString)
454
d28d558f7484 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 383
diff changeset
152 act.triggered[()].connect(self.__changeUserAgent)
1102
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
153 if menuStack:
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
154 menuStack[-1].addAction(act)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
155 else:
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
156 self.addAction(act)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
157 self.__actionGroup.addAction(act)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
158 isChecked = isChecked or act.isChecked()
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
159
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
160 if xml.isStartElement() and xml.name() == "useragentmenu":
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
161 attributes = xml.attributes()
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
162 title = attributes.value("title")
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
163 if title == "v_a_r_i_o_u_s":
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
164 title = self.trUtf8("Various")
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
165
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
166 menu = QMenu(self)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
167 menu.setTitle(title)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
168 self.addMenu(menu)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
169 menuStack.append(menu)
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
170
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
171 if xml.isEndElement() and xml.name() == "useragentmenu":
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
172 menuStack.pop()
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174 if xml.hasError():
537
72b32daeb8d6 Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 454
diff changeset
175 E5MessageBox.critical(self,
383
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
176 self.trUtf8("Parsing default user agents"),
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
177 self.trUtf8("""<p>Error parsing default user agents.</p><p>{0}</p>""")\
286de4e5179c Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
178 .format(xml.errorString()))
1102
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
179
aae999261983 Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 945
diff changeset
180 return isChecked

eric ide

mercurial