diff options
Diffstat (limited to 'src/plugins/help/docsettingspage.cpp')
-rw-r--r-- | src/plugins/help/docsettingspage.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/help/docsettingspage.cpp b/src/plugins/help/docsettingspage.cpp index fcfe96ac4b..cedf36ac1b 100644 --- a/src/plugins/help/docsettingspage.cpp +++ b/src/plugins/help/docsettingspage.cpp @@ -27,6 +27,7 @@ #include "helpconstants.h" #include <coreplugin/helpmanager.h> +#include <utils/algorithm.h> #include <QFileDialog> #include <QKeyEvent> @@ -287,8 +288,12 @@ void DocSettingsPage::removeDocumentation(const QList<QModelIndex> &items) if (items.isEmpty()) return; - for (int i = items.size() - 1; i >= 0; --i) { - const int row = items.at(i).row(); + QList<QModelIndex> itemsByDecreasingRow = items; + Utils::sort(itemsByDecreasingRow, [](const QModelIndex &i1, const QModelIndex &i2) { + return i1.row() > i2.row(); + }); + foreach (const QModelIndex &item, itemsByDecreasingRow) { + const int row = item.row(); const QString nameSpace = m_model->entryAt(row).nameSpace; m_filesToRegister.remove(nameSpace); @@ -298,7 +303,7 @@ void DocSettingsPage::removeDocumentation(const QList<QModelIndex> &items) m_model->removeAt(row); } - const int newlySelectedRow = qMax(items.first().row() - 1, 0); + const int newlySelectedRow = qMax(itemsByDecreasingRow.last().row() - 1, 0); const QModelIndex index = m_proxyModel->mapFromSource(m_model->index(newlySelectedRow)); m_ui.docsListView->selectionModel()->select(index, QItemSelectionModel::ClearAndSelect); } |