Sat, 15 May 2021 18:45:04 +0200
Started to rename eric6 to eric7.
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 | |
7923
91e843545d9a
Updated copyright for 2021.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7717
diff
changeset
|
3 | # Copyright (c) 2010 - 2021 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 | |
7717
f32d7965a17e
Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7716
diff
changeset
|
10 | import os |
7937
181d1160f617
Fixed some 'lambda' related issues by converting them to 'functools.partial'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
11 | import functools |
2525
8b507a9a2d40
Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
2403
diff
changeset
|
12 | |
3656
441956d8fce5
Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3484
diff
changeset
|
13 | from PyQt5.QtCore import QXmlStreamReader, QFile, QIODevice |
7270
41d09cf20415
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
14 | from PyQt5.QtWidgets import ( |
41d09cf20415
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
15 | QMenu, QAction, QActionGroup, QInputDialog, QLineEdit |
41d09cf20415
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
16 | ) |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
454
diff
changeset
|
17 | |
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
454
diff
changeset
|
18 | 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
|
19 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
20 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | 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
|
22 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | 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
|
24 | """ |
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 | 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
|
26 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | Constructor |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | @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
|
30 | @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
|
31 | @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
|
32 | """ |
8218
7c09585bd960
Applied some more code simplifications suggested by the new Simplify checker (super(Foo, self) => super()).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8143
diff
changeset
|
33 | 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
|
34 | |
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 = 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
|
36 | 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
|
37 | 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
|
38 | if self.__url.isValid(): |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
39 | from WebBrowser.WebBrowserWindow import WebBrowserWindow |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
40 | self.__manager = WebBrowserWindow.userAgentsManager() |
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
|
41 | 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
|
42 | 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
|
43 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | 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
|
45 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | 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
|
47 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | 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
|
49 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | 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
|
51 | |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
52 | 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
|
53 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | # 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
|
55 | self.__defaultUserAgent = QAction(self) |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
56 | self.__defaultUserAgent.setText(self.tr("Default")) |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | self.__defaultUserAgent.setCheckable(True) |
3345
071afe8be2a1
Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
58 | self.__defaultUserAgent.triggered.connect( |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
59 | 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
|
60 | 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
|
61 | 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
|
62 | 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
|
63 | else: |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
64 | from WebBrowser.WebBrowserPage import WebBrowserPage |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
65 | self.__defaultUserAgent.setChecked( |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
66 | WebBrowserPage.userAgent() == "") |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | 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
|
68 | 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
|
69 | 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
|
70 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | # 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
|
72 | 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
|
73 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | # 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
|
75 | self.addSeparator() |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | self.__otherUserAgent = QAction(self) |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
77 | self.__otherUserAgent.setText(self.tr("Other...")) |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
78 | self.__otherUserAgent.setCheckable(True) |
3345
071afe8be2a1
Changed signal/slot usage to not use constructs like 'triggered[()].connect(...)' anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3190
diff
changeset
|
79 | self.__otherUserAgent.triggered.connect( |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
80 | 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
|
81 | 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
|
82 | 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
|
83 | 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
|
84 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
85 | 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
|
86 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
87 | 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
|
88 | """ |
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
|
89 | 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
|
90 | 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
|
91 | else: |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
92 | from WebBrowser.WebBrowserPage import WebBrowserPage |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
93 | WebBrowserPage.setUserAgent("") |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
94 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | 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
|
96 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
97 | 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
|
98 | """ |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
99 | from WebBrowser.WebBrowserPage import WebBrowserPage |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
100 | 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
|
101 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
102 | self.tr("Custom user agent"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
103 | self.tr("User agent:"), |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7937
diff
changeset
|
104 | QLineEdit.EchoMode.Normal, |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
105 | WebBrowserPage.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
|
106 | 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
|
107 | 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
|
108 | 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
|
109 | else: |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
110 | WebBrowserPage.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
|
111 | |
6121
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
112 | def __changeUserAgent(self, act): |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
113 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
114 | Private slot to change the user agent. |
6121
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
115 | |
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
116 | @param act reference to the action that triggered |
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
117 | @type QAction |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | """ |
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
|
119 | 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
|
120 | 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
|
121 | else: |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
122 | from WebBrowser.WebBrowserPage import WebBrowserPage |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
123 | WebBrowserPage.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
|
124 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
125 | 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
|
126 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
127 | 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
|
128 | |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
129 | @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
|
130 | """ |
7717
f32d7965a17e
Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7716
diff
changeset
|
131 | defaultUserAgents = QFile(os.path.join( |
f32d7965a17e
Changed the code to not rely on the Qt Resource system anymore (no .qrc files and no use of pyrcc5 anymore).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7716
diff
changeset
|
132 | os.path.dirname(__file__), "UserAgentDefaults.xml")) |
8143
2c730d5fd177
Changed the use of PyQt enums because the way they were used previously is deprecated since two years and replaced some deprecated Qt stuff.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7937
diff
changeset
|
133 | defaultUserAgents.open(QIODevice.OpenModeFlag.ReadOnly) |
3014
9c5e6ef87252
Changed some files contain default values for some web browser functions to non-Python files and using the Qt resource system.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3002
diff
changeset
|
134 | |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
135 | menuStack = [] |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
136 | 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
|
137 | |
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
|
138 | 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
|
139 | 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
|
140 | else: |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
141 | from WebBrowser.WebBrowserPage import WebBrowserPage |
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
142 | currentUserAgentString = WebBrowserPage.userAgent() |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | 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
|
144 | 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
|
145 | xml.readNext() |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | 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
|
147 | if menuStack: |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
148 | menuStack[-1].addSeparator() |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
149 | else: |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
150 | 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
|
151 | continue |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
153 | 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
|
154 | 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
|
155 | 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
|
156 | 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
|
157 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | 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
|
159 | 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
|
160 | 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
|
161 | 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
|
162 | 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
|
163 | act.setChecked(userAgent == currentUserAgentString) |
7937
181d1160f617
Fixed some 'lambda' related issues by converting them to 'functools.partial'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
164 | act.triggered.connect( |
181d1160f617
Fixed some 'lambda' related issues by converting them to 'functools.partial'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7923
diff
changeset
|
165 | functools.partial(self.__changeUserAgent, act)) |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
166 | if menuStack: |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
167 | 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
|
168 | else: |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
169 | self.addAction(act) |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
170 | 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
|
171 | 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
|
172 | |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
173 | 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
|
174 | attributes = xml.attributes() |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
175 | 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
|
176 | if title == "v_a_r_i_o_u_s": |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
177 | title = self.tr("Various") |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
178 | |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
179 | menu = QMenu(self) |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
180 | menu.setTitle(title) |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
181 | self.addMenu(menu) |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
182 | menuStack.append(menu) |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
183 | |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
184 | 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
|
185 | 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
|
186 | |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
187 | if xml.hasError(): |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3014
diff
changeset
|
188 | E5MessageBox.critical( |
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3014
diff
changeset
|
189 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
190 | self.tr("Parsing default user agents"), |
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
191 | self.tr( |
3002
6ffc581f00f1
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2403
diff
changeset
|
192 | """<p>Error parsing default user agents.</p><p>{0}</p>""") |
3035
36e9f388958b
Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3020
diff
changeset
|
193 | .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
|
194 | |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
195 | return isChecked |