X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/7f4c3976c0626657362b6324c0dad2867cc24e9b..6e05c6365eec005caa3198a13bb071c782b8b192:/src/kitemviews/kitemlistselectionmanager.cpp diff --git a/src/kitemviews/kitemlistselectionmanager.cpp b/src/kitemviews/kitemlistselectionmanager.cpp index 46b77f7e4..f5e097c02 100644 --- a/src/kitemviews/kitemlistselectionmanager.cpp +++ b/src/kitemviews/kitemlistselectionmanager.cpp @@ -23,15 +23,13 @@ #include "kitemlistselectionmanager.h" -#include "kitemmodelbase.h" - KItemListSelectionManager::KItemListSelectionManager(QObject* parent) : QObject(parent), m_currentItem(-1), m_anchorItem(-1), m_selectedItems(), m_isAnchoredSelectionActive(false), - m_model(0) + m_model(nullptr) { } @@ -237,6 +235,9 @@ void KItemListSelectionManager::itemsInserted(const KItemRangeList& itemRanges) // Calling setCurrentItem would trigger the selectionChanged signal, but we want to // emit it only once in this function -> change the current item manually and emit currentChanged m_currentItem += inc; + if (m_currentItem >= m_model->count()) { + m_currentItem = -1; + } emit currentChanged(m_currentItem, previousCurrent); } @@ -259,7 +260,7 @@ void KItemListSelectionManager::itemsInserted(const KItemRangeList& itemRanges) const KItemSet previous = m_selectedItems; m_selectedItems.clear(); - foreach (int index, previous) { + for (int index: previous) { int inc = 0; foreach (const KItemRange& itemRange, itemRanges) { if (index < itemRange.index) { @@ -308,7 +309,7 @@ void KItemListSelectionManager::itemsRemoved(const KItemRangeList& itemRanges) const KItemSet previous = m_selectedItems; m_selectedItems.clear(); - foreach (int oldIndex, previous) { + for (int oldIndex : previous) { const int index = indexAfterRangesRemoving(oldIndex, itemRanges, DiscardRemovedIndex); if (index >= 0) { m_selectedItems.insert(index); @@ -354,7 +355,7 @@ void KItemListSelectionManager::itemsMoved(const KItemRange& itemRange, const QL const KItemSet previous = m_selectedItems; m_selectedItems.clear(); - foreach (int index, previous) { + for (int index : previous) { if (index >= itemRange.index && index < itemRange.index + itemRange.count) { m_selectedItems.insert(movedToIndexes.at(index - itemRange.index)); }