Merge pull request #8200 from qutebrowser/feat/7901_handle_no_selectionmodel_on_clear_selection
Handle no selectionmodel on clear selection
This commit is contained in:
commit
c0d883849d
|
|
@ -53,6 +53,8 @@ Fixed
|
|||
Python upgrade) should now not crash anymore.
|
||||
- When the QtWebEngine resources dir couldn't be found, qutebrowser now doesn't
|
||||
crash anymore (but QtWebEngine still might).
|
||||
- Fixed a rare crash in the completion widget when there was no selection model
|
||||
when we went to clear that, probably when leaving a mode. (#7901)
|
||||
|
||||
[[v3.1.1]]
|
||||
v3.1.1 (unreleased)
|
||||
|
|
|
|||
|
|
@ -414,7 +414,7 @@ class CompletionView(QTreeView):
|
|||
def on_clear_completion_selection(self):
|
||||
"""Clear the selection model when an item is activated."""
|
||||
self.hide()
|
||||
selmod = self._selection_model()
|
||||
selmod = self.selectionModel()
|
||||
if selmod is not None:
|
||||
selmod.clearSelection()
|
||||
selmod.clearCurrentIndex()
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
from unittest import mock
|
||||
|
||||
import pytest
|
||||
from qutebrowser.qt.core import QRect
|
||||
from qutebrowser.qt.core import QRect, QItemSelectionModel
|
||||
|
||||
from qutebrowser.completion import completionwidget
|
||||
from qutebrowser.completion.models import completionmodel, listcategory
|
||||
|
|
@ -285,6 +285,23 @@ def test_completion_show(show, rows, quick_complete, completionview, model,
|
|||
assert not completionview.isVisible()
|
||||
|
||||
|
||||
def test_completion_selection_clear_no_model(completionview):
|
||||
completionview.show()
|
||||
completionview.on_clear_completion_selection()
|
||||
assert completionview.isVisible() is False
|
||||
|
||||
|
||||
def test_completion_selection_clear_with_model(completionview, mocker):
|
||||
selmod = mock.Mock(spec=QItemSelectionModel)
|
||||
mocker.patch.object(completionview, "selectionModel", return_value=selmod)
|
||||
completionview.show()
|
||||
completionview.on_clear_completion_selection()
|
||||
|
||||
assert completionview.isVisible() is False
|
||||
selmod.clearSelection.assert_called_once()
|
||||
selmod.clearCurrentIndex.assert_called_once()
|
||||
|
||||
|
||||
def test_completion_item_del(completionview, model):
|
||||
"""Test that completion_item_del invokes delete_cur_item in the model."""
|
||||
func = mock.Mock(spec=[])
|
||||
|
|
|
|||
Loading…
Reference in New Issue