is that when you select by dragging with a rect a set of items, say (1, 2, 3) and you Ctrl+drag another set (5,6) the (1,2,3) selection is lost. If you do the same, that
is: select (1, 2, 3), now Ctrl+click on (4), it is not lost. Now, ctrl+drag another set (5, 6), the selection lost is (4). So we can say that the selection lost is the
last one done.
This is only a workaround and should be removed when fixed on Qt (I am going to debug it on Qt, to see where the fail is).
This workaround does not only fix KCategorizedView, but QListView also.
CCMAIL: peter.penz@gmx.at
svn path=/trunk/KDE/kdebase/apps/; revision=748545
// Qt 4.4, so that this workaround can be skipped.
#define DOLPHIN_DRAGANDDROP
+// By defining KDE_WORKAROUND_FOR_QT_VIEW_BUG we save the selection being held
+// before mousePressEvent happens. On Qt there is something clearing the last
+// selection made, what make it impossible to save our very last selection.
+#define KDE_WORKAROUND_FOR_QT_VIEW_BUG
+
KCategorizedView::Private::Private(KCategorizedView *listView)
: listView(listView)
, categoryDrawer(0)
horizontalOffset());
}
+#ifdef KDE_WORKAROUND_FOR_QT_VIEW_BUG
+ QItemSelection prevSelection = selectionModel()->selection();
+#endif
QListView::mousePressEvent(event);
+#ifdef KDE_WORKAROUND_FOR_QT_VIEW_BUG
+ selectionModel()->select(prevSelection, QItemSelectionModel::Select);
+#endif
viewport()->update(d->categoryVisualRect(d->hoveredCategory));
}