Sun, 03 Dec 2023 19:46:34 +0100
Corrected some uses of dict.keys(), dict.values() and dict.items().
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
9653
e67609152c5e
Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
3 | # Copyright (c) 2016 - 2023 Detlev Offenbach <detlev@die-offenbachs.de> |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module containing a web site icon storage object. |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
10 | import contextlib |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | import json |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | import os |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
14 | from PyQt6.QtCore import QBuffer, QByteArray, QIODevice, QObject, QUrl, pyqtSignal |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
15 | from PyQt6.QtGui import QIcon, QImage, QPixmap |
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
|
16 | from PyQt6.QtWidgets import QDialog |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
18 | from eric7.EricGui import EricPixmapCache |
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
|
19 | from eric7.Utilities.AutoSaver import AutoSaver |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
20 | |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
22 | class WebIconProvider(QObject): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
23 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
24 | Class implementing a web site icon storage. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
25 | |
5726
e1dbd217214a
Fixed a few source docu issues (forgotten signals and exceptions).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5389
diff
changeset
|
26 | @signal changed() emitted to indicate a change of the icons database |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
28 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | changed = pyqtSignal() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
30 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
31 | def __init__(self, parent=None): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
32 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
33 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
34 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
35 | @param parent reference to the parent object (QObject) |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
36 | """ |
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
|
37 | super().__init__(parent) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
38 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
39 | self.__encoding = "iso-8859-1" |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
40 | self.__iconsFileName = "web_site_icons.json" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
41 | self.__iconDatabasePath = "" # saving of icons disabled |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
42 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
43 | self.__iconsDB = {} |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
44 | self.__loaded = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
45 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
46 | self.__saveTimer = AutoSaver(self, self.save) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
47 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
48 | self.changed.connect(self.__saveTimer.changeOccurred) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
49 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
50 | def setIconDatabasePath(self, path): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
51 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
52 | Public method to set the path for the web site icons store. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
53 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
54 | @param path path to store the icons file to |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
55 | @type str |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
56 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
57 | if path != self.__iconDatabasePath: |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
58 | self.close() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
59 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
60 | self.__iconDatabasePath = path |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
61 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
62 | def iconDatabasePath(self): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
63 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
64 | Public method o get the path for the web site icons store. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
65 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
66 | @return path to store the icons file to |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
67 | @rtype str |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
68 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
69 | return self.__iconDatabasePath |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
70 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
71 | def close(self): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
72 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
73 | Public method to close the web icon provider. |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
74 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
75 | self.__saveTimer.saveIfNeccessary() |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
76 | self.__loaded = False |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
77 | self.__iconsDB = {} |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
78 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
79 | def load(self): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
80 | """ |
7593
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
81 | Public method to load the web site icons. |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
82 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
83 | if self.__loaded: |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
84 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
85 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
86 | if self.__iconDatabasePath: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
87 | filename = os.path.join(self.__iconDatabasePath, self.__iconsFileName) |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
88 | try: |
7785
9978016560ec
Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
89 | with open(filename, "r") as f: |
9978016560ec
Changed code to use context manager 'open()' for file operations.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7781
diff
changeset
|
90 | db = json.load(f) |
7836
2f0d208b8137
Changed code to not use the OSError aliases (IOError, EnvironmentError, socket.error and select.error) anymore.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7785
diff
changeset
|
91 | except OSError: |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
92 | # ignore silentyl |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
93 | db = {} |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
94 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
95 | self.__iconsDB = {} |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
96 | for url, data in db.items(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
97 | self.__iconsDB[url] = QIcon( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
98 | QPixmap.fromImage( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
99 | QImage.fromData(QByteArray(data.encode(self.__encoding))) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
100 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
101 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
102 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
103 | self.__loaded = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
104 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
105 | def save(self): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
106 | """ |
7593
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
107 | Public method to save the web site icons. |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
108 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
109 | if not self.__loaded: |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
110 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
111 | |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
112 | from eric7.WebBrowser.WebBrowserWindow import ( # __IGNORE_WARNING_I101__ |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
113 | WebBrowserWindow, |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
114 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
115 | |
4820
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
116 | if not WebBrowserWindow.isPrivate() and bool(self.__iconDatabasePath): |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
117 | db = {} |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
118 | for url, icon in self.__iconsDB.items(): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
119 | ba = QByteArray() |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
120 | buffer = QBuffer(ba) |
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:
7923
diff
changeset
|
121 | buffer.open(QIODevice.OpenModeFlag.WriteOnly) |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
122 | icon.pixmap(32).toImage().save(buffer, "PNG") |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
123 | db[url] = bytes(buffer.data()).decode(self.__encoding) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
124 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
125 | filename = os.path.join(self.__iconDatabasePath, self.__iconsFileName) |
8240
93b8a353c4bf
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8237
diff
changeset
|
126 | with contextlib.suppress(OSError), open(filename, "w") as f: |
93b8a353c4bf
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 1).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8237
diff
changeset
|
127 | json.dump(db, f) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
128 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
129 | def saveIcon(self, view): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
130 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
131 | Public method to save a web site icon. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
132 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
133 | @param view reference to the view object |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
134 | @type WebBrowserView |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
135 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
136 | scheme = view.url().scheme() |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
137 | if scheme in ["eric", "about", "qthelp", "file", "abp", "ftp"]: |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
138 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
139 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
140 | self.load() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
141 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
142 | if view.mainWindow().isPrivate(): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
143 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
144 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
145 | urlStr = self.__urlToString(view.url()) |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
146 | self.__iconsDB[urlStr] = view.icon() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
147 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
148 | self.changed.emit() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
149 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
150 | def __urlToString(self, url): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
151 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
152 | Private method to convert an URL to a string. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
153 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
154 | @param url URL to be converted |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
155 | @type QUrl |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
156 | @return string representation of the URL |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
157 | @rtype str |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
158 | """ |
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:
7923
diff
changeset
|
159 | return url.toString( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
160 | QUrl.UrlFormattingOption.RemoveUserInfo |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
161 | | QUrl.UrlFormattingOption.RemoveFragment |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
162 | | QUrl.UrlFormattingOption.RemovePath |
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:
7923
diff
changeset
|
163 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
164 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
165 | def iconForUrl(self, url): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
166 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
167 | Public method to get an icon for an URL. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
168 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
169 | @param url URL to get icon for |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
170 | @type QUrl |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
171 | @return icon for the URL |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
172 | @rtype QIcon |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
173 | """ |
8237
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
174 | scheme2iconName = { |
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
175 | "eric": "ericWeb", |
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
176 | "about": "ericWeb", |
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
177 | "qthelp": "qthelp", |
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
178 | "file": "fileMisc", |
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
179 | "abp": "adBlockPlus", |
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
180 | "ftp": "network-server", |
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
181 | } |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
182 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
183 | scheme = url.scheme() |
8237
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
184 | iconName = scheme2iconName.get(scheme) |
acc1490f822e
Applied some more code simplifications suggested by the new Simplify checker (Y116: use dictionary access instead of multiple ifs).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8218
diff
changeset
|
185 | if iconName: |
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
|
186 | return EricPixmapCache.getIcon(iconName) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
187 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
188 | self.load() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
189 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
190 | urlStr = self.__urlToString(url) |
7593
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
191 | if urlStr in self.__iconsDB: |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
192 | return self.__iconsDB[urlStr] |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
193 | else: |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
194 | for iconUrlStr in self.__iconsDB: |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
195 | if iconUrlStr.startswith(urlStr): |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
196 | return self.__iconsDB[iconUrlStr] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
197 | |
4907
1e3d61349671
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4820
diff
changeset
|
198 | # try replacing http scheme with https scheme |
1e3d61349671
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4820
diff
changeset
|
199 | url = QUrl(url) |
1e3d61349671
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4820
diff
changeset
|
200 | if url.scheme() == "http": |
1e3d61349671
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4820
diff
changeset
|
201 | url.setScheme("https") |
7593
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
202 | urlStr = self.__urlToString(url) |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
203 | if urlStr in self.__iconsDB: |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
204 | return self.__iconsDB[urlStr] |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
205 | else: |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
206 | for iconUrlStr in self.__iconsDB: |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
207 | if iconUrlStr.startswith(urlStr): |
68b03f6ebed5
Web Browser: made the web icon provider a bit more universal
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7533
diff
changeset
|
208 | return self.__iconsDB[iconUrlStr] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
209 | |
4907
1e3d61349671
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4820
diff
changeset
|
210 | if scheme == "https": |
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
|
211 | return EricPixmapCache.getIcon("securityHigh32") |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
212 | 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
|
213 | return EricPixmapCache.getIcon("defaultIcon") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
214 | |
4741
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4732
diff
changeset
|
215 | def clear(self): |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4732
diff
changeset
|
216 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4732
diff
changeset
|
217 | Public method to clear the icons cache. |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4732
diff
changeset
|
218 | """ |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4732
diff
changeset
|
219 | self.load() |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4732
diff
changeset
|
220 | self.__iconsDB = {} |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4732
diff
changeset
|
221 | self.changed.emit() |
f9e1adc69076
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4732
diff
changeset
|
222 | self.__saveTimer.saveIfNeccessary() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
223 | |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
224 | def showWebIconDialog(self, parent=None): |
4820
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
225 | """ |
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
226 | Public method to show a dialog to manage the Favicons. |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
227 | |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
228 | @param parent reference to the parent widget |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
229 | @type QWidget |
4820
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
230 | """ |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
231 | from .WebIconDialog import WebIconDialog |
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
232 | |
4820
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
233 | self.load() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
234 | |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
235 | dlg = WebIconDialog(self.__iconsDB, parent=parent) |
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:
7923
diff
changeset
|
236 | if dlg.exec() == QDialog.DialogCode.Accepted: |
4820
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
237 | changed = False |
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
238 | urls = dlg.getUrls() |
10373
093dcebe5ecb
Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9653
diff
changeset
|
239 | for url in list(self.__iconsDB): |
4820
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
240 | if url not in urls: |
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
241 | del self.__iconsDB[url] |
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
242 | changed = True |
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
243 | if changed: |
f38e4fb83ecd
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4741
diff
changeset
|
244 | self.changed.emit() |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
245 | |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
246 | |
4971
0f21662c0d2d
Added a class to extract all top level domains from a file provided by Mozilla.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4907
diff
changeset
|
247 | _WebIconProvider = None |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
248 | |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
249 | |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
250 | def instance(): |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
251 | """ |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
252 | Global function to get a reference to the web icon provider and create it, |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
253 | if it hasn't been yet. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
254 | |
4726
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
255 | @return reference to the web icon provider object |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
256 | @rtype WebIconProvider |
c26e2a2dc0cb
Continued porting the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
257 | """ |
4971
0f21662c0d2d
Added a class to extract all top level domains from a file provided by Mozilla.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4907
diff
changeset
|
258 | global _WebIconProvider |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
259 | |
4971
0f21662c0d2d
Added a class to extract all top level domains from a file provided by Mozilla.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4907
diff
changeset
|
260 | if _WebIconProvider is None: |
0f21662c0d2d
Added a class to extract all top level domains from a file provided by Mozilla.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4907
diff
changeset
|
261 | _WebIconProvider = WebIconProvider() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
262 | |
4971
0f21662c0d2d
Added a class to extract all top level domains from a file provided by Mozilla.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
4907
diff
changeset
|
263 | return _WebIconProvider |