--- a/WebBrowser/WebBrowserWindow.py Wed Jul 26 19:46:17 2017 +0200 +++ b/WebBrowser/WebBrowserWindow.py Sat Jul 29 19:41:16 2017 +0200 @@ -108,6 +108,7 @@ _autoScroller = None _tabManager = None _sessionManager = None + _safeBrowsingManager = None _performingStartup = True _performingShutdown = False @@ -1757,6 +1758,23 @@ self.__showCertificateErrorsDialog) self.__actions.append(self.certificateErrorsAct) + self.safeBrowsingAct = E5Action( + self.tr('Manage Safe Browsing'), + UI.PixmapCache.getIcon("safeBrowsing.png"), + self.tr('Manage Safe Browsing...'), 0, 0, self, + 'webbrowser_manage_safe_browsing') + self.safeBrowsingAct.setStatusTip(self.tr( + 'Configure Safe Browsing and manage local cache')) + self.safeBrowsingAct.setWhatsThis(self.tr( + """<b>Manage Safe Browsing</b>""" + """<p>This opens a dialog to configure Safe Browsing and""" + """ to manage the local cache.</p>""" + )) + if not self.__initShortcutsOnly: + self.safeBrowsingAct.triggered.connect( + self.__showSafeBrowsingDialog) + self.__actions.append(self.safeBrowsingAct) + self.showDownloadManagerAct = E5Action( self.tr('Downloads'), self.tr('Downloads'), @@ -2084,6 +2102,8 @@ menu.addSeparator() menu.addAction(self.adblockAct) menu.addSeparator() + menu.addAction(self.safeBrowsingAct) + menu.addSeparator() self.__settingsMenu = menu self.__settingsMenu.aboutToShow.connect( self.__aboutToShowSettingsMenu) @@ -2205,6 +2225,8 @@ menu.addSeparator() menu.addAction(self.adblockAct) menu.addSeparator() + menu.addAction(self.safeBrowsingAct) + menu.addSeparator() menu.addMenu(self.__userAgentMenu) menu.addAction(self.userAgentManagerAct) menu.addSeparator() @@ -2946,6 +2968,8 @@ self.networkManager().shutdown() + self.safeBrowsingManager().close() + for browser in WebBrowserWindow.BrowserWindows: if browser != self: browser.close() @@ -4833,3 +4857,27 @@ Private slot to show the session manager dialog. """ self.sessionManager().showSessionManagerDialog() + + ########################################################## + ## Methods below implement safe browsing related functions + ########################################################## + + @classmethod + def safeBrowsingManager(cls): + """ + Class method to get a reference to the safe browsing interface. + + @return reference to the safe browsing manager + @rtype SafeBrowsingManager + """ + if cls._safeBrowsingManager is None: + from .SafeBrowsing.SafeBrowsingManager import SafeBrowsingManager + cls._safeBrowsingManager = SafeBrowsingManager() + + return cls._safeBrowsingManager + + def __showSafeBrowsingDialog(self): + """ + Private slot to show the safe browsing management dialog. + """ + self.safeBrowsingManager().showSafeBrowsingDialog()