Merge branch 'master' of https://github.com/The-Compiler/qutebrowser into pintab
This commit is contained in:
commit
785c03c15c
@ -16,7 +16,7 @@ Mako==1.0.6
|
||||
parse==1.6.6
|
||||
parse-type==0.3.4
|
||||
py==1.4.31
|
||||
pytest==3.0.3
|
||||
pytest==3.0.4
|
||||
pytest-bdd==2.18.1
|
||||
pytest-catchlog==1.2.2
|
||||
pytest-cov==2.4.0
|
||||
|
@ -566,6 +566,10 @@ class HintManager(QObject):
|
||||
|
||||
def _start_cb(self, elems):
|
||||
"""Initialize the elements and labels based on the context set."""
|
||||
if elems is None:
|
||||
message.error("There was an error while getting hint elements")
|
||||
return
|
||||
|
||||
filterfunc = webelem.FILTERS.get(self._context.group, lambda e: True)
|
||||
elems = [e for e in elems if filterfunc(e)]
|
||||
if not elems:
|
||||
|
@ -112,6 +112,10 @@ def prevnext(*, browsertab, win_id, baseurl, prev=False,
|
||||
window: True to open in a new window, False for the current one.
|
||||
"""
|
||||
def _prevnext_cb(elems):
|
||||
if elems is None:
|
||||
message.error("There was an error while getting hint elements")
|
||||
return
|
||||
|
||||
elem = _find_prevnext(prev, elems)
|
||||
word = 'prev' if prev else 'forward'
|
||||
|
||||
|
@ -392,8 +392,13 @@ class WebEngineElements(browsertab.AbstractElements):
|
||||
|
||||
Args:
|
||||
callback: The callback to call with the found elements.
|
||||
Called with None if there was an error.
|
||||
js_elems: The elements serialized from javascript.
|
||||
"""
|
||||
if js_elems is None:
|
||||
callback(None)
|
||||
return
|
||||
|
||||
elems = []
|
||||
for js_elem in js_elems:
|
||||
elem = webengineelem.WebEngineElement(js_elem, tab=self._tab)
|
||||
@ -467,6 +472,7 @@ class WebEngineTab(browsertab.AbstractTab):
|
||||
# init js stuff
|
||||
self._init_js()
|
||||
self._child_event_filter = None
|
||||
self.needs_qtbug54419_workaround = False
|
||||
|
||||
def _init_js(self):
|
||||
js_code = '\n'.join([
|
||||
|
@ -67,15 +67,6 @@ class WebEngineView(QWebEngineView):
|
||||
debug_type = debug.qenum_key(QWebEnginePage, wintype)
|
||||
log.webview.debug("createWindow with type {}".format(debug_type))
|
||||
|
||||
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-54419
|
||||
vercheck = qtutils.version_check
|
||||
qtbug_54419_fixed = ((vercheck('5.6.2') and not vercheck('5.7.0')) or
|
||||
qtutils.version_check('5.7.1') or
|
||||
os.environ.get('QUTE_QTBUG54419_PATCHED', ''))
|
||||
if not qtbug_54419_fixed:
|
||||
log.webview.debug("Ignoring createWindow because of QTBUG-54419")
|
||||
return None
|
||||
|
||||
background = False
|
||||
if wintype in [QWebEnginePage.WebBrowserWindow,
|
||||
QWebEnginePage.WebDialog]:
|
||||
@ -91,8 +82,17 @@ class WebEngineView(QWebEngineView):
|
||||
|
||||
tabbed_browser = objreg.get('tabbed-browser', scope='window',
|
||||
window=self._win_id)
|
||||
# pylint: disable=protected-access
|
||||
return tabbed_browser.tabopen(background=background)._widget
|
||||
tab = tabbed_browser.tabopen(background=background)
|
||||
|
||||
# WORKAROUND for https://bugreports.qt.io/browse/QTBUG-54419
|
||||
vercheck = qtutils.version_check
|
||||
qtbug54419_fixed = ((vercheck('5.6.2') and not vercheck('5.7.0')) or
|
||||
qtutils.version_check('5.7.1') or
|
||||
os.environ.get('QUTE_QTBUG54419_PATCHED', ''))
|
||||
if not qtbug54419_fixed:
|
||||
tab.needs_qtbug54419_workaround = True
|
||||
|
||||
return tab._widget # pylint: disable=protected-access
|
||||
|
||||
|
||||
class WebEnginePage(QWebEnginePage):
|
||||
|
@ -516,9 +516,23 @@ class TabbedBrowser(tabwidget.TabWidget):
|
||||
except TabDeletedError:
|
||||
# We can get signals for tabs we already deleted...
|
||||
return
|
||||
|
||||
if not self.page_title(idx):
|
||||
self.set_page_title(idx, url.toDisplayString())
|
||||
|
||||
# If needed, re-open the tab as a workaround for QTBUG-54419.
|
||||
# See https://bugreports.qt.io/browse/QTBUG-54419
|
||||
if tab.needs_qtbug54419_workaround:
|
||||
log.misc.debug("Doing QTBUG-54419 workaround for {}, "
|
||||
"url {}".format(tab, url))
|
||||
self.setUpdatesEnabled(False)
|
||||
try:
|
||||
self.tabopen(url)
|
||||
self.close_tab(tab, add_undo=False)
|
||||
finally:
|
||||
self.setUpdatesEnabled(True)
|
||||
tab.needs_qtbug54419_workaround = False
|
||||
|
||||
@pyqtSlot(browsertab.AbstractTab, QIcon)
|
||||
def on_icon_changed(self, tab, icon):
|
||||
"""Set the icon of a tab.
|
||||
|
Loading…
Reference in New Issue
Block a user