Tue, 18 Oct 2022 16:06:21 +0200
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
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 | |
8881
54e42bc2437a
Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8358
diff
changeset
|
3 | # Copyright (c) 2010 - 2022 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 | |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
13 | from PyQt6.QtCore import QXmlStreamReader, QFile, QIODevice |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
14 | from PyQt6.QtGui import QAction, QActionGroup |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
15 | from PyQt6.QtWidgets import QMenu, QInputDialog, QLineEdit |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
454
diff
changeset
|
16 | |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
17 | from eric7.EricWidgets import EricMessageBox |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
18 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
19 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | 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
|
21 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | 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
|
23 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
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 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
28 | |
383
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) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
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(): |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
39 | from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
40 | |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
41 | 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
|
42 | 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
|
43 | self.__url = None |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
44 | |
383
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.connect(self.__populateMenu) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
46 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
47 | 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
|
48 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
49 | 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
|
50 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | self.aboutToShow.disconnect(self.__populateMenu) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
52 | |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
53 | self.__actionGroup = QActionGroup(self) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
54 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | # 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
|
56 | 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
|
57 | 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
|
58 | self.__defaultUserAgent.setCheckable(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
59 | 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
|
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( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
62 | self.__manager.userAgentForUrl(self.__url) == "" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
63 | ) |
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
|
64 | else: |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
65 | from eric7.WebBrowser.WebBrowserPage import WebBrowserPage |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
66 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
67 | self.__defaultUserAgent.setChecked(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
|
68 | 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
|
69 | 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
|
70 | isChecked = self.__defaultUserAgent.isChecked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
71 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | # 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
|
73 | isChecked = self.__addDefaultActions() or isChecked |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
74 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | # 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
|
76 | self.addSeparator() |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | 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
|
78 | 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
|
79 | self.__otherUserAgent.setCheckable(True) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
80 | 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
|
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) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
84 | |
383
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: |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
92 | from eric7.WebBrowser.WebBrowserPage import WebBrowserPage |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
93 | |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
94 | WebBrowserPage.setUserAgent("") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
95 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | 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
|
97 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
98 | 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
|
99 | """ |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
100 | from eric7.WebBrowser.WebBrowserPage import WebBrowserPage |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
101 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
102 | 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
|
103 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
104 | 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
|
105 | 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
|
106 | QLineEdit.EchoMode.Normal, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
107 | WebBrowserPage.userAgent(resolveEmpty=True), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
108 | ) |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | 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
|
110 | 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
|
111 | 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
|
112 | else: |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
113 | WebBrowserPage.setUserAgent(userAgent) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
114 | |
6121
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
115 | 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
|
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 change the user agent. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
118 | |
6121
d3d64f3128b3
Continued removing the use of QObject.sender().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6048
diff
changeset
|
119 | @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
|
120 | @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
|
121 | """ |
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
|
122 | 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
|
123 | 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
|
124 | else: |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
125 | from eric7.WebBrowser.WebBrowserPage import WebBrowserPage |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
126 | |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
127 | WebBrowserPage.setUserAgent(act.data()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
128 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | 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
|
130 | """ |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | Private slot to add the default user agent entries. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
132 | |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
133 | @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
|
134 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
135 | defaultUserAgents = QFile( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
136 | os.path.join(os.path.dirname(__file__), "UserAgentDefaults.xml") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
137 | ) |
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
|
138 | defaultUserAgents.open(QIODevice.OpenModeFlag.ReadOnly) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
139 | |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
140 | menuStack = [] |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
141 | isChecked = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
142 | |
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
|
143 | 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
|
144 | 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
|
145 | else: |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
146 | from eric7.WebBrowser.WebBrowserPage import WebBrowserPage |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
147 | |
4906
939ff20f712d
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4631
diff
changeset
|
148 | 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
|
149 | 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
|
150 | 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
|
151 | xml.readNext() |
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | 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
|
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].addSeparator() |
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.addSeparator() |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | continue |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
158 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
159 | 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
|
160 | 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
|
161 | 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
|
162 | userAgent = attributes.value("useragent") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
163 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
164 | 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
|
165 | 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
|
166 | 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
|
167 | 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
|
168 | 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
|
169 | act.setChecked(userAgent == currentUserAgentString) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
170 | act.triggered.connect(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
|
171 | if menuStack: |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
172 | 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
|
173 | else: |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
174 | self.addAction(act) |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
175 | 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
|
176 | isChecked = isChecked or act.isChecked() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
177 | |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
178 | 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
|
179 | attributes = xml.attributes() |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
180 | 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
|
181 | 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
|
182 | title = self.tr("Various") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
183 | |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
184 | menu = QMenu(self) |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
185 | menu.setTitle(title) |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
186 | self.addMenu(menu) |
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
187 | menuStack.append(menu) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
188 | |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
189 | 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
|
190 | menuStack.pop() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
191 | |
383
286de4e5179c
Added capability to select the user agent string for the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
192 | if xml.hasError(): |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
193 | EricMessageBox.critical( |
3020
542e97d4ecb3
Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3014
diff
changeset
|
194 | self, |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
195 | 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
|
196 | self.tr( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
197 | """<p>Error parsing default user agents.</p><p>{0}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
198 | ).format(xml.errorString()), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
199 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
200 | |
1102
aae999261983
Added some more user agent strings to the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
201 | return isChecked |