From f1735836053c02ac26bd2ef7b6a667304df98a03 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Fri, 4 Jul 2014 14:37:31 +0200 Subject: [PATCH 1/2] Documentation update for Qt 5.3.1 --- README.asciidoc | 6 +++--- qutebrowser/browser/webpage.py | 6 ++---- qutebrowser/network/networkmanager.py | 2 -- qutebrowser/utils/earlyinit.py | 4 ++-- 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/README.asciidoc b/README.asciidoc index a308ccb4c..4d3b5c8b7 100644 --- a/README.asciidoc +++ b/README.asciidoc @@ -28,10 +28,10 @@ Requirements The following software and libraries are required to run qutebrowser: * http://www.python.org/[Python] 3.3 or newer (3.4 recommended) -* http://qt-project.org/[Qt] 5.2 or newer (5.3 recommended) +* http://qt-project.org/[Qt] 5.2 or newer (5.3.1 recommended) * QtWebKit -* http://www.riverbankcomputing.com/software/pyqt/intro[PyQt] 5.2 or newer (5.3 - recommended) for Python 3 +* http://www.riverbankcomputing.com/software/pyqt/intro[PyQt] 5.2 or newer +(5.3.1 recommended) for Python 3 * https://pypi.python.org/pypi/setuptools/[pkg_resources/setuptools] The following libraries are optional and provide better debugging: diff --git a/qutebrowser/browser/webpage.py b/qutebrowser/browser/webpage.py index 4f6a0afb3..9227feaac 100644 --- a/qutebrowser/browser/webpage.py +++ b/qutebrowser/browser/webpage.py @@ -66,10 +66,8 @@ class BrowserPage(QWebPage): self._view = view if PYQT_VERSION > 0x050300: - # This breaks in <= 5.3.0, but in anything later it hopefully - # works. - # FIXME confirm this as soon as 5.3.1 is out! - # pylint: disable=invalid-name + # This is broken in Qt <= 5.3.0. + # See http://www.riverbankcomputing.com/pipermail/pyqt/2014-June/034385.html self.javaScriptPrompt = self._javascript_prompt def _javascript_prompt(self, _frame, msg, default): diff --git a/qutebrowser/network/networkmanager.py b/qutebrowser/network/networkmanager.py index 4f7479a56..87bf68ea6 100644 --- a/qutebrowser/network/networkmanager.py +++ b/qutebrowser/network/networkmanager.py @@ -148,8 +148,6 @@ class NetworkManager(QNetworkAccessManager): # currency on http://ch.mouser.com/localsites/ # # See http://www.riverbankcomputing.com/pipermail/pyqt/2014-June/034420.html - # - # FIXME: Check if this is really fixed in 5.3.1. with log.disable_qt_msghandler(): reply = super().createRequest(op, req, outgoing_data) else: diff --git a/qutebrowser/utils/earlyinit.py b/qutebrowser/utils/earlyinit.py index e22f6d028..5d31c9222 100644 --- a/qutebrowser/utils/earlyinit.py +++ b/qutebrowser/utils/earlyinit.py @@ -127,8 +127,8 @@ def fix_harfbuzz(args): https://bugreports.qt-project.org/browse/QTBUG-39278 So the new engine will be more stable. - - On Qt 5.3.1 this bug hopefully will be fixed and the old engine - will be the more stable one again. + - On Qt 5.3.1 this bug is fixed and the old engine will be the more stable + one again. IMPORTANT: This needs to be done before QWidgets is imported in any way! From cea3cb47127168fc18fce086eace4817317f243c Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Fri, 4 Jul 2014 17:32:17 +0200 Subject: [PATCH 2/2] Only leave insert/hint mode if loading started in current tab --- doc/BUGS | 2 -- qutebrowser/widgets/tabbedbrowser.py | 7 +++++++ qutebrowser/widgets/webview.py | 2 -- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/doc/BUGS b/doc/BUGS index d3a95ebaa..f9c47c8b1 100644 --- a/doc/BUGS +++ b/doc/BUGS @@ -1,8 +1,6 @@ Bugs ==== -- Rapid hinting exits hinting mode - - Concept of "current URL" should work better before urlChanged is emitted, e.g. loading a page and immediately yanking the (non-resolved) URL should work. diff --git a/qutebrowser/widgets/tabbedbrowser.py b/qutebrowser/widgets/tabbedbrowser.py index 9f1a07542..557a4f5fa 100644 --- a/qutebrowser/widgets/tabbedbrowser.py +++ b/qutebrowser/widgets/tabbedbrowser.py @@ -167,6 +167,7 @@ class TabbedBrowser(TabWidget): tab.hintmanager.hint_strings_updated.connect(self.hint_strings_updated) tab.hintmanager.download_get.connect(self.download_get) tab.hintmanager.openurl.connect(self.openurl) + self.cur_load_started.connect(self.on_cur_load_started) # downloads tab.page().unsupportedContent.connect(self.start_download) tab.page().start_download.connect(self.start_download) @@ -357,6 +358,12 @@ class TabbedBrowser(TabWidget): return self.setTabIcon(idx, EmptyTabIcon()) + @pyqtSlot() + def on_cur_load_started(self): + """Leave insert/hint mode when loading started.""" + for mode in ('insert', 'hint'): + modeman.maybe_leave(mode, 'load started') + @pyqtSlot(WebView, str) def on_title_changed(self, tab, text): """Set the title of a tab. diff --git a/qutebrowser/widgets/webview.py b/qutebrowser/widgets/webview.py index a6902a765..5d4d034a4 100644 --- a/qutebrowser/widgets/webview.py +++ b/qutebrowser/widgets/webview.py @@ -367,8 +367,6 @@ class WebView(QWebView): @pyqtSlot() def on_load_started(self): """Leave insert/hint mode and set vars when a new page is loading.""" - for mode in ('insert', 'hint'): - modeman.maybe_leave(mode, 'load started') self.progress = 0 self._has_ssl_errors = False self.load_status = LoadStatus.loading