--- a/src/eric7/WebBrowser/WebBrowserWindow.py Sun Nov 06 11:22:39 2022 +0100 +++ b/src/eric7/WebBrowser/WebBrowserWindow.py Mon Nov 07 17:19:58 2022 +0100 @@ -60,12 +60,14 @@ from eric7.EricGui.EricAction import EricAction from eric7.EricGui.EricOverrideCursor import EricOverrideCursor from eric7.EricNetwork.EricNetworkIcon import EricNetworkIcon +from eric7.EricNetwork.EricSslUtilities import initSSL from eric7.EricWidgets import EricErrorMessage, EricFileDialog, EricMessageBox from eric7.EricWidgets.EricApplication import ericApp from eric7.EricWidgets.EricMainWindow import EricMainWindow from eric7.EricWidgets.EricZoomWidget import EricZoomWidget from eric7.Globals import getConfig from eric7.Preferences import Shortcuts +from eric7.Preferences.ShortcutsDialog import ShortcutsDialog from eric7.UI import Config from eric7.UI.Info import Version from eric7.UI.NotificationWidget import NotificationTypes @@ -168,6 +170,21 @@ @param saname name to be used for the single application server @type str """ + from .AdBlock.AdBlockIcon import AdBlockIcon + from .Bookmarks.BookmarksToolBar import BookmarksToolBar + from .Navigation.NavigationBar import NavigationBar + from .Navigation.NavigationContainer import NavigationContainer + from .QtHelp.HelpIndexWidget import HelpIndexWidget + from .QtHelp.HelpSearchWidget import HelpSearchWidget + from .QtHelp.HelpTocWidget import HelpTocWidget + from .SearchWidget import SearchWidget + from .StatusBar.ImagesIcon import ImagesIcon + from .StatusBar.JavaScriptIcon import JavaScriptIcon + from .VirusTotal.VirusTotalApi import VirusTotalAPI + from .WebBrowserJavaScriptConsole import WebBrowserJavaScriptConsole + from .WebBrowserTabWidget import WebBrowserTabWidget + from .WebBrowserView import WebBrowserView + self.__hideNavigationTimer = None super().__init__(parent) @@ -196,25 +213,9 @@ self.__windowStates = Qt.WindowState.WindowNoState self.__isClosing = False - from .AdBlock.AdBlockIcon import AdBlockIcon - from .Bookmarks.BookmarksToolBar import BookmarksToolBar - from .Navigation.NavigationBar import NavigationBar - from .Navigation.NavigationContainer import NavigationContainer - from .QtHelp.HelpIndexWidget import HelpIndexWidget - from .QtHelp.HelpSearchWidget import HelpSearchWidget - from .QtHelp.HelpTocWidget import HelpTocWidget - from .SearchWidget import SearchWidget - from .StatusBar.ImagesIcon import ImagesIcon - from .StatusBar.JavaScriptIcon import JavaScriptIcon - from .VirusTotal.VirusTotalApi import VirusTotalAPI - from .WebBrowserTabWidget import WebBrowserTabWidget - from .WebBrowserView import WebBrowserView - self.setStyle(Preferences.getUI("Style"), Preferences.getUI("StyleSheet")) # initialize some SSL stuff - from eric7.EricNetwork.EricSslUtilities import initSSL - initSSL() if WebBrowserWindow._useQtHelp: @@ -309,8 +310,6 @@ self.addDockWidget(Qt.DockWidgetArea.LeftDockWidgetArea, self.__searchDock) # JavaScript Console window - from .WebBrowserJavaScriptConsole import WebBrowserJavaScriptConsole - self.__javascriptConsole = WebBrowserJavaScriptConsole(self) self.__javascriptConsoleDock = QDockWidget(self.tr("JavaScript Console")) self.__javascriptConsoleDock.setObjectName("JavascriptConsole") @@ -1846,9 +1845,9 @@ self.__actions.append(self.clearIconsAct) self.manageIconsAct = EricAction( - self.tr("Manage saved Favicons"), + self.tr("Manage Saved Favicons"), EricPixmapCache.getIcon("icons"), - self.tr("Manage saved Favicons"), + self.tr("Manage Saved Favicons"), 0, 0, self, @@ -1859,7 +1858,7 @@ ) self.manageIconsAct.setWhatsThis( self.tr( - """<b>Manage saved Favicons</b>""" + """<b>Manage Saved Favicons</b>""" """<p>This shows a dialog to manage the saved favicons of""" """ previously visited URLs.</p>""" ) @@ -2304,6 +2303,10 @@ """ Private method to create the menus. """ + from .Bookmarks.BookmarksMenu import BookmarksMenuBarMenu + from .History.HistoryMenu import HistoryMenu + from .UserAgent.UserAgentMenu import UserAgentMenu + mb = self.menuBar() menu = mb.addMenu(self.tr("&File")) @@ -2373,8 +2376,6 @@ menu.addAction(self.fullScreenAct) self.addActions(menu.actions()) - from .History.HistoryMenu import HistoryMenu - self.historyMenu = HistoryMenu(self, self.__tabWidget) self.historyMenu.setTitle(self.tr("H&istory")) self.historyMenu.openUrl.connect(self.openUrl) @@ -2391,8 +2392,6 @@ self.historyMenu.setInitialActions(historyActions) self.addActions(historyActions) - from .Bookmarks.BookmarksMenu import BookmarksMenuBarMenu - self.bookmarksMenu = BookmarksMenuBarMenu(self) self.bookmarksMenu.setTitle(self.tr("&Bookmarks")) self.bookmarksMenu.openUrl.connect(self.openUrl) @@ -2440,8 +2439,6 @@ self.__settingsMenu = menu self.__settingsMenu.aboutToShow.connect(self.__aboutToShowSettingsMenu) - from .UserAgent.UserAgentMenu import UserAgentMenu - self.__userAgentMenu = UserAgentMenu(self.tr("Global User Agent")) menu.addMenu(self.__userAgentMenu) menu.addAction(self.userAgentManagerAct) @@ -3063,13 +3060,13 @@ @param res result of the JavaScript @type list """ + from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog + description = "" for meta in res: if meta["name"] == "description": description = meta["content"] - from .Bookmarks.AddBookmarkDialog import AddBookmarkDialog - dlg = AddBookmarkDialog() dlg.setUrl(url) dlg.setTitle(title) @@ -3147,13 +3144,13 @@ @param res result of the JavaScript @type list """ + from .Bookmarks.BookmarkNode import BookmarkNode + description = "" for meta in res: if meta["name"] == "description": description = meta["content"] - from .Bookmarks.BookmarkNode import BookmarkNode - bookmark = BookmarkNode(BookmarkNode.Bookmark) bookmark.url = url bookmark.title = title @@ -3809,9 +3806,9 @@ @return reference to the network access manager (NetworkManager) """ + from .Network.NetworkManager import NetworkManager + if cls._networkManager is None: - from .Network.NetworkManager import NetworkManager - cls._networkManager = NetworkManager(cls.helpEngine()) return cls._networkManager @@ -3823,9 +3820,9 @@ @return reference to the cookie jar (CookieJar) """ + from .CookieJar.CookieJar import CookieJar + if cls._cookieJar is None: - from .CookieJar.CookieJar import CookieJar - cls._cookieJar = CookieJar() return cls._cookieJar @@ -3842,7 +3839,7 @@ """ Private slot to show a dialog to manage the favicons database. """ - WebIconProvider.instance().showWebIconDialog() + WebIconProvider.instance().showWebIconDialog(self) @pyqtSlot(QUrl) def urlHandler(self, url): @@ -3959,7 +3956,7 @@ Private slot to manage the QtHelp documentation database. """ if WebBrowserWindow._useQtHelp: - from .QtHelp.QtHelpDocumentationConfigurationDialog import ( + from .QtHelp.QtHelpDocumentationConfigurationDialog import ( # __IGNORE_WARNING__ QtHelpDocumentationConfigurationDialog, ) @@ -4057,7 +4054,9 @@ help database. """ if WebBrowserWindow._useQtHelp: - from .QtHelp.HelpDocsInstaller import HelpDocsInstaller + from .QtHelp.HelpDocsInstaller import ( # __IGNORE_WARNING_I101__ + HelpDocsInstaller, + ) self.__helpInstaller = HelpDocsInstaller(self.__helpEngine.collectionFile()) self.__helpInstaller.errorMessage.connect(self.__showInstallationError) @@ -4192,35 +4191,35 @@ """ Private slot to show the certificate errors management dialog. """ - self.networkManager().showSslErrorExceptionsDialog() + self.networkManager().showSslErrorExceptionsDialog(self) @pyqtSlot() def __showAdBlockDialog(self): """ Private slot to show the AdBlock configuration dialog. """ - self.adBlockManager().showDialog() + self.adBlockManager().showDialog(self) @pyqtSlot() def __showPersonalInformationDialog(self): """ Private slot to show the Personal Information configuration dialog. """ - self.personalInformationManager().showConfigurationDialog() + self.personalInformationManager().showConfigurationDialog(parent=self) @pyqtSlot() def __showGreaseMonkeyConfigDialog(self): """ Private slot to show the GreaseMonkey scripts configuration dialog. """ - self.greaseMonkeyManager().showConfigurationDialog() + self.greaseMonkeyManager().showConfigurationDialog(parent=self) @pyqtSlot() def __showFeaturePermissionDialog(self): """ Private slot to show the feature permission dialog. """ - self.featurePermissionManager().showFeaturePermissionsDialog() + self.featurePermissionManager().showFeaturePermissionsDialog(self) @pyqtSlot() def __showZoomValuesDialog(self): @@ -4296,9 +4295,9 @@ @return reference to the bookmarks manager (BookmarksManager) """ + from .Bookmarks.BookmarksManager import BookmarksManager + if cls._bookmarksManager is None: - from .Bookmarks.BookmarksManager import BookmarksManager - cls._bookmarksManager = BookmarksManager() return cls._bookmarksManager @@ -4385,9 +4384,9 @@ @return reference to the history manager (HistoryManager) """ + from .History.HistoryManager import HistoryManager + if cls._historyManager is None: - from .History.HistoryManager import HistoryManager - cls._historyManager = HistoryManager() return cls._historyManager @@ -4399,9 +4398,9 @@ @return reference to the password manager (PasswordManager) """ + from .Passwords.PasswordManager import PasswordManager + if cls._passwordManager is None: - from .Passwords.PasswordManager import PasswordManager - cls._passwordManager = PasswordManager() return cls._passwordManager @@ -4413,9 +4412,9 @@ @return reference to the AdBlock manager (AdBlockManager) """ + from .AdBlock.AdBlockManager import AdBlockManager + if cls._adblockManager is None: - from .AdBlock.AdBlockManager import AdBlockManager - cls._adblockManager = AdBlockManager() return cls._adblockManager @@ -4435,9 +4434,9 @@ @return reference to the download manager (DownloadManager) """ + from .Download.DownloadManager import DownloadManager + if cls._downloadManager is None: - from .Download.DownloadManager import DownloadManager - cls._downloadManager = DownloadManager() return cls._downloadManager @@ -4450,9 +4449,9 @@ @return reference to the personal information manager (PersonalInformationManager) """ + from .PersonalInformationManager import PersonalInformationManager + if cls._personalInformationManager is None: - from .PersonalInformationManager import PersonalInformationManager - cls._personalInformationManager = ( PersonalInformationManager.PersonalInformationManager() ) @@ -4466,9 +4465,9 @@ @return reference to the GreaseMonkey manager (GreaseMonkeyManager) """ + from .GreaseMonkey.GreaseMonkeyManager import GreaseMonkeyManager + if cls._greaseMonkeyManager is None: - from .GreaseMonkey.GreaseMonkeyManager import GreaseMonkeyManager - cls._greaseMonkeyManager = GreaseMonkeyManager() return cls._greaseMonkeyManager @@ -4481,11 +4480,11 @@ @return reference to the feature permission manager @rtype FeaturePermissionManager """ + from .FeaturePermissions.FeaturePermissionManager import ( + FeaturePermissionManager, + ) + if cls._featurePermissionManager is None: - from .FeaturePermissions.FeaturePermissionManager import ( - FeaturePermissionManager, - ) - cls._featurePermissionManager = FeaturePermissionManager() return cls._featurePermissionManager @@ -4498,9 +4497,9 @@ @return reference to the image finder object @rtype ImageSearchEngine """ + from .ImageSearch.ImageSearchEngine import ImageSearchEngine + if cls._imageSearchEngine is None: - from .ImageSearch.ImageSearchEngine import ImageSearchEngine - cls._imageSearchEngine = ImageSearchEngine() return cls._imageSearchEngine @@ -4513,9 +4512,9 @@ @return reference to the auto scroller object @rtype AutoScroller """ + from .AutoScroll.AutoScroller import AutoScroller + if cls._autoScroller is None: - from .AutoScroll.AutoScroller import AutoScroller - cls._autoScroller = AutoScroller() return cls._autoScroller @@ -4528,9 +4527,9 @@ @return reference to the tab manager widget @rtype TabManagerWidget """ + from .TabManager.TabManagerWidget import TabManagerWidget + if cls._tabManager is None: - from .TabManager.TabManagerWidget import TabManagerWidget - cls._tabManager = TabManagerWidget(cls.mainWindow()) # do the connections @@ -4862,9 +4861,9 @@ @return reference to the RSS feeds manager (FeedsManager) """ + from .Feeds.FeedsManager import FeedsManager + if cls._feedsManager is None: - from .Feeds.FeedsManager import FeedsManager - cls._feedsManager = FeedsManager() return cls._feedsManager @@ -4914,9 +4913,9 @@ @return reference to the user agents manager (UserAgentManager) """ + from .UserAgent.UserAgentManager import UserAgentManager + if cls._userAgentsManager is None: - from .UserAgent.UserAgentManager import UserAgentManager - cls._userAgentsManager = UserAgentManager() return cls._userAgentsManager @@ -4938,9 +4937,9 @@ @return reference to the data synchronization manager (SyncManager) """ + from .Sync.SyncManager import SyncManager + if cls._syncManager is None: - from .Sync.SyncManager import SyncManager - cls._syncManager = SyncManager() return cls._syncManager @@ -4959,9 +4958,9 @@ @return reference to the speed dial (SpeedDial) """ + from .SpeedDial.SpeedDial import SpeedDial + if cls._speedDial is None: - from .SpeedDial.SpeedDial import SpeedDial - cls._speedDial = SpeedDial() return cls._speedDial @@ -5174,6 +5173,8 @@ @param styleSheetFile name of the user style sheet file (string) """ + from .WebBrowserPage import WebBrowserPage + name = "_eric_userstylesheet" userStyle = "" @@ -5186,8 +5187,6 @@ self.webProfile().scripts().remove(scripts[0]) if userStyle: - from .WebBrowserPage import WebBrowserPage - script = QWebEngineScript() script.setName(name) script.setInjectionPoint(QWebEngineScript.InjectionPoint.DocumentCreation) @@ -5219,9 +5218,9 @@ (None = use configured timeout, 0 = indefinitely) @type int """ + from eric7.UI.NotificationWidget import NotificationWidget + if cls._notification is None: - from eric7.UI.NotificationWidget import NotificationWidget - cls._notification = NotificationWidget() if timeout is None: @@ -5279,6 +5278,8 @@ @return reference to the web profile object @rtype QWebEngineProfile """ + from .WebBrowserPage import WebBrowserPage + if cls._webProfile is None: if private: cls._webProfile = QWebEngineProfile() @@ -5324,8 +5325,6 @@ ) # Setup QWebChannel user scripts - from .WebBrowserPage import WebBrowserPage - # WebChannel for SafeJsWorld script = QWebEngineScript() script.setName("_eric_webchannel") @@ -5377,9 +5376,9 @@ @return reference to the session manager @rtype SessionManager """ + from .Session.SessionManager import SessionManager + if cls._sessionManager is None and not cls._isPrivate: - from .Session.SessionManager import SessionManager - cls._sessionManager = SessionManager() return cls._sessionManager @@ -5403,9 +5402,9 @@ @return reference to the safe browsing manager @rtype SafeBrowsingManager """ + from .SafeBrowsing.SafeBrowsingManager import SafeBrowsingManager + if cls._safeBrowsingManager is None: - from .SafeBrowsing.SafeBrowsingManager import SafeBrowsingManager - cls._safeBrowsingManager = SafeBrowsingManager() return cls._safeBrowsingManager @@ -5429,9 +5428,9 @@ @return reference to the protocol handler manager @rtype ProtocolHandlerManager """ + from .Network.ProtocolHandlerManager import ProtocolHandlerManager + if cls._protocolHandlerManager is None: - from .Network.ProtocolHandlerManager import ProtocolHandlerManager - cls._protocolHandlerManager = ProtocolHandlerManager() return cls._protocolHandlerManager @@ -5501,8 +5500,6 @@ Private slot to configure the keyboard shortcuts. """ if self.__shortcutsDialog is None: - from eric7.Preferences.ShortcutsDialog import ShortcutsDialog - self.__shortcutsDialog = ShortcutsDialog(self) self.__shortcutsDialog.populate(helpViewer=self) self.__shortcutsDialog.show() @@ -5544,8 +5541,6 @@ ) if ok: - from eric7.Preferences import Shortcuts - Shortcuts.exportShortcuts(fn, helpViewer=self) @pyqtSlot() @@ -5563,6 +5558,4 @@ ) if fn: - from eric7.Preferences import Shortcuts - Shortcuts.importShortcuts(fn, helpViewer=self)