From 11cd5f86536f7d488c3530c6a8d5f4911936a750 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Fri, 8 Jul 2016 17:18:26 +0200 Subject: [PATCH] Don't register webview in objreg All places now should use the tab API instead. --- qutebrowser/browser/commands.py | 6 ++++-- qutebrowser/browser/hints.py | 6 +++--- qutebrowser/browser/tab.py | 1 + qutebrowser/browser/webkit/network/networkmanager.py | 12 ++++++------ qutebrowser/browser/webkit/webview.py | 2 -- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py index 33886d025..9f4d2854a 100644 --- a/qutebrowser/browser/commands.py +++ b/qutebrowser/browser/commands.py @@ -1744,10 +1744,12 @@ class CommandDispatcher: raise cmdexc.CommandError("No focused window!") else: try: - receiver = objreg.get('webview', scope='tab', - tab='current') + tab = objreg.get('tab', scope='tab', tab='current') except objreg.RegistryUnavailableError: raise cmdexc.CommandError("No focused webview!") + # pylint: disable=protected-access + receiver = tab._widget + # pylint: enable=protected-access QApplication.postEvent(receiver, press_event) QApplication.postEvent(receiver, release_event) diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index 4f1c92f77..1e30ffe00 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -757,9 +757,9 @@ class HintManager(QObject): window=self._win_id) tabbed_browser.tabopen(url, background=background) else: - webview = objreg.get('webview', scope='tab', window=self._win_id, - tab=self._tab_id) - webview.openurl(url) + tab = objreg.get('tab', scope='tab', window=self._win_id, + tab=self._tab_id) + tab.openurl(url) @cmdutils.register(instance='hintmanager', scope='tab', name='hint', star_args_optional=True, maxsplit=2) diff --git a/qutebrowser/browser/tab.py b/qutebrowser/browser/tab.py index 126006365..4af6a2efe 100644 --- a/qutebrowser/browser/tab.py +++ b/qutebrowser/browser/tab.py @@ -458,6 +458,7 @@ class AbstractTab(QWidget): tab_registry = objreg.get('tab-registry', scope='window', window=win_id) tab_registry[self.tab_id] = self + objreg.register('tab', self, registry=self.registry) # self.history = AbstractHistory(self) # self.scroll = AbstractScroller(parent=self) diff --git a/qutebrowser/browser/webkit/network/networkmanager.py b/qutebrowser/browser/webkit/network/networkmanager.py index bdd98efc1..e2938d904 100644 --- a/qutebrowser/browser/webkit/network/networkmanager.py +++ b/qutebrowser/browser/webkit/network/networkmanager.py @@ -228,9 +228,9 @@ class NetworkManager(QNetworkAccessManager): # This might be a generic network manager, e.g. one belonging to a # DownloadManager. In this case, just skip the webview thing. if self._tab_id is not None: - webview = objreg.get('webview', scope='tab', window=self._win_id, - tab=self._tab_id) - webview.loadStarted.connect(q.abort) + tab = objreg.get('tab', scope='tab', window=self._win_id, + tab=self._tab_id) + tab.load_started.connect(q.abort) bridge = objreg.get('message-bridge', scope='window', window=self._win_id) bridge.ask(q, blocking=True) @@ -479,9 +479,9 @@ class NetworkManager(QNetworkAccessManager): if self._tab_id is not None: try: - webview = objreg.get('webview', scope='tab', - window=self._win_id, tab=self._tab_id) - current_url = webview.url() + tab = objreg.get('tab', scope='tab', window=self._win_id, + tab=self._tab_id) + current_url = tab.url() except (KeyError, RuntimeError, TypeError): # https://github.com/The-Compiler/qutebrowser/issues/889 # Catching RuntimeError and TypeError because we could be in diff --git a/qutebrowser/browser/webkit/webview.py b/qutebrowser/browser/webkit/webview.py index 5a01cc187..845c40f3f 100644 --- a/qutebrowser/browser/webkit/webview.py +++ b/qutebrowser/browser/webkit/webview.py @@ -94,8 +94,6 @@ class WebView(QWebView): self.progress = 0 self._tab_id = tab_id - objreg.register('webview', self, scope='tab', window=win_id, - tab=tab_id) page = self._init_page() hintmanager = hints.HintManager(win_id, self._tab_id, self) hintmanager.mouse_event.connect(self.on_mouse_event)