[Kmail] "Select All" is veeery slow
Open, Needs TriagePublic

Description

"Select All" in a large-ish folder takes forever, looks like because of QTreeView::selectAll() doing some weird and slow magic with QItemSelectionRange

#0  0x00007f05c3d35eb8 in MessageList::Core::Item::parent() const (this=this@entry=0x16f681a0)
    at /home/dvratil/devel/KDE/kde/pim/messagelib/messagelist/src/core/item.cpp:572
#1  0x00007f05c3d4a911 in MessageList::Core::Model::index(MessageList::Core::Item*, int) const (this=this@entry=0x1cf6a30, item=0x16f681a0, column=column@entry=0)
    at /home/dvratil/devel/KDE/kde/pim/messagelib/messagelist/src/core/model.cpp:573
#2  0x00007f05c3d4ae06 in MessageList::Core::Model::parent(QModelIndex const&) const (this=0x1cf6a30, modelIndex=...)
    at /home/dvratil/devel/KDE/kde/pim/messagelib/messagelist/src/core/model.cpp:637
#3  0x00007f05c53e96e6 in QModelIndex::parent() const (this=0x1b4caf10) at /home/dvratil/devel/Qt/qt5/qtbase/src/corelib/itemmodels/qabstractitemmodel.h:417
#4  0x00007f05c53e1d55 in QPersistentModelIndex::parent() const (this=0x1b4cb068)
    at /home/dvratil/devel/Qt/qt5/qtbase/src/corelib/itemmodels/qabstractitemmodel.cpp:371
#5  0x00007f05c53fdc1f in QItemSelectionRange::isValid() const (this=0x1b4cb060) at /home/dvratil/devel/Qt/qt5/qtbase/src/corelib/itemmodels/qitemselectionmodel.h:145
#6  0x00007f05c53f33e2 in QItemSelectionRange::intersects(QItemSelectionRange const&) const (this=0x1b1c59b0, other=...)
    at /home/dvratil/devel/Qt/qt5/qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp:222
#7  0x00007f05c53f439a in QItemSelection::merge(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) (this=0x7fff6fe5d560, other=..., command=...)
    at /home/dvratil/devel/Qt/qt5/qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp:520
#8  0x00007f05c53f51d6 in QItemSelectionModelPrivate::expandSelection(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) const (this=0x1cab790, selecti
on=..., command=...) at /home/dvratil/devel/Qt/qt5/qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp:673
#9  0x00007f05c53f8833 in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) (this=0x1ca7e60, selection=..., command=...)
    at /home/dvratil/devel/Qt/qt5/qtbase/src/corelib/itemmodels/qitemselectionmodel.cpp:1277
#10 0x00007f05c62c0177 in QTreeViewPrivate::select(QModelIndex const&, QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) (this=0x1cce170, topIndex=..., b
ottomIndex=..., command=...) at /home/dvratil/devel/Qt/qt5/qtbase/src/widgets/itemviews/qtreeview.cpp:3875
#11 0x00007f05c62baab3 in QTreeView::selectAll() (this=0x1ccc820) at /home/dvratil/devel/Qt/qt5/qtbase/src/widgets/itemviews/qtreeview.cpp:2675
#12 0x00007f05cb03a840 in KMMainWidget::slotSelectAllMessages() (this=0x1c37b00) at /home/dvratil/devel/KDE/kde/pim/kmail/src/kmmainwidget.cpp:2639
dvratil created this task.Feb 5 2017, 3:21 PM
dvratil renamed this task from [Kmail] to [Kmail] "Select All" is veeery slow.