┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistselectionmanager.cpp
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2011-10-03 16:42:02 +0200
committerFrank Reininghaus <[email protected]>2011-10-03 16:42:02 +0200
commitaeb16937ced1bf426c2ca21dcc270f9e4a96645c (patch)
treeb3f4072528ced2bdfbc0b1ee38ab2518dbdd6fdc /src/kitemviews/kitemlistselectionmanager.cpp
parent96d39ad6a9796e9058b993e37af39f0d26ce5caf (diff)
Add function KItemListSelectionManager::isSelected(int index)
This function is used in KItemListView::updateWidgetProperties() to find out if an item is selected in a more efficient way. The new function is tested in KItemListSelectionManagerTest. I've factored out some code from KItemListSelectionManagerTest::testChangeSelection() to a new member to simplify the test.
Diffstat (limited to 'src/kitemviews/kitemlistselectionmanager.cpp')
-rw-r--r--src/kitemviews/kitemlistselectionmanager.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/kitemviews/kitemlistselectionmanager.cpp b/src/kitemviews/kitemlistselectionmanager.cpp
index 131ee46e6..fb279796f 100644
--- a/src/kitemviews/kitemlistselectionmanager.cpp
+++ b/src/kitemviews/kitemlistselectionmanager.cpp
@@ -95,6 +95,26 @@ QSet<int> KItemListSelectionManager::selectedItems() const
return selectedItems;
}
+bool KItemListSelectionManager::isSelected(int index) const
+{
+ if (m_selectedItems.contains(index)) {
+ return true;
+ }
+
+ if (m_isAnchoredSelectionActive && m_anchorItem != m_currentItem) {
+ Q_ASSERT(m_anchorItem >= 0);
+ Q_ASSERT(m_currentItem >= 0);
+ const int from = qMin(m_anchorItem, m_currentItem);
+ const int to = qMax(m_anchorItem, m_currentItem);
+
+ if (from <= index && index <= to) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
bool KItemListSelectionManager::hasSelection() const
{
return !m_selectedItems.isEmpty() || (m_isAnchoredSelectionActive && m_anchorItem != m_currentItem);