From 3a028d9db0ee4cdd9103d9ab375f95d985539fd2 Mon Sep 17 00:00:00 2001 From: Fabian Kosmale <0inkane@gmail.com> Date: Fri, 6 Apr 2018 17:57:38 +0200 Subject: [PATCH] use the same bound check as setCurrentItem when setting m_currentItem manually MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Summary: This patch basically adds the check that would normally be done to the itemInserted method, which seems to be good idea in general. However, the fact that this is needed there might be an indicator of a logic bug in the function – though, as I'm not familiar with the code base I cannot judge this. Test Plan: Without this patch, dolphin when started from a terminal prints the following warning (number can be different): qt.accessibility.core: Cannot create accessible child interface for object: PlacesView(0x563e863e35c0) index: 10 After applying the patch, the warning doesn't appear anymore. Dolphin still works still as it did before. Reviewers: elvisangelaccio, #dolphin Reviewed By: elvisangelaccio Subscribers: #dolphin Differential Revision: https://phabricator.kde.org/D11990 --- src/kitemviews/kitemlistselectionmanager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/kitemviews/kitemlistselectionmanager.cpp b/src/kitemviews/kitemlistselectionmanager.cpp index efc256e1e6..f5e097c025 100644 --- a/src/kitemviews/kitemlistselectionmanager.cpp +++ b/src/kitemviews/kitemlistselectionmanager.cpp @@ -235,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); }