Ignore QItemSelectionModel no-op message.

This starts happening reliably with the "Using session completion" end
to end test after the previous change where I made it so we don't set
the completion widget model to none, just call `deleteLater()` on the old
one. The relevant part of the test is:

        And I run :session-save hello
        # This loads a completion model with one entry
        When I run :cmd-set-text -s :session-load
        # This one selects the entry, which clears the model because the
        # session completion only applies to the first word after the
        # command, which we've just selected.
        And I run :completion-item-focus next
        # This does nothing, since we have no completion model loaded,
        # not sure why it is in the test, presumably making sure no
        # exception is thrown.
        And I run :completion-item-focus next

The log message is reliable in the test but it's a bit flaky to
reproduce manually. I've reproduced it via `for f in 1 2;do qute-send -i
/tmp/qutebrowser-basedir-npzdpupy/runtime/ipc-8075cf54f63b8e1bc05db34f41292c38
":completion-item-focus next" ;done` if I manually go through the
scenario a few times. Possibly it would reproduce easier if I pin it to
one process using `taskset`.

I think the reason for this is that the model is marked for deletion in
the next event loop, then a signal goes out, then the selection model is
marked for deletion on the next event loop. And possibly this only
happens between the model and the selection model being deleted?
This commit is contained in:
toofar 2024-06-03 15:28:54 +12:00
parent b77cbbb2c3
commit fe81422f94
1 changed files with 4 additions and 0 deletions

View File

@ -72,6 +72,10 @@ qt_log_ignore =
^[^ ]*qtwebengine_dictionaries'$
# Qt 5 on Archlinux
^QSslSocket: cannot resolve .*
# Seems to happen after we try to complete immediately after clearing a
# model, for example, when no completion function is available for the
# current text pattern.
QItemSelectionModel: Selecting when no model has been set will result in a no-op.
xfail_strict = true
filterwarnings =
error