From 1ea28890b506a07c94e226f63a05fd3a17bde3d5 Mon Sep 17 00:00:00 2001 From: Ryan Roden-Corrent Date: Sun, 3 Jul 2016 17:35:17 -0400 Subject: [PATCH] Move completion_item_del to completion widget. It was implemented as a member of the Completer object, but registered to the CompletionWidget. This led to the weird scenario where self was actually a CompletionWidget, even though it was declared in Completer. --- qutebrowser/completion/completer.py | 15 +-------------- qutebrowser/completion/completionwidget.py | 14 +++++++++++++- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/qutebrowser/completion/completer.py b/qutebrowser/completion/completer.py index 12f607b51..ebdb1d10b 100644 --- a/qutebrowser/completion/completer.py +++ b/qutebrowser/completion/completer.py @@ -22,7 +22,7 @@ from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QTimer from qutebrowser.config import config -from qutebrowser.commands import cmdexc, cmdutils, runners +from qutebrowser.commands import cmdutils, runners from qutebrowser.utils import usertypes, log, objreg, utils from qutebrowser.completion.models import instances, sortfilter @@ -485,16 +485,3 @@ class Completer(QObject): """Select the next completion item.""" self._open_completion_if_needed() self.next_prev_item.emit(False) - - @cmdutils.register(instance='completion', hide=True, - modes=[usertypes.KeyMode.command], scope='window') - def completion_item_del(self): - """Delete the current completion item.""" - completion = objreg.get('completion', scope='window', - window=self._win_id) - if not completion.currentIndex().isValid(): - raise cmdexc.CommandError("No item selected!") - try: - self.model().srcmodel.delete_cur_item(completion) - except NotImplementedError: - raise cmdexc.CommandError("Cannot delete this item.") diff --git a/qutebrowser/completion/completionwidget.py b/qutebrowser/completion/completionwidget.py index 8c2b8c1fd..80e87dbe4 100644 --- a/qutebrowser/completion/completionwidget.py +++ b/qutebrowser/completion/completionwidget.py @@ -29,7 +29,8 @@ from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QItemSelectionModel from qutebrowser.config import config, style from qutebrowser.completion import completiondelegate, completer from qutebrowser.completion.models import base -from qutebrowser.utils import qtutils, objreg, utils +from qutebrowser.utils import qtutils, objreg, utils, usertypes +from qutebrowser.commands import cmdexc, cmdutils class CompletionView(QTreeView): @@ -277,3 +278,14 @@ class CompletionView(QTreeView): if scrollbar is not None: scrollbar.setValue(scrollbar.minimum()) super().showEvent(e) + + @cmdutils.register(instance='completion', hide=True, + modes=[usertypes.KeyMode.command], scope='window') + def completion_item_del(self): + """Delete the current completion item.""" + if not self.currentIndex().isValid(): + raise cmdexc.CommandError("No item selected!") + try: + self.model().srcmodel.delete_cur_item(self) + except NotImplementedError: + raise cmdexc.CommandError("Cannot delete this item.")