diff --git a/src/libs/utils/namevaluedictionary.h b/src/libs/utils/namevaluedictionary.h index bbd80b1f99c..8023c97dfd1 100644 --- a/src/libs/utils/namevaluedictionary.h +++ b/src/libs/utils/namevaluedictionary.h @@ -36,6 +36,11 @@ class QTCREATOR_UTILS_EXPORT DictKey public: DictKey(const QString &name, Qt::CaseSensitivity cs) : name(name), caseSensitivity(cs) {} + friend bool operator==(const DictKey &k1, const DictKey &k2) + { + return k1.name.compare(k2.name, k1.caseSensitivity) == 0; + } + QString name; Qt::CaseSensitivity caseSensitivity; }; diff --git a/src/libs/utils/namevaluemodel.cpp b/src/libs/utils/namevaluemodel.cpp index 462cef4e2a7..0283bd9ba78 100644 --- a/src/libs/utils/namevaluemodel.cpp +++ b/src/libs/utils/namevaluemodel.cpp @@ -106,8 +106,8 @@ NameValueModel::~NameValueModel() = default; QString NameValueModel::indexToVariable(const QModelIndex &index) const { - return d->m_resultNameValueDictionary.key(d->m_resultNameValueDictionary.constBegin() - + index.row()); + const auto it = std::next(d->m_resultNameValueDictionary.constBegin(), index.row()); + return d->m_resultNameValueDictionary.key(it); } void NameValueModel::setBaseNameValueDictionary(const NameValueDictionary &dictionary) @@ -150,7 +150,8 @@ QVariant NameValueModel::data(const QModelIndex &index, int role) const if (!index.isValid()) return QVariant(); - const auto resultIterator = d->m_resultNameValueDictionary.constBegin() + index.row(); + const auto resultIterator = std::next(d->m_resultNameValueDictionary.constBegin(), index.row()); + switch (role) { case Qt::DisplayRole: case Qt::EditRole: diff --git a/src/plugins/coreplugin/find/highlightscrollbarcontroller.cpp b/src/plugins/coreplugin/find/highlightscrollbarcontroller.cpp index a6edc2a7814..65666b5bccb 100644 --- a/src/plugins/coreplugin/find/highlightscrollbarcontroller.cpp +++ b/src/plugins/coreplugin/find/highlightscrollbarcontroller.cpp @@ -267,7 +267,7 @@ static void insertPosition(QMap *map, int position) bool gluedWithPrev = false; if (itNext != map->begin()) { - auto itPrev = itNext - 1; + auto itPrev = std::prev(itNext); const int keyStart = itPrev.key(); const int keyEnd = itPrev.value(); if (position >= keyStart && position <= keyEnd) @@ -285,7 +285,7 @@ static void insertPosition(QMap *map, int position) itNext = map->erase(itNext); if (gluedWithPrev) { // glue with prev and next - auto itPrev = itNext - 1; + auto itPrev = std::prev(itNext); *itPrev = keyEnd; } else { // glue with next diff --git a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp index d9b593befa0..bf411463c00 100644 --- a/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp +++ b/src/plugins/diffeditor/sidebysidediffeditorwidget.cpp @@ -328,7 +328,7 @@ int SideDiffEditorWidget::blockNumberForFileIndex(int fileIndex) const if (fileIndex < 0 || fileIndex >= m_fileInfo.count()) return -1; - return (m_fileInfo.constBegin() + fileIndex).key(); + return std::next(m_fileInfo.constBegin(), fileIndex).key(); } int SideDiffEditorWidget::fileIndexForBlockNumber(int blockNumber) const diff --git a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp index c924b668eb6..adc8c108a48 100644 --- a/src/plugins/diffeditor/unifieddiffeditorwidget.cpp +++ b/src/plugins/diffeditor/unifieddiffeditorwidget.cpp @@ -587,7 +587,7 @@ int UnifiedDiffEditorWidget::blockNumberForFileIndex(int fileIndex) const if (fileIndex < 0 || fileIndex >= m_fileInfo.count()) return -1; - return (m_fileInfo.constBegin() + fileIndex).key(); + return std::next(m_fileInfo.constBegin(), fileIndex).key(); } int UnifiedDiffEditorWidget::fileIndexForBlockNumber(int blockNumber) const diff --git a/src/plugins/fakevim/fakevimplugin.cpp b/src/plugins/fakevim/fakevimplugin.cpp index 827c5083d3a..b98ba199308 100644 --- a/src/plugins/fakevim/fakevimplugin.cpp +++ b/src/plugins/fakevim/fakevimplugin.cpp @@ -697,8 +697,13 @@ void FakeVimExCommandsPage::apply() } settings->endArray(); globalCommandMapping.clear(); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + globalCommandMapping.insert(defaultMap); + globalCommandMapping.insert(newMapping); +#else globalCommandMapping.unite(defaultMap); globalCommandMapping.unite(newMapping); +#endif } } @@ -950,8 +955,13 @@ void FakeVimUserCommandsPage::apply() } settings->endArray(); userMap.clear(); +#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0) + userMap.insert(dd->m_defaultUserCommandMap); + userMap.insert(current); +#else userMap.unite(dd->m_defaultUserCommandMap); userMap.unite(current); +#endif } } diff --git a/src/plugins/texteditor/texteditoroverlay.cpp b/src/plugins/texteditor/texteditoroverlay.cpp index b923b257c3d..863db175c9a 100644 --- a/src/plugins/texteditor/texteditoroverlay.cpp +++ b/src/plugins/texteditor/texteditoroverlay.cpp @@ -486,16 +486,16 @@ void TextEditorOverlay::mapEquivalentSelections() m_equivalentSelections.clear(); m_equivalentSelections.resize(m_selections.size()); - QMap all; + QMultiMap all; for (int i = 0; i < m_selections.size(); ++i) - all.insertMulti(selectionText(i).toLower(), i); + all.insert(selectionText(i).toLower(), i); const QList &uniqueKeys = all.uniqueKeys(); foreach (const QString &key, uniqueKeys) { QList indexes; const auto cAll = all; - QMap::const_iterator lbit = cAll.lowerBound(key); - QMap::const_iterator ubit = cAll.upperBound(key); + QMultiMap::const_iterator lbit = cAll.lowerBound(key); + QMultiMap::const_iterator ubit = cAll.upperBound(key); while (lbit != ubit) { indexes.append(lbit.value()); ++lbit;