--- a/src/eric7/WebBrowser/AdBlock/AdBlockManager.py Sun Nov 06 11:22:39 2022 +0100 +++ b/src/eric7/WebBrowser/AdBlock/AdBlockManager.py Mon Nov 07 17:19:58 2022 +0100 @@ -17,6 +17,7 @@ from eric7.EricUtilities.EricMutexLocker import EricMutexLocker from eric7.EricWidgets import EricMessageBox from eric7.Utilities.AutoSaver import AutoSaver +from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow from .AdBlockMatcher import AdBlockMatcher from .AdBlockSubscription import AdBlockSubscription @@ -81,16 +82,12 @@ self.__interceptor = AdBlockUrlInterceptor(self) - from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow - WebBrowserWindow.networkManager().installUrlInterceptor(self.__interceptor) def __rulesChanged(self): """ Private slot handling a change of the AdBlock rules. """ - from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow - WebBrowserWindow.mainWindow().reloadUserStyleSheet() self.__updateMatcher() @@ -125,8 +122,6 @@ if self.isEnabled() == enabled: return - from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow - self.__enabled = enabled for mainWindow in WebBrowserWindow.mainWindows(): mainWindow.adBlockIcon().setEnabled(enabled) @@ -198,9 +193,9 @@ @return reference to the page block object @rtype AdBlockPage """ + from .AdBlockPage import AdBlockPage + if self.__adBlockPage is None: - from .AdBlockPage import AdBlockPage - self.__adBlockPage = AdBlockPage(self) return self.__adBlockPage @@ -328,6 +323,8 @@ @return flag indicating success @rtype bool """ + from .AdBlockSubscription import AdBlockSubscription + if url.path() != "subscribe": return False @@ -345,10 +342,6 @@ ).format(title), ) if res: - from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow - - from .AdBlockSubscription import AdBlockSubscription - dlg = WebBrowserWindow.adBlockManager().showDialog() subscription = AdBlockSubscription( url, False, WebBrowserWindow.adBlockManager() @@ -497,17 +490,19 @@ return subscriptions - def showDialog(self): + def showDialog(self, parent=None): """ Public slot to show the AdBlock subscription management dialog. + @param parent reference to the parent widget + @type QWidget @return reference to the dialog @rtype AdBlockDialog """ + from .AdBlockDialog import AdBlockDialog + if self.__adBlockDialog is None: - from .AdBlockDialog import AdBlockDialog - - self.__adBlockDialog = AdBlockDialog(self) + self.__adBlockDialog = AdBlockDialog(self, parent=parent) self.__adBlockDialog.show() return self.__adBlockDialog @@ -611,9 +606,9 @@ @return reference to the exceptions dialog @rtype AdBlockExceptionsDialog """ + from .AdBlockExceptionsDialog import AdBlockExceptionsDialog + if self.__adBlockExceptionsDialog is None: - from .AdBlockExceptionsDialog import AdBlockExceptionsDialog - self.__adBlockExceptionsDialog = AdBlockExceptionsDialog() self.__adBlockExceptionsDialog.load(self.__exceptedHosts) @@ -661,8 +656,6 @@ """ Private slot to update the adblock matcher. """ - from eric7.WebBrowser.WebBrowserWindow import WebBrowserWindow - WebBrowserWindow.networkManager().removeUrlInterceptor(self.__interceptor) if self.__enabled: