}
namespace {
- enum ModelChangeType {
+ enum ChangeType {
NoChange,
InsertItems,
- RemoveItems
+ RemoveItems,
+ EndAnchoredSelection,
+ ToggleSelected
};
}
Q_DECLARE_METATYPE(QSet<int>);
-Q_DECLARE_METATYPE(ModelChangeType);
+Q_DECLARE_METATYPE(ChangeType);
Q_DECLARE_METATYPE(KItemRangeList);
void KItemListSelectionManagerTest::testChangeSelection_data()
QTest::addColumn<int>("anchor");
QTest::addColumn<int>("current");
QTest::addColumn<QSet<int> >("expectedSelection");
- QTest::addColumn<ModelChangeType>("changeType");
+ QTest::addColumn<ChangeType>("changeType");
QTest::addColumn<KItemRangeList>("changedItems");
QTest::addColumn<QSet<int> >("finalSelection");
<< (QSet<int>() << 2 << 3 << 5 << 6)
<< RemoveItems << (KItemRangeList() << KItemRange(1, 1) << KItemRange(3, 1) << KItemRange(10, 5))
<< (QSet<int>() << 1 << 2 << 3 << 4);
+
+ QTest::newRow("Empty Anchored Selection")
+ << QSet<int>()
+ << 2 << 2
+ << QSet<int>()
+ << EndAnchoredSelection << KItemRangeList()
+ << QSet<int>();
+
+ QTest::newRow("Toggle selection")
+ << (QSet<int>() << 1 << 3 << 4)
+ << 6 << 8
+ << (QSet<int>() << 1 << 3 << 4 << 6 << 7 << 8)
+ << ToggleSelected << (KItemRangeList() << KItemRange(0, 10))
+ << (QSet<int>() << 0 << 2 << 5 << 9);
}
void KItemListSelectionManagerTest::testChangeSelection()
QFETCH(int, anchor);
QFETCH(int, current);
QFETCH(QSet<int> , expectedSelection);
- QFETCH(ModelChangeType, changeType);
+ QFETCH(ChangeType, changeType);
QFETCH(KItemRangeList, changedItems);
QFETCH(QSet<int> , finalSelection);
case RemoveItems:
m_selectionManager->itemsRemoved(changedItems);
break;
+ case EndAnchoredSelection:
+ m_selectionManager->endAnchoredSelection();
+ QVERIFY(!m_selectionManager->isAnchoredSelectionActive());
+ break;
+ case ToggleSelected:
+ foreach(const KItemRange& range, changedItems) {
+ m_selectionManager->setSelected(range.index, range.count, KItemListSelectionManager::Toggle);
+ }
+ break;
case NoChange:
break;
}