summaryrefslogtreecommitdiff
path: root/qutebrowser/browser/history.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/browser/history.py')
-rw-r--r--qutebrowser/browser/history.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/qutebrowser/browser/history.py b/qutebrowser/browser/history.py
index 8ce319cba..ef4650a35 100644
--- a/qutebrowser/browser/history.py
+++ b/qutebrowser/browser/history.py
@@ -88,6 +88,7 @@ class CompletionMetaInfo(sql.SqlTable):
KEYS = {
'excluded_patterns': '',
+ 'force_rebuild': False,
}
def __init__(self, parent=None):
@@ -95,8 +96,6 @@ class CompletionMetaInfo(sql.SqlTable):
constraints={'key': 'PRIMARY KEY'})
if sql.user_version_changed():
self._init_default_values()
- # force_rebuild is not in use anymore
- self.delete('key', 'force_rebuild', optional=True)
def _check_key(self, key):
if key not in self.KEYS:
@@ -165,7 +164,7 @@ class WebHistory(sql.SqlTable):
self.completion = CompletionHistory(parent=self)
self.metainfo = CompletionMetaInfo(parent=self)
- rebuild_completion = False
+ rebuild_completion = self.metainfo['force_rebuild']
if sql.user_version_changed():
# If the DB user version changed, run a full cleanup and rebuild the
@@ -186,8 +185,8 @@ class WebHistory(sql.SqlTable):
self.metainfo['excluded_patterns'] = patterns
rebuild_completion = True
- if rebuild_completion and self.completion:
- # If no completion history exists, we don't need to spawn a dialog for
+ if rebuild_completion and self:
+ # If no history exists, we don't need to spawn a dialog for
# cleaning it up.
self._rebuild_completion()
@@ -259,6 +258,10 @@ class WebHistory(sql.SqlTable):
log.sql.debug(f"Cleanup removed {entries.rows_affected()} items")
def _rebuild_completion(self):
+ # If this process was interrupted, make sure we trigger a rebuild again
+ # at the next start.
+ self.metainfo['force_rebuild'] = True
+
data: Mapping[str, MutableSequence[str]] = {
'url': [],
'title': [],
@@ -305,6 +308,7 @@ class WebHistory(sql.SqlTable):
QApplication.processEvents()
self._progress.finish()
+ self.metainfo['force_rebuild'] = False
def get_recent(self):
"""Get the most recent history entries."""