Missing invalidation of m_previousIndex
At work we see stuff like the BT below, I think that is due to no invalidation of m_previousIndex on model changes.
A conservative thing would be to kill that index always on any model change, better ideas?
(gdb) bt
#0 0x00007ffff5adb123 in ?? () from /usr/lib/libQt5Core.so.5
#1 0x00007ffff5adb9c6 in QSortFilterProxyModel::flags(QModelIndex const&) const () from /usr/lib/libQt5Core.so.5
#2 0x00007ffff681417b in QAbstractItemView::setCurrentIndex(QModelIndex const&) () from /usr/lib/libQt5Widgets.so.5
#3 0x00007fffe804ef19 in KateBuildView::slotBuildPreviousTarget (this=0x5555560b5400)
at /home/pister/local_ssd/devel/kde/src/kate/addons/katebuild-plugin/plugin_katebuild.cpp:857
#4 KateBuildView::slotBuildPreviousTarget (this=0x5555560b5400)
at /home/pister/local_ssd/devel/kde/src/kate/addons/katebuild-plugin/plugin_katebuild.cpp:852
#5 0x00007ffff5b33463 in ?? () from /usr/lib/libQt5Core.so.5
#6 0x00007ffff6699167 in QAbstractButton::clicked(bool) () from /usr/lib/libQt5Widgets.so.5
#7 0x00007ffff669afdc in ?? () from /usr/lib/libQt5Widgets.so.5
#8 0x00007ffff669e7ca in ?? () from /usr/lib/libQt5Widgets.so.5
#9 0x00007ffff669e998 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQt5Widgets.so.5
#10 0x00007ffff65ea3d6 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#11 0x00007ffff65b41c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#12 0x00007ffff65b8ff7 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#13 0x00007ffff5b025aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#14 0x00007ffff65b79bf in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) ()
from /usr/lib/libQt5Widgets.so.5
#15 0x00007ffff6608937 in ?? () from /usr/lib/libQt5Widgets.so.5
#16 0x00007ffff660a4ec in ?? () from /usr/lib/libQt5Widgets.so.5
#17 0x00007ffff65b41c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#18 0x00007ffff5b025aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#19 0x00007ffff5ed5230 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /usr/lib/libQt5Gui.so.5
#20 0x00007ffff5ec06e5 in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Gui.so.5
#21 0x00007ffff0d10f60 in ?? () from /usr/lib/libQt5XcbQpa.so.5
#22 0x00007ffff3de2163 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#23 0x00007ffff3e389e9 in ?? () from /usr/lib/libglib-2.0.so.0
#24 0x00007ffff3ddf6c5 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#25 0x00007ffff5b4e57a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#26 0x00007ffff5afa88b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#27 0x00007ffff5b05fd7 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#28 0x0000555555597318 in main (argc=<optimized out>, argv=<optimized out>) at /home/pister/local_ssd/devel/kde/src/kate/apps/kate/main.cpp:609