5 |
5 |
6 """ |
6 """ |
7 Module implementing the web browser main window. |
7 Module implementing the web browser main window. |
8 """ |
8 """ |
9 |
9 |
|
10 import contextlib |
|
11 import functools |
10 import os |
12 import os |
|
13 import pathlib |
11 import shutil |
14 import shutil |
12 import functools |
|
13 import contextlib |
|
14 import pathlib |
|
15 |
15 |
16 from PyQt6.QtCore import ( |
16 from PyQt6.QtCore import ( |
17 pyqtSlot, |
17 QByteArray, |
18 pyqtSignal, |
18 QEvent, |
|
19 QProcess, |
|
20 QSize, |
19 Qt, |
21 Qt, |
20 QByteArray, |
|
21 QSize, |
|
22 QTimer, |
22 QTimer, |
23 QUrl, |
23 QUrl, |
24 QProcess, |
24 pyqtSignal, |
25 QEvent, |
25 pyqtSlot, |
26 ) |
26 ) |
27 from PyQt6.QtGui import QDesktopServices, QKeySequence, QAction, QFont, QFontMetrics |
27 from PyQt6.QtGui import QAction, QDesktopServices, QFont, QFontMetrics, QKeySequence |
28 from PyQt6.QtWidgets import ( |
|
29 QWidget, |
|
30 QVBoxLayout, |
|
31 QSizePolicy, |
|
32 QDockWidget, |
|
33 QComboBox, |
|
34 QLabel, |
|
35 QMenu, |
|
36 QLineEdit, |
|
37 QApplication, |
|
38 QWhatsThis, |
|
39 QDialog, |
|
40 QHBoxLayout, |
|
41 QProgressBar, |
|
42 QInputDialog, |
|
43 ) |
|
44 from PyQt6.QtWebEngineCore import ( |
28 from PyQt6.QtWebEngineCore import ( |
45 QWebEngineSettings, |
|
46 QWebEnginePage, |
29 QWebEnginePage, |
47 QWebEngineProfile, |
30 QWebEngineProfile, |
48 QWebEngineScript, |
31 QWebEngineScript, |
|
32 QWebEngineSettings, |
|
33 ) |
|
34 from PyQt6.QtWidgets import ( |
|
35 QApplication, |
|
36 QComboBox, |
|
37 QDialog, |
|
38 QDockWidget, |
|
39 QHBoxLayout, |
|
40 QInputDialog, |
|
41 QLabel, |
|
42 QLineEdit, |
|
43 QMenu, |
|
44 QProgressBar, |
|
45 QSizePolicy, |
|
46 QVBoxLayout, |
|
47 QWhatsThis, |
|
48 QWidget, |
49 ) |
49 ) |
50 |
50 |
51 try: |
51 try: |
52 from PyQt6.QtHelp import QHelpEngine |
52 from PyQt6.QtHelp import QHelpEngine |
53 |
53 |
54 QTHELP_AVAILABLE = True |
54 QTHELP_AVAILABLE = True |
55 except ImportError: |
55 except ImportError: |
56 QTHELP_AVAILABLE = False |
56 QTHELP_AVAILABLE = False |
57 |
57 |
|
58 from eric7 import Globals, Preferences, Utilities |
|
59 from eric7.EricGui import EricPixmapCache |
58 from eric7.EricGui.EricAction import EricAction |
60 from eric7.EricGui.EricAction import EricAction |
59 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor |
61 from eric7.EricGui.EricOverrideCursor import EricOverrideCursor |
60 |
62 from eric7.EricNetwork.EricNetworkIcon import EricNetworkIcon |
61 from eric7.EricWidgets import EricMessageBox, EricFileDialog, EricErrorMessage |
63 from eric7.EricWidgets import EricErrorMessage, EricFileDialog, EricMessageBox |
|
64 from eric7.EricWidgets.EricApplication import ericApp |
62 from eric7.EricWidgets.EricMainWindow import EricMainWindow |
65 from eric7.EricWidgets.EricMainWindow import EricMainWindow |
63 from eric7.EricWidgets.EricApplication import ericApp |
|
64 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget |
66 from eric7.EricWidgets.EricZoomWidget import EricZoomWidget |
65 |
67 from eric7.Globals import getConfig |
66 from eric7.EricNetwork.EricNetworkIcon import EricNetworkIcon |
|
67 |
|
68 from eric7 import Globals, Preferences, Utilities |
|
69 |
|
70 from eric7.Preferences import Shortcuts |
68 from eric7.Preferences import Shortcuts |
71 |
|
72 from eric7.EricGui import EricPixmapCache |
|
73 from eric7.UI import Config |
69 from eric7.UI import Config |
74 from eric7.UI.Info import Version |
70 from eric7.UI.Info import Version |
75 from eric7.UI.NotificationWidget import NotificationTypes |
71 from eric7.UI.NotificationWidget import NotificationTypes |
|
72 from eric7.WebBrowser.Tools import WebIconProvider |
|
73 from eric7.WebBrowser.ZoomManager import ZoomManager |
76 |
74 |
77 from .Tools import Scripts, WebBrowserTools |
75 from .Tools import Scripts, WebBrowserTools |
78 from eric7.WebBrowser.Tools import WebIconProvider |
|
79 |
|
80 from eric7.WebBrowser.ZoomManager import ZoomManager |
|
81 |
|
82 from .WebBrowserSingleApplication import WebBrowserSingleApplicationServer |
76 from .WebBrowserSingleApplication import WebBrowserSingleApplicationServer |
83 |
|
84 from eric7.Globals import getConfig |
|
85 |
77 |
86 |
78 |
87 class WebBrowserWindow(EricMainWindow): |
79 class WebBrowserWindow(EricMainWindow): |
88 """ |
80 """ |
89 Class implementing the web browser main window. |
81 Class implementing the web browser main window. |
202 |
194 |
203 self.__htmlFullScreen = False |
195 self.__htmlFullScreen = False |
204 self.__windowStates = Qt.WindowState.WindowNoState |
196 self.__windowStates = Qt.WindowState.WindowNoState |
205 self.__isClosing = False |
197 self.__isClosing = False |
206 |
198 |
207 from .SearchWidget import SearchWidget |
199 from .AdBlock.AdBlockIcon import AdBlockIcon |
208 from .QtHelp.HelpTocWidget import HelpTocWidget |
200 from .Bookmarks.BookmarksToolBar import BookmarksToolBar |
|
201 from .Navigation.NavigationBar import NavigationBar |
|
202 from .Navigation.NavigationContainer import NavigationContainer |
209 from .QtHelp.HelpIndexWidget import HelpIndexWidget |
203 from .QtHelp.HelpIndexWidget import HelpIndexWidget |
210 from .QtHelp.HelpSearchWidget import HelpSearchWidget |
204 from .QtHelp.HelpSearchWidget import HelpSearchWidget |
|
205 from .QtHelp.HelpTocWidget import HelpTocWidget |
|
206 from .SearchWidget import SearchWidget |
|
207 from .StatusBar.ImagesIcon import ImagesIcon |
|
208 from .StatusBar.JavaScriptIcon import JavaScriptIcon |
|
209 from .VirusTotal.VirusTotalApi import VirusTotalAPI |
|
210 from .WebBrowserTabWidget import WebBrowserTabWidget |
211 from .WebBrowserView import WebBrowserView |
211 from .WebBrowserView import WebBrowserView |
212 from .WebBrowserTabWidget import WebBrowserTabWidget |
|
213 from .AdBlock.AdBlockIcon import AdBlockIcon |
|
214 from .StatusBar.JavaScriptIcon import JavaScriptIcon |
|
215 from .StatusBar.ImagesIcon import ImagesIcon |
|
216 from .VirusTotal.VirusTotalApi import VirusTotalAPI |
|
217 from .Navigation.NavigationBar import NavigationBar |
|
218 from .Navigation.NavigationContainer import NavigationContainer |
|
219 from .Bookmarks.BookmarksToolBar import BookmarksToolBar |
|
220 |
212 |
221 self.setStyle(Preferences.getUI("Style"), Preferences.getUI("StyleSheet")) |
213 self.setStyle(Preferences.getUI("Style"), Preferences.getUI("StyleSheet")) |
222 |
214 |
223 # initialize some SSL stuff |
215 # initialize some SSL stuff |
224 from eric7.EricNetwork.EricSslUtilities import initSSL |
216 from eric7.EricNetwork.EricSslUtilities import initSSL |