Merge branch 'master' of github.com:qutebrowser/qutebrowser into angular-hints
This commit is contained in:
commit
8d8566a5ab
@ -110,6 +110,7 @@ Changed
|
|||||||
order, and mixed matches on URL/tite are possible.
|
order, and mixed matches on URL/tite are possible.
|
||||||
- The system's default encoding (rather than UTF-8) is now used to decode
|
- The system's default encoding (rather than UTF-8) is now used to decode
|
||||||
subprocess output.
|
subprocess output.
|
||||||
|
- qutebrowser now ensures it's focused again after an external editor is closed.
|
||||||
|
|
||||||
Fixed
|
Fixed
|
||||||
~~~~~
|
~~~~~
|
||||||
@ -134,6 +135,7 @@ Fixed
|
|||||||
- Fix crash when a subprocess outputs data which is not decodable as UTF-8.
|
- Fix crash when a subprocess outputs data which is not decodable as UTF-8.
|
||||||
- Fix crash when closing a tab immediately after hinting.
|
- Fix crash when closing a tab immediately after hinting.
|
||||||
- Worked around issues in Qt 5.10 with loading progress never being finished.
|
- Worked around issues in Qt 5.10 with loading progress never being finished.
|
||||||
|
- Fixed a crash when writing a flag before a command (e.g. `:-w open `).
|
||||||
|
|
||||||
Deprecated
|
Deprecated
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
certifi==2017.11.5
|
certifi==2017.11.5
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
codecov==2.0.10
|
codecov==2.0.13
|
||||||
coverage==4.4.2
|
coverage==4.4.2
|
||||||
idna==2.6
|
idna==2.6
|
||||||
requests==2.18.4
|
requests==2.18.4
|
||||||
|
@ -8,8 +8,8 @@ flake8-comprehensions==1.4.1
|
|||||||
flake8-copyright==0.2.0
|
flake8-copyright==0.2.0
|
||||||
flake8-debugger==3.0.0
|
flake8-debugger==3.0.0
|
||||||
flake8-deprecated==1.3
|
flake8-deprecated==1.3
|
||||||
flake8-docstrings==1.1.0
|
flake8-docstrings==1.3.0
|
||||||
flake8-future-import==0.4.3
|
flake8-future-import==0.4.4
|
||||||
flake8-mock==0.3
|
flake8-mock==0.3
|
||||||
flake8-per-file-ignores==0.4
|
flake8-per-file-ignores==0.4
|
||||||
flake8-polyfill==1.0.2
|
flake8-polyfill==1.0.2
|
||||||
@ -17,7 +17,7 @@ flake8-string-format==0.2.3
|
|||||||
flake8-tidy-imports==1.1.0
|
flake8-tidy-imports==1.1.0
|
||||||
flake8-tuple==0.2.13
|
flake8-tuple==0.2.13
|
||||||
mccabe==0.6.1
|
mccabe==0.6.1
|
||||||
pep8-naming==0.4.1
|
pep8-naming==0.5.0
|
||||||
pycodestyle==2.3.1
|
pycodestyle==2.3.1
|
||||||
pydocstyle==2.1.1
|
pydocstyle==2.1.1
|
||||||
pyflakes==1.6.0
|
pyflakes==1.6.0
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
appdirs==1.4.3
|
appdirs==1.4.3
|
||||||
packaging==16.8
|
packaging==16.8
|
||||||
pyparsing==2.2.0
|
pyparsing==2.2.0
|
||||||
setuptools==38.2.5
|
setuptools==38.4.0
|
||||||
six==1.11.0
|
six==1.11.0
|
||||||
wheel==0.30.0
|
wheel==0.30.0
|
||||||
|
@ -11,7 +11,7 @@ fields==5.0.0
|
|||||||
Flask==0.12.2
|
Flask==0.12.2
|
||||||
glob2==0.6
|
glob2==0.6
|
||||||
hunter==2.0.2
|
hunter==2.0.2
|
||||||
hypothesis==3.44.4
|
hypothesis==3.44.13
|
||||||
itsdangerous==0.24
|
itsdangerous==0.24
|
||||||
# Jinja2==2.10
|
# Jinja2==2.10
|
||||||
Mako==1.0.7
|
Mako==1.0.7
|
||||||
@ -28,7 +28,7 @@ pytest-cov==2.5.1
|
|||||||
pytest-faulthandler==1.3.1
|
pytest-faulthandler==1.3.1
|
||||||
pytest-instafail==0.3.0
|
pytest-instafail==0.3.0
|
||||||
pytest-mock==1.6.3
|
pytest-mock==1.6.3
|
||||||
pytest-qt==2.3.0
|
pytest-qt==2.3.1
|
||||||
pytest-repeat==0.4.1
|
pytest-repeat==0.4.1
|
||||||
pytest-rerunfailures==4.0
|
pytest-rerunfailures==4.0
|
||||||
pytest-travis-fold==1.3.0
|
pytest-travis-fold==1.3.0
|
||||||
|
@ -1644,6 +1644,8 @@ class CommandDispatcher:
|
|||||||
except webelem.Error as e:
|
except webelem.Error as e:
|
||||||
raise cmdexc.CommandError(str(e))
|
raise cmdexc.CommandError(str(e))
|
||||||
|
|
||||||
|
mainwindow.raise_window(objreg.last_focused_window(), alert=False)
|
||||||
|
|
||||||
@cmdutils.register(instance='command-dispatcher', maxsplit=0,
|
@cmdutils.register(instance='command-dispatcher', maxsplit=0,
|
||||||
scope='window')
|
scope='window')
|
||||||
def insert_text(self, text):
|
def insert_text(self, text):
|
||||||
|
@ -32,7 +32,7 @@ from qutebrowser.misc import objects, sql
|
|||||||
|
|
||||||
|
|
||||||
# increment to indicate that HistoryCompletion must be regenerated
|
# increment to indicate that HistoryCompletion must be regenerated
|
||||||
_USER_VERSION = 1
|
_USER_VERSION = 2
|
||||||
|
|
||||||
|
|
||||||
class CompletionHistory(sql.SqlTable):
|
class CompletionHistory(sql.SqlTable):
|
||||||
@ -102,7 +102,8 @@ class WebHistory(sql.SqlTable):
|
|||||||
data = {'url': [], 'title': [], 'last_atime': []}
|
data = {'url': [], 'title': [], 'last_atime': []}
|
||||||
# select the latest entry for each url
|
# select the latest entry for each url
|
||||||
q = sql.Query('SELECT url, title, max(atime) AS atime FROM History '
|
q = sql.Query('SELECT url, title, max(atime) AS atime FROM History '
|
||||||
'WHERE NOT redirect GROUP BY url ORDER BY atime asc')
|
'WHERE NOT redirect and url NOT LIKE "qute://back%" '
|
||||||
|
'GROUP BY url ORDER BY atime asc')
|
||||||
for entry in q.run():
|
for entry in q.run():
|
||||||
data['url'].append(self._format_completion_url(QUrl(entry.url)))
|
data['url'].append(self._format_completion_url(QUrl(entry.url)))
|
||||||
data['title'].append(entry.title)
|
data['title'].append(entry.title)
|
||||||
@ -171,7 +172,9 @@ class WebHistory(sql.SqlTable):
|
|||||||
@pyqtSlot(QUrl, QUrl, str)
|
@pyqtSlot(QUrl, QUrl, str)
|
||||||
def add_from_tab(self, url, requested_url, title):
|
def add_from_tab(self, url, requested_url, title):
|
||||||
"""Add a new history entry as slot, called from a BrowserTab."""
|
"""Add a new history entry as slot, called from a BrowserTab."""
|
||||||
if url.scheme() == 'data' or requested_url.scheme() == 'data':
|
if any(url.scheme() == 'data' or
|
||||||
|
(url.scheme(), url.host()) == ('qute', 'back')
|
||||||
|
for url in (url, requested_url)):
|
||||||
return
|
return
|
||||||
if url.isEmpty():
|
if url.isEmpty():
|
||||||
# things set via setHtml
|
# things set via setHtml
|
||||||
|
@ -87,8 +87,6 @@ class Completer(QObject):
|
|||||||
# cursor on a flag or after an explicit split (--)
|
# cursor on a flag or after an explicit split (--)
|
||||||
return None
|
return None
|
||||||
log.completion.debug("Before removing flags: {}".format(before_cursor))
|
log.completion.debug("Before removing flags: {}".format(before_cursor))
|
||||||
before_cursor = [x for x in before_cursor if not x.startswith('-')]
|
|
||||||
log.completion.debug("After removing flags: {}".format(before_cursor))
|
|
||||||
if not before_cursor:
|
if not before_cursor:
|
||||||
# '|' or 'set|'
|
# '|' or 'set|'
|
||||||
log.completion.debug('Starting command completion')
|
log.completion.debug('Starting command completion')
|
||||||
@ -99,6 +97,9 @@ class Completer(QObject):
|
|||||||
log.completion.debug("No completion for unknown command: {}"
|
log.completion.debug("No completion for unknown command: {}"
|
||||||
.format(before_cursor[0]))
|
.format(before_cursor[0]))
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
before_cursor = [x for x in before_cursor if not x.startswith('-')]
|
||||||
|
log.completion.debug("After removing flags: {}".format(before_cursor))
|
||||||
argpos = len(before_cursor) - 1
|
argpos = len(before_cursor) - 1
|
||||||
try:
|
try:
|
||||||
func = cmd.get_pos_arg_info(argpos).completion
|
func = cmd.get_pos_arg_info(argpos).completion
|
||||||
|
@ -94,13 +94,15 @@ def get_window(via_ipc, force_window=False, force_tab=False,
|
|||||||
return window.win_id
|
return window.win_id
|
||||||
|
|
||||||
|
|
||||||
def raise_window(window):
|
def raise_window(window, alert=True):
|
||||||
"""Raise the given MainWindow object."""
|
"""Raise the given MainWindow object."""
|
||||||
window.setWindowState(window.windowState() & ~Qt.WindowMinimized)
|
window.setWindowState(window.windowState() & ~Qt.WindowMinimized)
|
||||||
window.setWindowState(window.windowState() | Qt.WindowActive)
|
window.setWindowState(window.windowState() | Qt.WindowActive)
|
||||||
window.raise_()
|
window.raise_()
|
||||||
window.activateWindow()
|
window.activateWindow()
|
||||||
QApplication.instance().alert(window)
|
|
||||||
|
if alert:
|
||||||
|
QApplication.instance().alert(window)
|
||||||
|
|
||||||
|
|
||||||
# WORKAROUND for https://github.com/PyCQA/pylint/issues/1770
|
# WORKAROUND for https://github.com/PyCQA/pylint/issues/1770
|
||||||
|
@ -190,6 +190,7 @@ def _set_cmd_prompt(cmd, txt):
|
|||||||
(':gibberish nonesense |', None, '', []),
|
(':gibberish nonesense |', None, '', []),
|
||||||
('/:help|', None, '', []),
|
('/:help|', None, '', []),
|
||||||
('::bind|', 'command', ':bind', []),
|
('::bind|', 'command', ':bind', []),
|
||||||
|
(':-w open |', None, '', []),
|
||||||
])
|
])
|
||||||
def test_update_completion(txt, kind, pattern, pos_args, status_command_stub,
|
def test_update_completion(txt, kind, pattern, pos_args, status_command_stub,
|
||||||
completer_obj, completion_widget_stub, config_stub,
|
completer_obj, completion_widget_stub, config_stub,
|
||||||
|
Loading…
Reference in New Issue
Block a user