┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistselectionmanager.cpp
diff options
context:
space:
mode:
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);