Use list completion for bookmarks/quickmarks.

The RFC on moving from plaintext to SQL storage (#2340) showed that many would
be upset if bookmarks and quickmarks were no longer stored in plaintext.

This commit uses list-based completion for quickmarks and bookmarks. Now the
history storage can be moved from plaintext to an on-disk SQL database while
leaving bookmarks and quickmarks as-is.
This commit is contained in:
Ryan Roden-Corrent 2017-02-28 08:50:55 -05:00
parent 1d54688b0b
commit ce3c555712
2 changed files with 7 additions and 4 deletions

View File

@ -61,14 +61,14 @@ def helptopic():
def quickmark(): def quickmark():
"""A CompletionModel filled with all quickmarks.""" """A CompletionModel filled with all quickmarks."""
model = completionmodel.CompletionModel(column_widths=(30, 70, 0)) model = completionmodel.CompletionModel(column_widths=(30, 70, 0))
model.add_sqltable('Quickmarks') model.add_list('Quickmarks', objreg.get('quickmark-manager').marks.items())
return model return model
def bookmark(): def bookmark():
"""A CompletionModel filled with all bookmarks.""" """A CompletionModel filled with all bookmarks."""
model = completionmodel.CompletionModel(column_widths=(30, 70, 0)) model = completionmodel.CompletionModel(column_widths=(30, 70, 0))
model.add_sqltable('Bookmarks') model.add_list('Bookmarks', objreg.get('bookmark-manager').marks.items())
return model return model

View File

@ -66,10 +66,13 @@ def url():
columns_to_filter=[_URLCOL, _TEXTCOL], columns_to_filter=[_URLCOL, _TEXTCOL],
delete_cur_item=_delete_url) delete_cur_item=_delete_url)
quickmarks = objreg.get('quickmark-manager').marks.items()
model.add_list('Quickmarks', ((url, name) for (name, url) in quickmarks))
model.add_list('Bookmarks', objreg.get('bookmark-manager').marks.items())
timefmt = config.get('completion', 'timestamp-format') timefmt = config.get('completion', 'timestamp-format')
select_time = "strftime('{}', atime, 'unixepoch')".format(timefmt) select_time = "strftime('{}', atime, 'unixepoch')".format(timefmt)
model.add_sqltable('Quickmarks', select='url, name')
model.add_sqltable('Bookmarks')
model.add_sqltable('History', model.add_sqltable('History',
sort_order='desc', sort_by='atime', sort_order='desc', sort_by='atime',
select='url, title, {}'.format(select_time), select='url, title, {}'.format(select_time),