parent
068e1c14b6
commit
37ab5296a7
@ -43,9 +43,19 @@ class QuickmarkManager(QObject):
|
|||||||
marks: An OrderedDict of all quickmarks.
|
marks: An OrderedDict of all quickmarks.
|
||||||
_lineparser: The LineParser used for the quickmarks, or None
|
_lineparser: The LineParser used for the quickmarks, or None
|
||||||
(when qutebrowser is started with -c '').
|
(when qutebrowser is started with -c '').
|
||||||
|
|
||||||
|
Signals:
|
||||||
|
changed: Emitted when anything changed.
|
||||||
|
added: Emitted when a new quickmark was added.
|
||||||
|
arg 0: The name of the quickmark.
|
||||||
|
arg 1: The URL of the quickmark, as string.
|
||||||
|
removed: Emitted when an existing quickmark was removed.
|
||||||
|
arg 0: The name of the quickmark.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
changed = pyqtSignal()
|
changed = pyqtSignal()
|
||||||
|
added = pyqtSignal(str, str)
|
||||||
|
removed = pyqtSignal(str)
|
||||||
|
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
"""Initialize and read quickmarks."""
|
"""Initialize and read quickmarks."""
|
||||||
@ -117,6 +127,7 @@ class QuickmarkManager(QObject):
|
|||||||
"""Really set the quickmark."""
|
"""Really set the quickmark."""
|
||||||
self.marks[name] = url
|
self.marks[name] = url
|
||||||
self.changed.emit()
|
self.changed.emit()
|
||||||
|
self.added.emit(name, url)
|
||||||
|
|
||||||
if name in self.marks:
|
if name in self.marks:
|
||||||
message.confirm_async(
|
message.confirm_async(
|
||||||
@ -138,6 +149,7 @@ class QuickmarkManager(QObject):
|
|||||||
raise cmdexc.CommandError("Quickmark '{}' not found!".format(name))
|
raise cmdexc.CommandError("Quickmark '{}' not found!".format(name))
|
||||||
else:
|
else:
|
||||||
self.changed.emit()
|
self.changed.emit()
|
||||||
|
self.removed.emit(name)
|
||||||
|
|
||||||
def get(self, name):
|
def get(self, name):
|
||||||
"""Get the URL of the quickmark named name as a QUrl."""
|
"""Get the URL of the quickmark named name as a QUrl."""
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSlot
|
from PyQt5.QtCore import pyqtSlot, Qt
|
||||||
|
|
||||||
from qutebrowser.utils import objreg, utils
|
from qutebrowser.utils import objreg, utils
|
||||||
from qutebrowser.completion.models import base
|
from qutebrowser.completion.models import base
|
||||||
@ -42,20 +42,21 @@ class UrlCompletionModel(base.BaseCompletionModel):
|
|||||||
self._quickmark_cat = self.new_category("Quickmarks")
|
self._quickmark_cat = self.new_category("Quickmarks")
|
||||||
self._history_cat = self.new_category("History")
|
self._history_cat = self.new_category("History")
|
||||||
|
|
||||||
quickmarks = objreg.get('quickmark-manager').marks.items()
|
quickmark_manager = objreg.get('quickmark-manager')
|
||||||
self._history = objreg.get('web-history')
|
quickmarks = quickmark_manager.marks.items()
|
||||||
|
|
||||||
for qm_name, qm_url in quickmarks:
|
for qm_name, qm_url in quickmarks:
|
||||||
self.new_item(self._quickmark_cat, qm_url, qm_name)
|
self._add_quickmark_entry(qm_name, qm_url)
|
||||||
|
quickmark_manager.added.connect(self.on_quickmark_added)
|
||||||
|
quickmark_manager.removed.connect(self.on_quickmark_removed)
|
||||||
|
|
||||||
|
self._history = objreg.get('web-history')
|
||||||
max_history = config.get('completion', 'web-history-max-items')
|
max_history = config.get('completion', 'web-history-max-items')
|
||||||
history = utils.newest_slice(self._history, max_history)
|
history = utils.newest_slice(self._history, max_history)
|
||||||
|
|
||||||
for entry in history:
|
for entry in history:
|
||||||
self._add_history_entry(entry)
|
self._add_history_entry(entry)
|
||||||
|
|
||||||
self._history.item_about_to_be_added.connect(
|
self._history.item_about_to_be_added.connect(
|
||||||
self.on_history_item_added)
|
self.on_history_item_added)
|
||||||
|
|
||||||
objreg.get('config').changed.connect(self.reformat_timestamps)
|
objreg.get('config').changed.connect(self.reformat_timestamps)
|
||||||
|
|
||||||
def _fmt_atime(self, atime):
|
def _fmt_atime(self, atime):
|
||||||
@ -71,6 +72,15 @@ class UrlCompletionModel(base.BaseCompletionModel):
|
|||||||
self._fmt_atime(entry.atime), sort=int(entry.atime),
|
self._fmt_atime(entry.atime), sort=int(entry.atime),
|
||||||
userdata=entry.url)
|
userdata=entry.url)
|
||||||
|
|
||||||
|
def _add_quickmark_entry(self, name, url):
|
||||||
|
"""Add a new quickmark entry to the completion.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
name: The name of the new quickmark.
|
||||||
|
url: The URL of the new quickmark.
|
||||||
|
"""
|
||||||
|
self.new_item(self._quickmark_cat, url, name)
|
||||||
|
|
||||||
@config.change_filter('completion', 'timestamp-format')
|
@config.change_filter('completion', 'timestamp-format')
|
||||||
def reformat_timestamps(self):
|
def reformat_timestamps(self):
|
||||||
"""Reformat the timestamps if the config option was changed."""
|
"""Reformat the timestamps if the config option was changed."""
|
||||||
@ -93,3 +103,26 @@ class UrlCompletionModel(base.BaseCompletionModel):
|
|||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
self._add_history_entry(entry)
|
self._add_history_entry(entry)
|
||||||
|
|
||||||
|
@pyqtSlot(str, str)
|
||||||
|
def on_quickmark_added(self, name, url):
|
||||||
|
"""Called when a quickmark has been added by the user.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
name: The name of the new quickmark.
|
||||||
|
url: The url of the new quickmark, as string.
|
||||||
|
"""
|
||||||
|
self._add_quickmark_entry(name, url)
|
||||||
|
|
||||||
|
@pyqtSlot(str)
|
||||||
|
def on_quickmark_removed(self, name):
|
||||||
|
"""Called when a quickmark has been removed by the user.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
name: The name of the quickmark which has been removed.
|
||||||
|
"""
|
||||||
|
for i in range(self._quickmark_cat.rowCount()):
|
||||||
|
name_item = self._quickmark_cat.child(i, 1)
|
||||||
|
if name_item.data(Qt.DisplayRole) == name:
|
||||||
|
self._quickmark_cat.removeRow(i)
|
||||||
|
break
|
||||||
|
Loading…
Reference in New Issue
Block a user