From d266665955e9dcb643ce116aded3ac223ccdb2a9 Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Sun, 15 Mar 2015 21:16:45 +0100 Subject: [PATCH] Fix adding of URLs to history completion. Before, the item_added signal was emitted *after* an item was added, which means the on_history_item_added slot always assumed the item already is in the history. --- qutebrowser/browser/history.py | 8 ++++++++ qutebrowser/completion/models/urlmodel.py | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/qutebrowser/browser/history.py b/qutebrowser/browser/history.py index b07343ba5..ea7bb3bb9 100644 --- a/qutebrowser/browser/history.py +++ b/qutebrowser/browser/history.py @@ -65,8 +65,15 @@ class WebHistory(QWebHistoryInterface): _history_dict: An OrderedDict of URLs read from the on-disk history. _new_history: A list of HistoryEntry items of the current session. _saved_count: How many HistoryEntries have been written to disk. + + Signals: + item_about_to_be_added: Emitted before a new HistoryEntry is added. + arg: The new HistoryEntry. + item_added: Emitted after a new HistoryEntry is added. + arg: The new HistoryEntry. """ + item_about_to_be_added = pyqtSignal(HistoryEntry) item_added = pyqtSignal(HistoryEntry) def __init__(self, parent=None): @@ -120,6 +127,7 @@ class WebHistory(QWebHistoryInterface): """ if not config.get('general', 'private-browsing'): entry = HistoryEntry(time.time(), url_string) + self.item_about_to_be_added.emit(entry) self._new_history.append(entry) self._history_dict[url_string] = entry self._history_dict.move_to_end(url_string) diff --git a/qutebrowser/completion/models/urlmodel.py b/qutebrowser/completion/models/urlmodel.py index 0436669ae..4ca007be4 100644 --- a/qutebrowser/completion/models/urlmodel.py +++ b/qutebrowser/completion/models/urlmodel.py @@ -55,7 +55,8 @@ class UrlCompletionModel(base.BaseCompletionModel): self.new_item(self._history_cat, entry.url, "", self._fmt_atime(entry.atime), sort=int(entry.atime)) - self._history.item_added.connect(self.on_history_item_added) + self._history.item_about_to_be_added.connect( + self.on_history_item_added) objreg.get('config').changed.connect(self.reformat_timestamps) def _fmt_atime(self, atime):