diff options
author | Nikita Baryshnikov <nib952051@gmail.com> | 2014-06-16 18:25:52 +0400 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2014-06-19 14:00:32 +0200 |
commit | 12103e0f676f762658310b885f8d427cdd755a18 (patch) | |
tree | 1f6ea995e86e0895fee3776e84fe75ffd717c881 | |
parent | eefd0f43320bccfeecf162bf398b50ccad7e90dc (diff) |
Reinvent deprecated qSort as Utils::sort
Change-Id: I4f6011cc2b6127037249aabc2426a88ad7108ebf
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
75 files changed, 273 insertions, 305 deletions
diff --git a/src/libs/utils/algorithm.h b/src/libs/utils/algorithm.h index f75dae1f44..c1cb7ea894 100644 --- a/src/libs/utils/algorithm.h +++ b/src/libs/utils/algorithm.h @@ -113,6 +113,18 @@ auto transform(const QList<T> &container, F function) -> QList<decltype(function return result; } +template <typename Container> +inline void sort(Container &c) +{ + std::sort(c.begin(), c.end()); +} + +template <typename Container, typename Predicate> +inline void sort(Container &c, Predicate p) +{ + std::sort(c.begin(), c.end(), p); +} + } #endif // ALGORITHM_H diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 5268fe6694..a08de8503e 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -50,6 +50,7 @@ #include <qtsupport/baseqtversion.h> #include <qtsupport/qtkitinformation.h> #include <qtsupport/qtversionmanager.h> +#include <utils/algorithm.h> #include <utils/environment.h> #include <utils/sleep.h> @@ -248,7 +249,7 @@ void AndroidConfig::updateNdkInformation() const const QString &fileName = it.next(); m_availableNdkPlatforms.push_back(fileName.mid(fileName.lastIndexOf(QLatin1Char('-')) + 1).toInt()); } - qSort(m_availableNdkPlatforms.begin(), m_availableNdkPlatforms.end(), qGreater<int>()); + Utils::sort(m_availableNdkPlatforms, std::greater<int>()); // detect toolchain host QStringList hostPatterns; @@ -494,7 +495,7 @@ QVector<AndroidDeviceInfo> AndroidConfig::connectedDevices(QString *error) const devices.push_back(dev); } - qSort(devices.begin(), devices.end(), androidDevicesLessThan); + Utils::sort(devices, androidDevicesLessThan); if (devices.isEmpty() && error) *error = QApplication::translate("AndroidConfiguration", "No devices found in output of: %1") @@ -631,7 +632,7 @@ QVector<AndroidDeviceInfo> AndroidConfig::androidVirtualDevices() const dev.type = AndroidDeviceInfo::Emulator; devices.push_back(dev); } - qSort(devices.begin(), devices.end(), androidDevicesLessThan); + Utils::sort(devices, androidDevicesLessThan); return devices; } diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index bdd9e7b6e7..55914e9ace 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -50,6 +50,7 @@ #include <qtsupport/customexecutablerunconfiguration.h> #include <qtsupport/qtkitinformation.h> #include <qtsupport/qtsupportconstants.h> +#include <utils/algorithm.h> #include <QDir> #include <QFileSystemWatcher> @@ -868,7 +869,11 @@ QVector<AndroidManager::Library> AndroidManager::availableQtLibsWithDependencies } qtLibraries.push_back(library); } - qSort(qtLibraries.begin(), qtLibraries.end(), qtLibrariesLessThan); + Utils::sort(qtLibraries, [](const Library &a, const Library &b) -> bool { + if (a.level == b.level) + return a.name < b.name; + return a.level < b.level; + }); return qtLibraries; @@ -1171,13 +1176,6 @@ int AndroidManager::setLibraryLevel(const QString &library, LibrariesMap &mapLib return maxlevel + 1; } -bool AndroidManager::qtLibrariesLessThan(const Library &a, const Library &b) -{ - if (a.level == b.level) - return a.name < b.name; - return a.level < b.level; -} - QString AndroidManager::libGnuStl(const QString &arch, const QString &ndkToolChainVersion) { return AndroidConfigurations::currentConfig().ndkLocation().toString() diff --git a/src/plugins/android/androidmanager.h b/src/plugins/android/androidmanager.h index 75b2fe2b72..ca5e35d63b 100644 --- a/src/plugins/android/androidmanager.h +++ b/src/plugins/android/androidmanager.h @@ -158,7 +158,7 @@ private: static QStringList dependencies(const Utils::FileName &readelfPath, const QString &lib); static int setLibraryLevel(const QString &library, LibrariesMap &mapLibs); - static bool qtLibrariesLessThan(const Library &a, const Library &b); + }; } // namespace Internal diff --git a/src/plugins/android/androidmanifesteditorwidget.cpp b/src/plugins/android/androidmanifesteditorwidget.cpp index 338954849a..fa47a0b9eb 100644 --- a/src/plugins/android/androidmanifesteditorwidget.cpp +++ b/src/plugins/android/androidmanifesteditorwidget.cpp @@ -48,6 +48,7 @@ #include <texteditor/texteditoractionhandler.h> #include <texteditor/texteditorsettings.h> #include <qmakeprojectmanager/qmakeproject.h> +#include <utils/algorithm.h> #include <QLineEdit> #include <QFileInfo> @@ -1348,7 +1349,7 @@ void PermissionsModel::setPermissions(const QStringList &permissions) { beginResetModel(); m_permissions = permissions; - qSort(m_permissions); + Utils::sort(m_permissions); endResetModel(); } diff --git a/src/plugins/clangcodemodel/clangcompletion.cpp b/src/plugins/clangcodemodel/clangcompletion.cpp index 72bc6dbfae..eadaf40f0a 100644 --- a/src/plugins/clangcodemodel/clangcompletion.cpp +++ b/src/plugins/clangcodemodel/clangcompletion.cpp @@ -173,7 +173,7 @@ static QList<CodeCompletionResult> unfilteredCompletion(const ClangCompletionAss } QList<CodeCompletionResult> result = wrapper->codeCompleteAt(line, column + 1, unsavedFiles); - qSort(result); + std::sort(result); if (DebugTiming) qDebug() << "... Completion done in" << t.elapsed() << "ms, with" << result.count() << "items."; diff --git a/src/plugins/clearcase/clearcaseplugin.cpp b/src/plugins/clearcase/clearcaseplugin.cpp index 29a3ca0880..1ea29ff15a 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -56,6 +56,7 @@ #include <projectexplorer/projectexplorer.h> #include <projectexplorer/project.h> #include <projectexplorer/iprojectmanager.h> +#include <utils/algorithm.h> #include <utils/synchronousprocess.h> #include <utils/parameteraction.h> #include <utils/fileutils.h> @@ -1906,7 +1907,7 @@ QList<QStringPair> ClearCasePlugin::ccGetActivities() const result.append(QStringPair(actName, act.at(1).trimmed())); } } - qSort(result); + Utils::sort(result); if (!rebaseAct.first.isEmpty()) result.append(rebaseAct); if (!deliverAct.first.isEmpty()) diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp index 81476f5274..857cd919d5 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -55,6 +55,7 @@ #include <qtsupport/uicodemodelsupport.h> #include <cpptools/cppmodelmanagerinterface.h> #include <extensionsystem/pluginmanager.h> +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <utils/stringutils.h> #include <utils/hostosinfo.h> @@ -432,8 +433,8 @@ void CMakeProject::buildTree(CMakeProjectNode *rootNode, QList<ProjectExplorer:: // Gather old list QList<ProjectExplorer::FileNode *> oldList; gatherFileNodes(rootNode, oldList); - qSort(oldList.begin(), oldList.end(), sortNodesByPath); - qSort(newList.begin(), newList.end(), sortNodesByPath); + Utils::sort(oldList, sortNodesByPath); + Utils::sort(newList, sortNodesByPath); QList<ProjectExplorer::FileNode *> added; QList<ProjectExplorer::FileNode *> deleted; diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp index 156cdb720b..a9c1a2977d 100644 --- a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp +++ b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp @@ -30,6 +30,7 @@ #include "externaltoolconfig.h" #include "ui_externaltoolconfig.h" +#include <utils/algorithm.h> #include <utils/hostosinfo.h> #include <utils/qtcassert.h> #include <utils/qtcprocess.h> @@ -257,7 +258,7 @@ bool ExternalToolModel::setData(const QModelIndex &modelIndex, const QVariant &v int previousIndex = categories.indexOf(category); categories.removeAt(previousIndex); categories.append(string); - qSort(categories); + Utils::sort(categories); int newIndex = categories.indexOf(string); if (newIndex != previousIndex) { // we have same parent so we have to do special stuff for beginMoveRows... @@ -327,7 +328,7 @@ QModelIndex ExternalToolModel::addCategory() } QList<QString> categories = m_tools.keys(); categories.append(category); - qSort(categories); + Utils::sort(categories); int pos = categories.indexOf(category); beginInsertRows(QModelIndex(), pos, pos); diff --git a/src/plugins/coreplugin/helpmanager.cpp b/src/plugins/coreplugin/helpmanager.cpp index bea613a2f1..b28e3f0c87 100644 --- a/src/plugins/coreplugin/helpmanager.cpp +++ b/src/plugins/coreplugin/helpmanager.cpp @@ -30,6 +30,7 @@ #include "helpmanager.h" #include <coreplugin/icore.h> +#include <utils/algorithm.h> #include <utils/filesystemwatcher.h> #include <QDateTime> @@ -263,7 +264,7 @@ QStringList HelpManager::findKeywords(const QString &key, Qt::CaseSensitivity ca } QStringList keywordsSorted = keywordsToSort.toList(); - qSort(keywordsSorted.begin(), keywordsSorted.end()); + Utils::sort(keywordsSorted); return keywordsSorted + keywords.toList(); } diff --git a/src/plugins/coreplugin/locator/locator.cpp b/src/plugins/coreplugin/locator/locator.cpp index 6f29e95ce9..4873ac8924 100644 --- a/src/plugins/coreplugin/locator/locator.cpp +++ b/src/plugins/coreplugin/locator/locator.cpp @@ -46,6 +46,7 @@ #include <coreplugin/progressmanager/progressmanager.h> #include <coreplugin/progressmanager/futureprogress.h> #include <extensionsystem/pluginmanager.h> +#include <utils/algorithm.h> #include <utils/QtConcurrentTools> #include <utils/qtcassert.h> @@ -57,17 +58,6 @@ namespace Core { namespace Internal { -namespace { - static bool filterLessThan(const ILocatorFilter *first, const ILocatorFilter *second) - { - if (first->priority() < second->priority()) - return true; - if (first->priority() > second->priority()) - return false; - return first->id().alphabeticallyBefore(second->id()); - } -} - Locator::Locator() : m_settingsInitialized(false) { @@ -151,7 +141,11 @@ void Locator::openLocator() void Locator::extensionsInitialized() { m_filters = ExtensionSystem::PluginManager::getObjects<ILocatorFilter>(); - qSort(m_filters.begin(), m_filters.end(), filterLessThan); + Utils::sort(m_filters, [](const ILocatorFilter *first, const ILocatorFilter *second) -> bool { + if (first->priority() != second->priority()) + return first->priority() < second->priority(); + return first->id().alphabeticallyBefore(second->id()); + }); setFilters(m_filters); } diff --git a/src/plugins/coreplugin/mimetypesettings.cpp b/src/plugins/coreplugin/mimetypesettings.cpp index f2a589168a..e4aa08a6fa 100644 --- a/src/plugins/coreplugin/mimetypesettings.cpp +++ b/src/plugins/coreplugin/mimetypesettings.cpp @@ -36,6 +36,7 @@ #include <coreplugin/editormanager/editormanager.h> #include <coreplugin/editormanager/ieditorfactory.h> #include <coreplugin/editormanager/iexternaleditor.h> +#include <utils/algorithm.h> #include <utils/headerviewstretcher.h> #include <QAbstractTableModel> @@ -47,19 +48,10 @@ #include <QSet> #include <QStringList> #include <QSortFilterProxyModel> -#include <QtAlgorithms> - -#include <algorithm> namespace Core { namespace Internal { -struct MimeTypeComp -{ - bool operator()(const MimeType &a, const MimeType &b) - { return a.type().compare(b.type(), Qt::CaseInsensitive) < 0; } -}; - // MimeTypeSettingsModel class MimeTypeSettingsModel : public QAbstractTableModel { @@ -125,7 +117,9 @@ QVariant MimeTypeSettingsModel::data(const QModelIndex &modelIndex, int role) co void MimeTypeSettingsModel::load() { m_mimeTypes = MimeDatabase::mimeTypes(); - qSort(m_mimeTypes.begin(), m_mimeTypes.end(), MimeTypeComp()); + Utils::sort(m_mimeTypes, [](const MimeType &a, const MimeType &b) { + return a.type().compare(b.type(), Qt::CaseInsensitive) < 0; + }); m_knownPatterns = QSet<QString>::fromList( MimeDatabase::fromGlobPatterns(MimeDatabase::globPatterns())); @@ -498,7 +492,7 @@ void MimeTypeSettingsPrivate::updateMimeDatabase() // For this case it is a better approach to simply use a list and to remove duplicates // afterwards than to keep a more complex data structure like a hash table. - qSort(m_modifiedMimeTypes.begin(), m_modifiedMimeTypes.end()); + Utils::sort(m_modifiedMimeTypes); m_modifiedMimeTypes.erase(std::unique(m_modifiedMimeTypes.begin(), m_modifiedMimeTypes.end()), m_modifiedMimeTypes.end()); diff --git a/src/plugins/coreplugin/outputpanemanager.cpp b/src/plugins/coreplugin/outputpanemanager.cpp index 4a060e41b3..baaa38615c 100644 --- a/src/plugins/coreplugin/outputpanemanager.cpp +++ b/src/plugins/coreplugin/outputpanemanager.cpp @@ -43,6 +43,7 @@ #include <extensionsystem/pluginmanager.h> +#include <utils/algorithm.h> #include <utils/hostosinfo.h> #include <utils/styledbar.h> #include <utils/qtcassert.h> @@ -75,11 +76,6 @@ static char outputPaneVisibleKeyC[] = "visible"; static OutputPaneManager *m_instance = 0; -bool comparePanes(IOutputPane *p1, IOutputPane *p2) -{ - return p1->priorityInStatusBar() > p2->priorityInStatusBar(); -} - void OutputPaneManager::create() { m_instance = new OutputPaneManager; @@ -239,7 +235,9 @@ void OutputPaneManager::init() int minTitleWidth = 0; m_panes = ExtensionSystem::PluginManager::getObjects<IOutputPane>(); - qSort(m_panes.begin(), m_panes.end(), &comparePanes); + Utils::sort(m_panes, [](IOutputPane *p1, IOutputPane *p2) { + return p1->priorityInStatusBar() > p2->priorityInStatusBar(); + }); const int n = m_panes.size(); int shortcutNumber = 1; diff --git a/src/plugins/coreplugin/sidebar.cpp b/src/plugins/coreplugin/sidebar.cpp index a18b6a05c2..cc758e006b 100644 --- a/src/plugins/coreplugin/sidebar.cpp +++ b/src/plugins/coreplugin/sidebar.cpp @@ -31,6 +31,7 @@ #include "sidebarwidget.h" #include "actionmanager/command.h" +#include <utils/algorithm.h> #include <QSettings> #include <QPointer> @@ -152,7 +153,7 @@ void SideBar::makeItemAvailable(SideBarItem *item) d->m_availableItemIds.append(it.key()); d->m_availableItemTitles.append(it.value().data()->title()); d->m_unavailableItemIds.removeAll(it.key()); - qSort(d->m_availableItemTitles); + Utils::sort(d->m_availableItemTitles); emit availableItemsChanged(); //updateWidgets(); break; @@ -178,7 +179,7 @@ void SideBar::setUnavailableItemIds(const QStringList &itemIds) d->m_availableItemIds.removeAll(id); d->m_availableItemTitles.removeAll(d->m_itemMap.value(id).data()->title()); } - qSort(d->m_availableItemTitles); + Utils::sort(d->m_availableItemTitles); updateWidgets(); } diff --git a/src/plugins/coreplugin/sidebarwidget.cpp b/src/plugins/coreplugin/sidebarwidget.cpp index b4f700781f..6c463e7d19 100644 --- a/src/plugins/coreplugin/sidebarwidget.cpp +++ b/src/plugins/coreplugin/sidebarwidget.cpp @@ -32,6 +32,7 @@ #include "navigationsubwidget.h" #include <coreplugin/coreconstants.h> +#include <utils/algorithm.h> #include <QToolBar> #include <QToolButton> @@ -91,7 +92,7 @@ SideBarWidget::SideBarWidget(SideBar *sideBar, const QString &id) lay->addWidget(m_toolbar); QStringList titleList = m_sideBar->availableItemTitles(); - qSort(titleList); + Utils::sort(titleList); QString t = id; if (titleList.count()) { foreach (const QString &itemTitle, titleList) @@ -158,7 +159,7 @@ void SideBarWidget::updateAvailableItems() QStringList titleList = m_sideBar->availableItemTitles(); if (!currentTitle.isEmpty() && !titleList.contains(currentTitle)) titleList.append(currentTitle); - qSort(titleList); + Utils::sort(titleList); foreach (const QString &itemTitle, titleList) m_comboBox->addItem(itemTitle, m_sideBar->idForTitle(itemTitle)); diff --git a/src/plugins/coreplugin/vcsmanager.cpp b/src/plugins/coreplugin/vcsmanager.cpp index 18455010da..8c62048101 100644 --- a/src/plugins/coreplugin/vcsmanager.cpp +++ b/src/plugins/coreplugin/vcsmanager.cpp @@ -40,6 +40,7 @@ #include <vcsbase/vcsbaseconstants.h> #include <extensionsystem/pluginmanager.h> +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QDir> @@ -221,11 +222,6 @@ void VcsManager::extensionsInitialized() } } -static bool longerThanPath(QPair<QString, IVersionControl *> &pair1, QPair<QString, IVersionControl *> &pair2) -{ - return pair1.first.size() > pair2.first.size(); -} - void VcsManager::resetVersionControlForDirectory(const QString &inputDirectory) { if (inputDirectory.isEmpty()) @@ -273,7 +269,10 @@ IVersionControl* VcsManager::findVersionControlForDirectory(const QString &input // To properly find a nested repository (say, git checkout inside SVN), // we need to select the version control with the longest toplevel pathname. - qSort(allThatCanManage.begin(), allThatCanManage.end(), longerThanPath); + Utils::sort(allThatCanManage, [](const StringVersionControlPair &l, + const StringVersionControlPair &r) { + return l.first.size() > r.first.size(); + }); if (allThatCanManage.isEmpty()) { d->cache(0, QString(), directory); // register that nothing was found! diff --git a/src/plugins/cppeditor/cpptypehierarchy.cpp b/src/plugins/cppeditor/cpptypehierarchy.cpp index dc1ff05915..b24b5c9814 100644 --- a/src/plugins/cppeditor/cpptypehierarchy.cpp +++ b/src/plugins/cppeditor/cpptypehierarchy.cpp @@ -35,6 +35,7 @@ #include "cppeditorplugin.h" #include <coreplugin/find/treeviewfind.h> +#include <utils/algorithm.h> #include <utils/navigationtreeview.h> #include <utils/annotateditemdelegate.h> @@ -69,17 +70,14 @@ QStandardItem *itemForClass(const CppClass &cppClass) return item; } -bool compareCppClassNames(const CppClass &c1, const CppClass &c2) -{ - const QString key1 = c1.name + QLatin1String("::") + c1.qualifiedName; - const QString key2 = c2.name + QLatin1String("::") + c2.qualifiedName; - return key1 < key2; -} - QList<CppClass> sortClasses(const QList<CppClass> &cppClasses) { QList<CppClass> sorted = cppClasses; - qSort(sorted.begin(), sorted.end(), compareCppClassNames); + Utils::sort(sorted, [](const CppClass &c1, const CppClass &c2) { + const QString key1 = c1.name + QLatin1String("::") + c1.qualifiedName; + const QString key2 = c2.name + QLatin1String("::") + c2.qualifiedName; + return key1 < key2; + }); return sorted; } diff --git a/src/plugins/cppeditor/fileandtokenactions_test.cpp b/src/plugins/cppeditor/fileandtokenactions_test.cpp index 9d61ed29f2..6944ec6c4f 100644 --- a/src/plugins/cppeditor/fileandtokenactions_test.cpp +++ b/src/plugins/cppeditor/fileandtokenactions_test.cpp @@ -42,13 +42,13 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectexplorer.h> #include <texteditor/basetextdocument.h> +#include <utils/algorithm.h> #include <cplusplus/CppDocument.h> #include <cplusplus/TranslationUnit.h> #include <QDebug> #include <QTextDocument> -#include <QtAlgorithms> #include <QtTest> #if QT_VERSION >= 0x050000 @@ -168,7 +168,7 @@ TestActionsTestCase::TestActionsTestCase(const Actions &tokenActions, const Acti TestActionsTestCase::allProjectsConfigured = true; } - qSort(filesToOpen); + Utils::sort(filesToOpen); // Process all files from the projects foreach (const QString filePath, filesToOpen) { diff --git a/src/plugins/cpptools/cppchecksymbols.cpp b/src/plugins/cpptools/cppchecksymbols.cpp index 3f69c86ac3..ca6684a5ef 100644 --- a/src/plugins/cpptools/cppchecksymbols.cpp +++ b/src/plugins/cpptools/cppchecksymbols.cpp @@ -31,6 +31,7 @@ #include "cpplocalsymbols.h" +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QCoreApplication> @@ -330,7 +331,7 @@ void CheckSymbols::run() _potentialFunctions = collectTypes.functions(); _potentialStatics = collectTypes.statics(); - qSort(_macroUses.begin(), _macroUses.end(), sortByLinePredicate); + Utils::sort(_macroUses, sortByLinePredicate); _doc->clearDiagnosticMessages(); if (!isCanceled()) { @@ -1415,7 +1416,7 @@ void CheckSymbols::flush() if (_usages.isEmpty()) return; - qSort(_usages.begin(), _usages.end(), sortByLinePredicate); + Utils::sort(_usages, sortByLinePredicate); reportResults(_usages); int cap = _usages.capacity(); _usages.clear(); diff --git a/src/plugins/cpptools/cppcodemodelinspectordumper.cpp b/src/plugins/cpptools/cppcodemodelinspectordumper.cpp index 680944b677..cdad0fdddf 100644 --- a/src/plugins/cpptools/cppcodemodelinspectordumper.cpp +++ b/src/plugins/cpptools/cppcodemodelinspectordumper.cpp @@ -33,6 +33,7 @@ #include <coreplugin/icore.h> #include <cpptools/cppprojectfile.h> #include <projectexplorer/project.h> +#include <utils/algorithm.h> #include <cplusplus/CppDocument.h> #include <cplusplus/Token.h> @@ -149,7 +150,7 @@ QString Utils::toString(const QList<ProjectFile> &projectFiles) QStringList filesList; foreach (const ProjectFile &projectFile, projectFiles) filesList << QDir::toNativeSeparators(projectFile.path); - qSort(filesList); + ::Utils::sort(filesList); return filesList.join(QLatin1String("\n")); } diff --git a/src/plugins/cpptools/cppcodemodelsettingspage.cpp b/src/plugins/cpptools/cppcodemodelsettingspage.cpp index 5b975217da..29f9882662 100644 --- a/src/plugins/cpptools/cppcodemodelsettingspage.cpp +++ b/src/plugins/cpptools/cppcodemodelsettingspage.cpp @@ -32,6 +32,7 @@ #include "ui_cppcodemodelsettingspage.h" #include <coreplugin/icore.h> +#include <utils/algorithm.h> #include <QTextStream> @@ -70,7 +71,7 @@ void CppCodeModelSettingsWidget::applyToWidget(QComboBox *chooser, const QString chooser->clear(); QStringList names = m_settings->availableModelManagerSupportersByName().keys(); - qSort(names); + Utils::sort(names); foreach (const QString &name, names) { const QString &id = m_settings->availableModelManagerSupportersByName()[name]; chooser->addItem(name, id); diff --git a/src/plugins/cpptools/includeutils.cpp b/src/plugins/cpptools/includeutils.cpp index 252a217338..a01fa5a9b8 100644 --- a/src/plugins/cpptools/includeutils.cpp +++ b/src/plugins/cpptools/includeutils.cpp @@ -34,6 +34,7 @@ #include <cplusplus/PreprocessorClient.h> #include <cplusplus/PreprocessorEnvironment.h> +#include <utils/algorithm.h> #include <utils/stringutils.h> #include <QDir> @@ -51,9 +52,6 @@ using namespace Utils; namespace { -bool includeLineLessThan(const Include &left, const Include &right) -{ return left.line() < right.line(); } - bool includeFileNamelessThen(const Include & left, const Include & right) { return left.unresolvedFileName() < right.unresolvedFileName(); } @@ -293,7 +291,9 @@ QList<IncludeGroup> LineForNewIncludeDirective::getGroupsByIncludeType( QList<IncludeGroup> IncludeGroup::detectIncludeGroupsByNewLines(QList<Document::Include> &includes) { // Sort by line - qSort(includes.begin(), includes.end(), includeLineLessThan); + Utils::sort(includes, [](const Include &left, const Include &right) { + return left.line() < right.line(); + }); // Create groups QList<IncludeGroup> result; diff --git a/src/plugins/cpptools/typehierarchybuilder_test.cpp b/src/plugins/cpptools/typehierarchybuilder_test.cpp index cc175909c7..a96e322454 100644 --- a/src/plugins/cpptools/typehierarchybuilder_test.cpp +++ b/src/plugins/cpptools/typehierarchybuilder_test.cpp @@ -35,6 +35,7 @@ #include <cplusplus/Overview.h> #include <cplusplus/SymbolVisitor.h> +#include <utils/algorithm.h> #include <utils/fileutils.h> #include <QDir> @@ -48,12 +49,6 @@ Q_DECLARE_METATYPE(QList<Tests::TestDocument>) namespace { -bool hierarchySorter(const TypeHierarchy &h1, const TypeHierarchy &h2) -{ - Overview oo; - return oo.prettyName(h1.symbol()->name()) < oo.prettyName(h2.symbol()->name()); -} - QString toString(const TypeHierarchy &hierarchy, int indent = 0) { Symbol *symbol = hierarchy.symbol(); @@ -61,7 +56,10 @@ QString toString(const TypeHierarchy &hierarchy, int indent = 0) + Overview().prettyName(symbol->name()) + QLatin1Char('\n'); QList<TypeHierarchy> sortedHierarchy = hierarchy.hierarchy(); - qSort(sortedHierarchy.begin(), sortedHierarchy.end(), hierarchySorter); + Overview oo; + Utils::sort(sortedHierarchy, [&oo](const TypeHierarchy &h1, const TypeHierarchy &h2) -> bool { + return oo.prettyName(h1.symbol()->name()) < oo.prettyName(h2.symbol()->name()); + }); foreach (TypeHierarchy childHierarchy, sortedHierarchy) result += toString(childHierarchy, indent + 2); return result; diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index 576713e67b..3d5aeaec0e 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -31,6 +31,7 @@ #include "debuggercore.h" #include "debuggerrunconfigurationaspect.h" +#include <utils/algorithm.h> #include <utils/appmainwindow.h> #include <utils/styledbar.h> #include <utils/qtcassert.h> @@ -440,14 +441,11 @@ QDockWidget *DebuggerMainWindow::createDockWidget(const DebuggerLanguage &langua return dockWidget; } -static bool sortCommands(Command *cmd1, Command *cmd2) -{ - return cmd1->action()->text() < cmd2->action()->text(); -} - void DebuggerMainWindow::addStagedMenuEntries() { - qSort(d->m_menuCommandsToAdd.begin(), d->m_menuCommandsToAdd.end(), &sortCommands); + Utils::sort(d->m_menuCommandsToAdd, [](Command *cmd1, Command *cmd2) { + return cmd1->action()->text() < cmd2->action()->text(); + }); foreach (Command *cmd, d->m_menuCommandsToAdd) d->m_viewsMenu->addAction(cmd); d->m_menuCommandsToAdd.clear(); diff --git a/src/plugins/debugger/gdb/gdbengine.cpp b/src/plugins/debugger/gdb/gdbengine.cpp index e30b928c9d..41bc6c05b5 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -68,6 +68,7 @@ #include <projectexplorer/itaskhandler.h> #include <projectexplorer/taskhub.h> #include <texteditor/itexteditor.h> +#include <utils/algorithm.h> #include <utils/hostosinfo.h> #include <utils/qtcassert.h> #include <utils/qtcprocess.h> @@ -1000,7 +1001,7 @@ int GdbEngine::commandTimeoutTime() const void GdbEngine::commandTimeout() { QList<int> keys = m_cookieForToken.keys(); - qSort(keys); + Utils::sort(keys); bool killIt = false; foreach (int key, keys) { const GdbCommand &cmd = m_cookieForToken.value(key); diff --git a/src/plugins/debugger/threadshandler.cpp b/src/plugins/debugger/threadshandler.cpp index a63b69159b..591e16e600 100644 --- a/src/plugins/debugger/threadshandler.cpp +++ b/src/plugins/debugger/threadshandler.cpp @@ -33,6 +33,7 @@ #include "debuggerprotocol.h" #include "watchutils.h" +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QDebug> @@ -253,30 +254,18 @@ Qt::ItemFlags ThreadsHandler::flags(const QModelIndex &index) const return stopped ? QAbstractTableModel::flags(index) : Qt::ItemFlags(0); } -struct Sorter +void ThreadsHandler::sort(int column, Qt::SortOrder order) { - Sorter(int column, Qt::SortOrder order) - : m_column(column), m_order(order) - {} - - bool operator()(const ThreadData &t1, const ThreadData &t2) const - { - const QVariant v1 = threadPart(t1, m_column); - const QVariant v2 = threadPart(t2, m_column); + layoutAboutToBeChanged(); + Utils::sort(m_threads, [&](const ThreadData &t1, const ThreadData &t2) -> bool { + const QVariant v1 = threadPart(t1, column); + const QVariant v2 = threadPart(t2, column); if (v1 == v2) return false; // FIXME: Use correct toXXX(); - return (v1.toString() < v2.toString()) ^ (m_order == Qt::DescendingOrder); + return (v1.toString() < v2.toString()) ^ (order == Qt::DescendingOrder); } - - int m_column; - Qt::SortOrder m_order; -}; - -void ThreadsHandler::sort(int column, Qt::SortOrder order) -{ - layoutAboutToBeChanged(); - qSort(m_threads.begin(), m_threads.end(), Sorter(column, order)); +); layoutChanged(); } diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 32458acd58..ec1e6623c6 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -40,13 +40,13 @@ #include "imageviewer.h" #include "watchutils.h" +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <utils/savedaction.h> #include <QDebug> #include <QFile> #include <QProcess> -#include <QtAlgorithms> #include <QTabWidget> #include <QTextEdit> @@ -2120,7 +2120,7 @@ void WatchHandler::editTypeFormats(bool includeLocals, const QByteArray &iname) //QHashIterator<QString, QStringList> it(m_reportedTypeFormats); QList<QString> l = m_model->m_reportedTypeFormats.keys(); - qSort(l.begin(), l.end()); + Utils::sort(l); foreach (const QString &ba, l) { int f = iname.isEmpty() ? AutomaticFormat : format(iname); dlg.addTypeFormats(ba, m_model->m_reportedTypeFormats.value(ba), f); diff --git a/src/plugins/git/commitdata.cpp b/src/plugins/git/commitdata.cpp index 0ac0c5d1de..73878e5f83 100644 --- a/src/plugins/git/commitdata.cpp +++ b/src/plugins/git/commitdata.cpp @@ -28,6 +28,7 @@ ****************************************************************************/ #include "commitdata.h" +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QCoreApplication> @@ -166,7 +167,7 @@ bool CommitData::checkLine(const QString &stateInfo, const QString &file) files.append(qMakePair(yState, newFile)); } } - qSort(files); + Utils::sort(files); return true; } diff --git a/src/plugins/git/stashdialog.cpp b/src/plugins/git/stashdialog.cpp index 89aed1dbe2..b3c89b64e0 100644 --- a/src/plugins/git/stashdialog.cpp +++ b/src/plugins/git/stashdialog.cpp @@ -33,6 +33,7 @@ #include "gitutils.h" #include "ui_stashdialog.h" +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QDebug> @@ -367,7 +368,7 @@ QList<int> StashDialog::selectedRows() const if (index.isValid()) rc.push_back(index.row()); } - qSort(rc); + Utils::sort(rc); return rc; } diff --git a/src/plugins/projectexplorer/allprojectsfilter.cpp b/src/plugins/projectexplorer/allprojectsfilter.cpp index fe1e30b875..fd4b44e9ed 100644 --- a/src/plugins/projectexplorer/allprojectsfilter.cpp +++ b/src/plugins/projectexplorer/allprojectsfilter.cpp @@ -32,6 +32,8 @@ #include "session.h" #include "project.h" +#include <utils/algorithm.h> + using namespace Core; using namespace ProjectExplorer; using namespace ProjectExplorer::Internal; @@ -61,7 +63,7 @@ void AllProjectsFilter::updateFiles() files().clear(); foreach (Project *project, SessionManager::projects()) files().append(project->files(Project::AllFiles)); - qSort(files()); + Utils::sort(files()); generateFileNames(); } diff --git a/src/plugins/projectexplorer/buildconfigurationmodel.cpp b/src/plugins/projectexplorer/buildconfigurationmodel.cpp index 641af4b931..a4eb75dbdd 100644 --- a/src/plugins/projectexplorer/buildconfigurationmodel.cpp +++ b/src/plugins/projectexplorer/buildconfigurationmodel.cpp @@ -31,6 +31,8 @@ #include "target.h" #include "buildconfiguration.h" +#include <utils/algorithm.h> + using namespace ProjectExplorer; /*! @@ -59,7 +61,7 @@ BuildConfigurationModel::BuildConfigurationModel(Target *target, QObject *parent m_target(target) { m_buildConfigurations = m_target->buildConfigurations(); - qSort(m_buildConfigurations.begin(), m_buildConfigurations.end(), BuildConfigurationComparer()); + Utils::sort(m_buildConfigurations, BuildConfigurationComparer()); connect(target, SIGNAL(addedBuildConfiguration(ProjectExplorer::BuildConfiguration*)), this, SLOT(addedBuildConfiguration(ProjectExplorer::BuildConfiguration*))); diff --git a/src/plugins/projectexplorer/currentprojectfilter.cpp b/src/plugins/projectexplorer/currentprojectfilter.cpp index dabee908b7..50917bb598 100644 --- a/src/plugins/projectexplorer/currentprojectfilter.cpp +++ b/src/plugins/projectexplorer/currentprojectfilter.cpp @@ -31,6 +31,8 @@ #include "projectexplorer.h" #include "project.h" +#include <utils/algorithm.h> + #include <QDebug> using namespace Core; @@ -64,7 +66,7 @@ void CurrentProjectFilter::updateFiles() if (!m_project) return; files() = m_project->files(Project::AllFiles); - qSort(files()); + Utils::sort(files()); generateFileNames(); } diff --git a/src/plugins/projectexplorer/deployconfigurationmodel.cpp b/src/plugins/projectexplorer/deployconfigurationmodel.cpp index 3357ad9649..6f1e9cb737 100644 --- a/src/plugins/projectexplorer/deployconfigurationmodel.cpp +++ b/src/plugins/projectexplorer/deployconfigurationmodel.cpp @@ -31,6 +31,8 @@ #include "target.h" #include "deployconfiguration.h" +#include <utils/algorithm.h> + using namespace ProjectExplorer; /*! @@ -57,7 +59,7 @@ DeployConfigurationModel::DeployConfigurationModel(Target *target, QObject *pare m_target(target) { m_deployConfigurations = m_target->deployConfigurations(); - qSort(m_deployConfigurations.begin(), m_deployConfigurations.end(), DeployConfigurationComparer()); + Utils::sort(m_deployConfigurations, DeployConfigurationComparer()); connect(target, SIGNAL(addedDeployConfiguration(ProjectExplorer::DeployConfiguration*)), this, SLOT(addedDeployConfiguration(ProjectExplorer::DeployConfiguration*))); diff --git a/src/plugins/projectexplorer/kit.cpp b/src/plugins/projectexplorer/kit.cpp index 1de07772c3..6dc7a182de 100644 --- a/src/plugins/projectexplorer/kit.cpp +++ b/src/plugins/projectexplorer/kit.cpp @@ -33,6 +33,7 @@ #include "ioutputparser.h" #include "osparser.h" +#include <utils/algorithm.h> #include <utils/fileutils.h> #include <QApplication> @@ -254,7 +255,7 @@ QList<Task> Kit::validate() const } result.append(tmp); } - qSort(result); + Utils::sort(result); d->m_hasValidityInfo = true; return result; } diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp index 75e677485f..65f40ff94e 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -33,6 +33,7 @@ #include "kitmanager.h" #include "target.h" +#include <utils/algorithm.h> #include <utils/styledbar.h> #include <utils/stylehelper.h> @@ -731,23 +732,6 @@ bool MiniProjectTargetSelector::event(QEvent *event) } -class IndexSorter -{ -public: - enum SortOrder { Less = 0, Greater = 1}; - - IndexSorter(QVector<int> result, SortOrder order) - : m_result(result), m_order(order) - { } - - bool operator()(int i, int j) - { return (m_result[i] < m_result[j]) ^ bool(m_order); } - -private: - QVector<int> m_result; - SortOrder m_order; -}; - // does some fancy calculations to ensure proper widths for the list widgets QVector<int> MiniProjectTargetSelector::listWidgetWidths(int minSize, int maxSize) { @@ -796,8 +780,9 @@ QVector<int> MiniProjectTargetSelector::listWidgetWidths(int minSize, int maxSiz if (result[i] != -1) indexes.append(i); - IndexSorter indexSorter(result, tooSmall ? IndexSorter::Less : IndexSorter::Greater); - qSort(indexes.begin(), indexes.end(), indexSorter); + Utils::sort(indexes, [&](int i, int j) -> bool { + return (result[i] > result[j]) ^ tooSmall; + }); int i = 0; int first = result[indexes.first()]; // biggest or smallest diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index 5aa762b183..a8d5222bbd 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -117,6 +117,7 @@ #include <coreplugin/fileutils.h> #include <coreplugin/removefiledialog.h> #include <texteditor/findinfiles.h> +#include <utils/algorithm.h> #include <utils/fileutils.h> #include <utils/parameteraction.h> #include <utils/qtcassert.h> @@ -1966,7 +1967,7 @@ QStringList ProjectExplorerPlugin::allFilesWithDependencies(Project *pro) p->rootProjectNode()->accept(&filesVisitor); filesToSave << filesVisitor.filePaths(); } - qSort(filesToSave); + Utils::sort(filesToSave); return filesToSave; } diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp index 5eece06532..1898953871 100644 --- a/src/plugins/projectexplorer/projectmodels.cpp +++ b/src/plugins/projectexplorer/projectmodels.cpp @@ -34,6 +34,7 @@ #include "projectexplorer.h" #include <coreplugin/fileiconprovider.h> +#include <utils/algorithm.h> #include <QDebug> #include <QFileInfo> @@ -444,7 +445,7 @@ QList<Node*> FlatModel::childNodes(FolderNode *parentNode, const QSet<Node*> &bl recursiveAddFolderNodes(parentNode, &nodeList, blackList); recursiveAddFileNodes(parentNode, &nodeList, blackList + nodeList.toSet()); } - qSort(nodeList.begin(), nodeList.end(), sortNodes); + Utils::sort(nodeList, sortNodes); return nodeList; } diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index 7af657df80..ecc0c38225 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -37,6 +37,7 @@ #include <coreplugin/icore.h> #include <coreplugin/iversioncontrol.h> #include <coreplugin/vcsmanager.h> +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QFileInfo> @@ -406,7 +407,7 @@ void FolderNode::removeFileNodes(const QList<FileNode *> &files) return; QList<FileNode*> toRemove = files; - qSort(toRemove.begin(), toRemove.end()); + Utils::sort(toRemove); foreach (NodesWatcher *watcher, pn->watchers()) emit watcher->filesAboutToBeRemoved(this, toRemove); @@ -486,7 +487,7 @@ void FolderNode::removeFolderNodes(const QList<FolderNode*> &subFolders) return; QList<FolderNode*> toRemove = subFolders; - qSort(toRemove.begin(), toRemove.end()); + Utils::sort(toRemove); foreach (NodesWatcher *watcher, pn->watchers()) emit watcher->foldersAboutToBeRemoved(this, toRemove); @@ -690,8 +691,8 @@ void ProjectNode::addProjectNodes(const QList<ProjectNode*> &subProjects) m_subFolderNodes.append(project); m_subProjectNodes.append(project); } - qSort(m_subFolderNodes.begin(), m_subFolderNodes.end()); - qSort(m_subProjectNodes.begin(), m_subProjectNodes.end()); + Utils::sort(m_subFolderNodes); + Utils::sort(m_subProjectNodes); foreach (NodesWatcher *watcher, m_watchers) emit watcher->foldersAdded(); @@ -711,7 +712,7 @@ void ProjectNode::removeProjectNodes(const QList<ProjectNode*> &subProjects) QList<FolderNode*> toRemove; foreach (ProjectNode *projectNode, subProjects) toRemove << projectNode; - qSort(toRemove.begin(), toRemove.end()); + Utils::sort(toRemove); foreach (NodesWatcher *watcher, m_watchers) emit watcher->foldersAboutToBeRemoved(this, toRemove); @@ -835,8 +836,8 @@ void SessionNode::addProjectNodes(const QList<ProjectNode*> &projectNodes) m_projectNodes.append(project); } - qSort(m_subFolderNodes); - qSort(m_projectNodes); + Utils::sort(m_subFolderNodes); + Utils::sort(m_projectNodes); foreach (NodesWatcher *watcher, m_watchers) emit watcher->foldersAdded(); @@ -850,7 +851,7 @@ void SessionNode::removeProjectNodes(const QList<ProjectNode*> &projectNodes) foreach (ProjectNode *projectNode, projectNodes) toRemove << projectNode; - qSort(toRemove); + Utils::sort(toRemove); foreach (NodesWatcher *watcher, m_watchers) emit watcher->foldersAboutToBeRemoved(this, toRemove); diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index 2b16031030..971d262b7f 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -41,6 +41,7 @@ #include <coreplugin/idocument.h> #include <extensionsystem/pluginmanager.h> +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <utils/stylehelper.h> @@ -340,7 +341,7 @@ void ProjectWindow::registerProject(ProjectExplorer::Project *project) // Add the project specific pages QList<IProjectPanelFactory *> factories = ExtensionSystem::PluginManager::getObjects<IProjectPanelFactory>(); - qSort(factories.begin(), factories.end(), &IPanelFactory::prioritySort); + Utils::sort(factories, &IPanelFactory::prioritySort); foreach (IProjectPanelFactory *panelFactory, factories) { if (panelFactory->supports(project)) subtabs << panelFactory->displayName(); @@ -405,7 +406,7 @@ void ProjectWindow::showProperties(int index, int subIndex) } QList<IProjectPanelFactory *> factories = ExtensionSystem::PluginManager::getObjects<IProjectPanelFactory>(); - qSort(factories.begin(), factories.end(), &IPanelFactory::prioritySort); + Utils::sort(factories, &IPanelFactory::prioritySort); foreach (IProjectPanelFactory *panelFactory, factories) { if (panelFactory->supports(project)) { if (subIndex == pos) { diff --git a/src/plugins/projectexplorer/projectwizardpage.cpp b/src/plugins/projectexplorer/projectwizardpage.cpp index b7b2d93e5c..777fb0bfd0 100644 --- a/src/plugins/projectexplorer/projectwizardpage.cpp +++ b/src/plugins/projectexplorer/projectwizardpage.cpp @@ -32,6 +32,7 @@ #include "ui_projectwizardpage.h" #include <coreplugin/icore.h> +#include <utils/algorithm.h> #include <utils/fileutils.h> #include <utils/wizard.h> #include <vcsbase/vcsbaseconstants.h> @@ -162,18 +163,6 @@ void ProjectWizardPage::setVersionControlIndex(int idx) m_ui->addToVersionControlComboBox->setCurrentIndex(idx); } -// Alphabetically, and files in sub-directories first -static bool generatedFilePathLessThan(const QString &filePath1, const QString &filePath2) -{ - const bool filePath1HasDir = filePath1.contains(QLatin1Char('/')); - const bool filePath2HasDir = filePath2.contains(QLatin1Char('/')); - - if (filePath1HasDir == filePath2HasDir) - return Utils::FileName::fromString(filePath1) < Utils::FileName::fromString(filePath2); - else - return filePath1HasDir; -} - void ProjectWizardPage::setFilesDisplay(const QString &commonPath, const QStringList &files) { QString fileMessage; @@ -192,7 +181,16 @@ void ProjectWizardPage::setFilesDisplay(const QString &commonPath, const QString foreach (const QString &f, files) formattedFiles.append(f.right(f.size() - prefixSize)); } - qSort(formattedFiles.begin(), formattedFiles.end(), generatedFilePathLessThan); + // Alphabetically, and files in sub-directories first + Utils::sort(formattedFiles, [](const QString &filePath1, const QString &filePath2) -> bool { + const bool filePath1HasDir = filePath1.contains(QLatin1Char('/')); + const bool filePath2HasDir = filePath2.contains(QLatin1Char('/')); + + if (filePath1HasDir == filePath2HasDir) + return Utils::FileName::fromString(filePath1) < Utils::FileName::fromString(filePath2); + return filePath1HasDir; + } +); foreach (const QString &f, formattedFiles) str << QDir::toNativeSeparators(f) << '\n'; diff --git a/src/plugins/projectexplorer/runconfigurationmodel.cpp b/src/plugins/projectexplorer/runconfigurationmodel.cpp index 36a8f6284b..187c2bf9c8 100644 --- a/src/plugins/projectexplorer/runconfigurationmodel.cpp +++ b/src/plugins/projectexplorer/runconfigurationmodel.cpp @@ -31,6 +31,8 @@ #include "target.h" #include "runconfiguration.h" +#include <utils/algorithm.h> + using namespace ProjectExplorer; /*! @@ -57,7 +59,7 @@ RunConfigurationModel::RunConfigurationModel(Target *target, QObject *parent) m_target(target) { m_runConfigurations = m_target->runConfigurations(); - qSort(m_runConfigurations.begin(), m_runConfigurations.end(), RunConfigurationComparer()); + Utils::sort(m_runConfigurations, RunConfigurationComparer()); connect(target, SIGNAL(addedRunConfiguration(ProjectExplorer::RunConfiguration*)), this, SLOT(addedRunConfiguration(ProjectExplorer::RunConfiguration*))); diff --git a/src/plugins/projectexplorer/runsettingspropertiespage.cpp b/src/plugins/projectexplorer/runsettingspropertiespage.cpp index 0d88239ab1..8bc97bc17f 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -40,6 +40,7 @@ #include <extensionsystem/pluginmanager.h> #include <projectexplorer/projectexplorer.h> #include <projectexplorer/buildmanager.h> +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QVariant> @@ -274,11 +275,6 @@ RunSettingsWidget::~RunSettingsWidget() { } -static bool actionLessThan(const QAction *action1, const QAction *action2) -{ - return action1->text() < action2->text(); -} - void RunSettingsWidget::aboutToShowAddMenu() { m_addRunMenu->clear(); @@ -306,7 +302,9 @@ void RunSettingsWidget::aboutToShowAddMenu() } } - qSort(menuActions.begin(), menuActions.end(), actionLessThan); + Utils::sort(menuActions, [](const QAction *l, const QAction *r) { + return l->text() < r->text(); + }); foreach (QAction *action, menuActions) m_addRunMenu->addAction(action); } diff --git a/src/plugins/projectexplorer/targetsettingspanel.cpp b/src/plugins/projectexplorer/targetsettingspanel.cpp index 43940ddcdc..7e78e69197 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -49,6 +49,7 @@ #include <projectexplorer/buildconfiguration.h> #include <projectexplorer/deployconfiguration.h> #include <projectexplorer/runconfiguration.h> +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QFileDialog> @@ -539,13 +540,6 @@ void TargetSettingsPanelWidget::activeTargetChanged(ProjectExplorer::Target *tar m_selector->setCurrentIndex(index); } -namespace { -bool diplayNameSorter(Kit *a, Kit *b) -{ - return a->displayName() < b->displayName(); -} -} - void TargetSettingsPanelWidget::createAction(Kit *k, QMenu *menu) { QAction *action = new QAction(k->displayName(), menu); @@ -598,7 +592,9 @@ void TargetSettingsPanelWidget::updateTargetButtons() connect(removeAction, SIGNAL(triggered()), this, SLOT(removeTarget())); QList<Kit *> kits = KitManager::kits(); - qSort(kits.begin(), kits.end(), diplayNameSorter); + Utils::sort(kits, [](const Kit *a, const Kit *b) { + return a->displayName() < b->displayName(); + }); foreach (Kit *k, kits) { if (m_project->target(k)) continue; diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 913d1dfa73..63ba7c77f9 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -56,11 +56,11 @@ #include <cpptools/cppmodelmanagerinterface.h> #include <cpptools/cpptoolsconstants.h> +#include <utils/algorithm.h> #include <utils/hostosinfo.h> #include <utils/stringutils.h> #include <proparser/prowriter.h> #include <proparser/qmakevfs.h> -#include <algorithm> #include <QDebug> #include <QDir> @@ -501,8 +501,8 @@ struct InternalNode QStringList filesToAdd; SortByPath sortByPath; - qSort(files.begin(), files.end(), sortByPath); - qSort(existingFileNodes.begin(), existingFileNodes.end(), sortByPath); + Utils::sort(files, sortByPath); + Utils::sort(existingFileNodes, sortByPath); ProjectExplorer::compareSortedLists(existingFileNodes, files, filesToRemove, filesToAdd, sortByPath); @@ -527,8 +527,8 @@ struct InternalNode QStringList resourcesToAdd; SortByPath sortByPath; - qSort(files.begin(), files.end(), sortByPath); - qSort(existingResourceNodes.begin(), existingResourceNodes.end(), sortByPath); + Utils::sort(files, sortByPath); + Utils::sort(existingResourceNodes, sortByPath); ProjectExplorer::compareSortedLists(existingResourceNodes, files, resourcesToRemove, resourcesToAdd, sortByPath); @@ -1854,10 +1854,9 @@ void QmakeProFileNode::applyEvaluate(EvalResult evalResult, bool async) } SortByPath sortByPath; - qSort(existingProjectNodes.begin(), existingProjectNodes.end(), - sortByPath); - qSort(newProjectFilesExact.begin(), newProjectFilesExact.end(), sortByPath); - qSort(newProjectFilesCumlative.begin(), newProjectFilesCumlative.end(), sortByPath); + Utils::sort(existingProjectNodes, sortByPath); + Utils::sort(newProjectFilesExact, sortByPath); + Utils::sort(newProjectFilesCumlative, sortByPath); QList<ProjectNode*> toAdd; QList<ProjectNode*> toRemove; diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 9bc24e5d09..857d04b593 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -241,10 +241,10 @@ void ProjectFilesVisitor::findProjectFiles(QmakeProFileNode *rootNode, QmakeProj ProjectFilesVisitor visitor(files); rootNode->accept(&visitor); for (int i = 0; i < FileTypeSize; ++i) { - qSort(files->files[i]); - qSort(files->generatedFiles[i]); + Utils::sort(files->files[i]); + Utils::sort(files->generatedFiles[i]); } - qSort(files->proFiles); + Utils::sort(files->proFiles); } void ProjectFilesVisitor::visitProjectNode(ProjectNode *projectNode) diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectconfigwidget.cpp b/src/plugins/qmakeprojectmanager/qmakeprojectconfigwidget.cpp index ec92c63acc..63c99bd5db 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectconfigwidget.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectconfigwidget.cpp @@ -37,6 +37,7 @@ #include <projectexplorer/target.h> #include <qtsupport/qtkitinformation.h> +#include <utils/algorithm.h> #include <utils/detailswidget.h> using namespace QmakeProjectManager; @@ -248,7 +249,7 @@ void QmakeProjectConfigWidget::updateProblemLabel() buildDirectory = m_buildConfiguration->buildDirectory().toString(); QList<ProjectExplorer::Task> issues; issues = version->reportIssues(proFileName, buildDirectory); - qSort(issues); + Utils::sort(issues); if (!issues.isEmpty() || !shadowBuildWarning.isEmpty()) { QString text = QLatin1String("<nobr>") + shadowBuildWarning; diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index d75f0e7aa9..aaefe22e8a 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -48,6 +48,7 @@ #include <qtsupport/debugginghelperbuildtask.h> #include <qtsupport/qtkitinformation.h> #include <qtsupport/qtversionmanager.h> +#include <utils/algorithm.h> #include <utils/hostosinfo.h> #include <utils/qtcprocess.h> @@ -275,7 +276,7 @@ bool QMakeStep::init() QString proFile = node->path(); QList<ProjectExplorer::Task> tasks = qtVersion->reportIssues(proFile, workingDirectory); - qSort(tasks); + Utils::sort(tasks); if (!tasks.isEmpty()) { bool canContinue = true; diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu.cpp index 68073d63cc..88d9a20257 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu.cpp @@ -34,6 +34,8 @@ #include <modelnode.h> +#include <utils/algorithm.h> + #include <QSet> namespace QmlDesigner { @@ -43,11 +45,6 @@ ModelNodeContextMenu::ModelNodeContextMenu(AbstractView *view) : { } -static bool sortFunction(AbstractDesignerAction * abstractDesignerAction01, AbstractDesignerAction *abstractDesignerAction02) -{ - return abstractDesignerAction01->priority() > abstractDesignerAction02->priority(); -} - static QSet<AbstractDesignerAction* > findMembers(QSet<AbstractDesignerAction* > designerActionSet, const QString &category) { @@ -71,7 +68,9 @@ void populateMenu(QSet<AbstractDesignerAction* > &abstractDesignerActions, abstractDesignerActions.subtract(matchingFactories); QList<AbstractDesignerAction* > matchingFactoriesList = matchingFactories.toList(); - qSort(matchingFactoriesList.begin(), matchingFactoriesList.end(), &sortFunction); + Utils::sort(matchingFactoriesList, [](AbstractDesignerAction *l, AbstractDesignerAction *r) { + return l->priority() > r->priority(); + }); foreach (AbstractDesignerAction* designerAction, matchingFactoriesList) { if (designerAction->type() == AbstractDesignerAction::Menu) { diff --git a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp index c4b88fc7df..5d9600bf97 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodeoperations.cpp @@ -31,7 +31,6 @@ #include "modelnodecontextmenu_helper.h" #include <cmath> -#include <QByteArray> #include <nodeabstractproperty.h> #include <nodemetainfo.h> #include <modelnode.h> @@ -43,6 +42,10 @@ #include <qmlanchors.h> #include <limits> +#include <utils/algorithm.h> + +#include <QByteArray> + namespace QmlDesigner { const PropertyName auxDataString("anchors_"); @@ -479,7 +482,7 @@ static void layoutHelperFunction(const SelectionContext &selectionContext, RewriterTransaction transaction(selectionContext.view(), QByteArrayLiteral("DesignerActionManager|layoutHelperFunction2")); QList<ModelNode> sortedSelectedNodes = selectionContext.selectedModelNodes(); - qSort(sortedSelectedNodes.begin(), sortedSelectedNodes.end(), lessThan); + Utils::sort(sortedSelectedNodes, lessThan); setUpperLeftPostionToNode(layoutNode, sortedSelectedNodes); reparentToNodeAndRemovePositionForModelNodes(layoutNode, sortedSelectedNodes); diff --git a/src/plugins/qmldesigner/components/formeditor/onedimensionalcluster.cpp b/src/plugins/qmldesigner/components/formeditor/onedimensionalcluster.cpp index 04bc59d6ea..e1f0983d7c 100644 --- a/src/plugins/qmldesigner/components/formeditor/onedimensionalcluster.cpp +++ b/src/plugins/qmldesigner/components/formeditor/onedimensionalcluster.cpp @@ -29,6 +29,8 @@ #include "onedimensionalcluster.h" +#include <utils/algorithm.h> + #include <QDebug> namespace QmlDesigner { @@ -92,7 +94,7 @@ QList<OneDimensionalCluster> OneDimensionalCluster::reduceOneDimensionalClusterL QList<OneDimensionalCluster> reducedList; while (true) { - qSort(workingList); + Utils::sort(workingList); reducedList.clear(); bool clusterMerged = false; QListIterator<OneDimensionalCluster> clusterIterator(workingList); diff --git a/src/plugins/qmldesigner/components/formeditor/snapper.cpp b/src/plugins/qmldesigner/components/formeditor/snapper.cpp index a7443ae0bc..56f672b56d 100644 --- a/src/plugins/qmldesigner/components/formeditor/snapper.cpp +++ b/src/plugins/qmldesigner/components/formeditor/snapper.cpp @@ -30,13 +30,15 @@ #include "snapper.h" #include <QDebug> - -#include <limits> #include <QLineF> #include <QPen> #include <QApplication> + +#include <limits> #include <qmlanchors.h> +#include <utils/algorithm.h> + namespace QmlDesigner { Snapper::Snapper() @@ -452,17 +454,6 @@ double Snapper::snappingDistance() const return m_snappingDistance; } -static bool lineXLessThan(const QLineF &firstLine, const QLineF &secondLine) -{ - return firstLine.x1() < secondLine.x2(); -} - -static bool lineYLessThan(const QLineF &firstLine, const QLineF &secondLine) -{ - return firstLine.y1() < secondLine.y2(); -} - - static QLineF mergedHorizontalLine(const QList<QLineF> &lineList) { if (lineList.count() == 1) @@ -504,7 +495,9 @@ static QList<QLineF> mergedHorizontalLines(const QList<QLineF> &lineList) QList<QLineF> mergedLineList; QList<QLineF> sortedLineList(lineList); - qSort(sortedLineList.begin(), sortedLineList.end(), lineYLessThan); + Utils::sort(sortedLineList, [](const QLineF &firstLine, const QLineF &secondLine) { + return firstLine.y1() < secondLine.y2(); + }); QList<QLineF> lineWithTheSameY; QListIterator<QLineF> sortedLineListIterator(sortedLineList); @@ -531,7 +524,9 @@ static QList<QLineF> mergedVerticalLines(const QList<QLineF> &lineList) QList<QLineF> mergedLineList; QList<QLineF> sortedLineList(lineList); - qSort(sortedLineList.begin(), sortedLineList.end(), lineXLessThan); + Utils::sort(sortedLineList, [](const QLineF &firstLine, const QLineF &secondLine) { + return firstLine.x1() < secondLine.x2(); + }); QList<QLineF> lineWithTheSameX; QListIterator<QLineF> sortedLineListIterator(sortedLineList); diff --git a/src/plugins/qmldesigner/components/importmanager/importswidget.cpp b/src/plugins/qmldesigner/components/importmanager/importswidget.cpp index 1fcabf5549..e58ff77120 100644 --- a/src/plugins/qmldesigner/components/importmanager/importswidget.cpp +++ b/src/plugins/qmldesigner/components/importmanager/importswidget.cpp @@ -31,6 +31,8 @@ #include "importlabel.h" #include "importmanagercombobox.h" +#include <utils/algorithm.h> + #include <QVBoxLayout> #include <QComboBox> @@ -118,7 +120,7 @@ void ImportsWidget::setImports(const QList<Import> &imports) QList<Import> sortedImports = imports; - qSort(sortedImports.begin(), sortedImports.end(), importLess); + Utils::sort(sortedImports, importLess); foreach (const Import &import, sortedImports) { ImportLabel *importLabel = new ImportLabel(this); diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp index d0b792b685..c4969943a5 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp @@ -40,6 +40,7 @@ #include <coreplugin/icore.h> #include <qmljs/qmljssimplereader.h> +#include <utils/algorithm.h> #include <utils/fileutils.h> #include <QApplication> @@ -342,7 +343,7 @@ QString PropertyEditorQmlBackend::templateGeneration(NodeMetaInfo type, qmlTemplate += QStringLiteral("SectionLayout {\n"); QList<PropertyName> orderedList = type.propertyNames(); - qSort(orderedList); + Utils::sort(orderedList); bool emptyTemplate = true; diff --git a/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp b/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp index 5825d6eb5e..c3c31107f3 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp @@ -36,6 +36,7 @@ #include <qmldesignerwarning.h> +#include <utils/algorithm.h> #include <utils/hostosinfo.h> #include <QDir> @@ -50,7 +51,7 @@ enum { debug = false }; QT_BEGIN_NAMESPACE -// Allow usage of QFileInfo in qSort +// Allow usage of QFileInfo in Utils::sort static bool operator<(const QFileInfo &file1, const QFileInfo &file2) { @@ -282,8 +283,8 @@ void SubComponentManager::parseDirectory(const QString &canonicalDirPath, bool a newList << qmlFile; } - qSort(monitoredList); - qSort(newList); + Utils::sort(monitoredList); + Utils::sort(newList); if (debug) qDebug() << "monitored list " << monitoredList.size() << "new list " << newList.size(); diff --git a/src/plugins/qmldesigner/designercore/model/model.cpp b/src/plugins/qmldesigner/designercore/model/model.cpp index b0122221e9..f82cc83762 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -38,6 +38,8 @@ #include <QHashIterator> +#include <utils/algorithm.h> + #include "abstractview.h" #include "nodeinstanceview.h" #include "metainfo.h" @@ -1302,7 +1304,7 @@ void ModelPrivate::setSelectedNodes(const QList<InternalNode::Pointer> &selected } sortedSelectedList = sortedSelectedList.toSet().toList(); - qSort(sortedSelectedList); + Utils::sort(sortedSelectedList); if (sortedSelectedList == m_selectedInternalNodeList) return; diff --git a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp index bbee08f0c5..b493514c77 100644 --- a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp @@ -35,6 +35,7 @@ #include <nodelistproperty.h> #include <nodeproperty.h> +#include <utils/algorithm.h> #include <QDebug> @@ -294,7 +295,7 @@ void ModelToTextMerger::applyChanges() void ModelToTextMerger::reindent(const QMap<int, int> &dirtyAreas) const { QList<int> offsets = dirtyAreas.keys(); - qSort(offsets); + Utils::sort(offsets); TextModifier *textModifier = m_rewriterView->textModifier(); foreach (const int offset, offsets) { diff --git a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp index 8752da42e2..0c613c7c43 100644 --- a/src/plugins/qmldesigner/designercore/model/viewmanager.cpp +++ b/src/plugins/qmldesigner/designercore/model/viewmanager.cpp @@ -17,6 +17,7 @@ #include "crumblebar.h" #include <qmldesigner/qmldesignerplugin.h> +#include <utils/algorithm.h> namespace QmlDesigner { @@ -198,11 +199,6 @@ void ViewManager::setNodeInstanceViewKit(ProjectExplorer::Kit *kit) d->nodeInstanceView.setKit(kit); } -static bool widgetInfoLessThan(const WidgetInfo &firstWidgetInfo, const WidgetInfo &secondWidgetInfo) -{ - return firstWidgetInfo.placementPriority < secondWidgetInfo.placementPriority; -} - QList<WidgetInfo> ViewManager::widgetInfos() { QList<WidgetInfo> widgetInfoList; @@ -220,7 +216,9 @@ QList<WidgetInfo> ViewManager::widgetInfos() widgetInfoList.append(abstractView->widgetInfo()); } - qSort(widgetInfoList.begin(), widgetInfoList.end(), widgetInfoLessThan); + Utils::sort(widgetInfoList, [](const WidgetInfo &firstWidgetInfo, const WidgetInfo &secondWidgetInfo) { + return firstWidgetInfo.placementPriority < secondWidgetInfo.placementPriority; + }); return widgetInfoList; } diff --git a/src/plugins/qmljseditor/qmljscompletionassist.cpp b/src/plugins/qmljseditor/qmljscompletionassist.cpp index a471f8c8c6..f51e8f5638 100644 --- a/src/plugins/qmljseditor/qmljscompletionassist.cpp +++ b/src/plugins/qmljseditor/qmljscompletionassist.cpp @@ -59,7 +59,6 @@ #include <QFile> #include <QFileInfo> #include <QDir> -#include <QtAlgorithms> #include <QDirIterator> #include <QStringList> #include <QIcon> @@ -1034,7 +1033,7 @@ void QmlJSAssistProposalModel::filter(const QString &prefix) void QmlJSAssistProposalModel::sort(const QString &prefix) { - qSort(currentItems().first, currentItems().second, QmlJSLessThan(prefix)); + std::sort(currentItems().first, currentItems().second, QmlJSLessThan(prefix)); } bool QmlJSAssistProposalModel::keepPerfectMatch(TextEditor::AssistReason reason) const diff --git a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp index 976857b05b..4d76c94eae 100644 --- a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp +++ b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp @@ -45,6 +45,7 @@ #include <texteditor/basetextdocument.h> #include <texteditor/texteditorconstants.h> #include <texteditor/fontsettings.h> +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QFutureInterface> @@ -444,7 +445,7 @@ private: addMessages(m_semanticInfo.semanticMessages, m_semanticInfo.document); addMessages(m_semanticInfo.staticAnalysisMessages, m_semanticInfo.document); - qSort(m_delayedUses.begin(), m_delayedUses.end(), sortByLinePredicate); + Utils::sort(m_delayedUses, sortByLinePredicate); } m_currentDelayedUse = 0; @@ -513,7 +514,7 @@ private: if (m_uses.isEmpty()) return; - qSort(m_uses.begin(), m_uses.end(), sortByLinePredicate); + Utils::sort(m_uses, sortByLinePredicate); reportResults(m_uses); m_uses.clear(); m_uses.reserve(chunkSize); diff --git a/src/plugins/qmljstools/qmljsfunctionfilter.cpp b/src/plugins/qmljstools/qmljsfunctionfilter.cpp index 32e709b562..4c8d6f515b 100644 --- a/src/plugins/qmljstools/qmljsfunctionfilter.cpp +++ b/src/plugins/qmljstools/qmljsfunctionfilter.cpp @@ -31,6 +31,7 @@ #include "qmljslocatordata.h" #include <coreplugin/editormanager/editormanager.h> +#include <utils/algorithm.h> #include <QStringMatcher> @@ -101,9 +102,9 @@ QList<Core::LocatorFilterEntry> FunctionFilter::matchesFor(QFutureInterface<Core } if (goodEntries.size() < 1000) - qSort(goodEntries.begin(), goodEntries.end(), compareLexigraphically); + Utils::sort(goodEntries, compareLexigraphically); if (betterEntries.size() < 1000) - qSort(betterEntries.begin(), betterEntries.end(), compareLexigraphically); + Utils::sort(betterEntries, compareLexigraphically); betterEntries += goodEntries; return betterEntries; diff --git a/src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp b/src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp index 2cc3498f67..9691dd701e 100644 --- a/src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp +++ b/src/plugins/qmlprofiler/qmlprofilereventsmodelproxy.cpp @@ -31,6 +31,7 @@ #include "qmlprofilermodelmanager.h" #include "qmlprofilerdatamodel.h" +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QVector> @@ -214,7 +215,7 @@ void QmlProfilerEventsModelProxy::loadData(qint64 rangeStart, qint64 rangeEnd) QVector<qint64> eventDurations = durations[it.key()]; if (!eventDurations.isEmpty()) { - qSort(eventDurations); + Utils::sort(eventDurations); stats->medianTime = eventDurations.at(eventDurations.count()/2); } diff --git a/src/plugins/qnx/qnxdeviceprocesslist.cpp b/src/plugins/qnx/qnxdeviceprocesslist.cpp index 58368f3a19..55ea3e5259 100644 --- a/src/plugins/qnx/qnxdeviceprocesslist.cpp +++ b/src/plugins/qnx/qnxdeviceprocesslist.cpp @@ -31,6 +31,8 @@ #include "qnxdeviceprocesslist.h" +#include <utils/algorithm.h> + #include <QRegExp> #include <QStringList> @@ -75,6 +77,6 @@ QList<ProjectExplorer::DeviceProcessItem> QnxDeviceProcessList::buildProcessList } } - qSort(processes); + Utils::sort(processes); return processes; } diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index c56eaa207f..089851e0ff 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -44,6 +44,7 @@ #include <qtsupport/debugginghelperbuildtask.h> #include <qtsupport/qtsupportconstants.h> +#include <utils/algorithm.h> #include <utils/hostosinfo.h> #include <utils/qtcassert.h> #include <utils/runextensions.h> @@ -1180,7 +1181,7 @@ QList<Task> BaseQtVersion::reportIssuesImpl(const QString &proFile, const QStrin QList<Task> BaseQtVersion::reportIssues(const QString &proFile, const QString &buildDir) const { QList<Task> results = reportIssuesImpl(proFile, buildDir); - qSort(results); + Utils::sort(results); return results; } diff --git a/src/plugins/qtsupport/qtversionfactory.cpp b/src/plugins/qtsupport/qtversionfactory.cpp index 21315b3a0f..3fd11d89b3 100644 --- a/src/plugins/qtsupport/qtversionfactory.cpp +++ b/src/plugins/qtsupport/qtversionfactory.cpp @@ -34,6 +34,7 @@ #include <proparser/qmakevfs.h> #include <extensionsystem/pluginmanager.h> +#include <utils/algorithm.h> #include <utils/environment.h> using namespace QtSupport; @@ -42,17 +43,10 @@ using namespace QtSupport::Internal; QtVersionFactory::QtVersionFactory(QObject *parent) : QObject(parent) { - } QtVersionFactory::~QtVersionFactory() { - -} - -bool sortByPriority(QtVersionFactory *a, QtVersionFactory *b) -{ - return a->priority() > b->priority(); } BaseQtVersion *QtVersionFactory::createQtVersionFromQMakePath(const Utils::FileName &qmakePath, bool isAutoDetected, const QString &autoDetectionSource, QString *error) @@ -73,7 +67,9 @@ BaseQtVersion *QtVersionFactory::createQtVersionFromQMakePath(const Utils::FileN evaluator.loadNamedSpec(mkspec.toString(), false); QList<QtVersionFactory *> factories = ExtensionSystem::PluginManager::getObjects<QtVersionFactory>(); - qSort(factories.begin(), factories.end(), &sortByPriority); + Utils::sort(factories, [](const QtVersionFactory *l, const QtVersionFactory *r) { + return l->priority() > r->priority(); + }); foreach (QtVersionFactory *factory, factories) { BaseQtVersion *ver = factory->create(qmakePath, &evaluator, isAutoDetected, autoDetectionSource); diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp index 1c40e8fbb4..17c0bdbbee 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -42,6 +42,7 @@ #include <projectexplorer/toolchainmanager.h> +#include <utils/algorithm.h> #include <utils/buildablehelperlibrary.h> #include <utils/filesystemwatcher.h> #include <utils/hostosinfo.h> @@ -505,7 +506,7 @@ QList<BaseQtVersion *> QtVersionManager::versions() QTC_ASSERT(isLoaded(), return versions); foreach (BaseQtVersion *version, m_versions) versions << version; - qSort(versions.begin(), versions.end(), &qtVersionNumberCompare); + Utils::sort(versions, qtVersionNumberCompare); return versions; } @@ -517,7 +518,7 @@ QList<BaseQtVersion *> QtVersionManager::validVersions() if (v->isValid()) results.append(v); } - qSort(results.begin(), results.end(), &qtVersionNumberCompare); + Utils::sort(results, qtVersionNumberCompare); return results; } @@ -536,15 +537,6 @@ BaseQtVersion *QtVersionManager::version(int id) return it.value(); } -class SortByUniqueId -{ -public: - bool operator()(BaseQtVersion *a, BaseQtVersion *b) - { - return a->uniqueId() < b->uniqueId(); - } -}; - // This function is really simplistic... static bool equals(BaseQtVersion *a, BaseQtVersion *b) { @@ -556,8 +548,9 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions) // We want to preserve the same order as in the settings dialog // so we sort a copy QList<BaseQtVersion *> sortedNewVersions = newVersions; - SortByUniqueId sortByUniqueId; - qSort(sortedNewVersions.begin(), sortedNewVersions.end(), sortByUniqueId); + Utils::sort(sortedNewVersions, [](const BaseQtVersion *l, const BaseQtVersion *r) { + return l->uniqueId() < r->uniqueId(); + }); QList<int> addedVersions; QList<int> removedVersions; diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 0d96047cc8..11c0061c27 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -39,6 +39,7 @@ #include <coreplugin/id.h> #include <projectexplorer/devicesupport/sshdeviceprocesslist.h> #include <ssh/sshremoteprocessrunner.h> +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QTimer> @@ -116,7 +117,7 @@ private: processes.append(process); } - qSort(processes); + Utils::sort(processes); return processes; } }; diff --git a/src/plugins/texteditor/behaviorsettingswidget.cpp b/src/plugins/texteditor/behaviorsettingswidget.cpp index ab3dc7e9db..5b918649b3 100644 --- a/src/plugins/texteditor/behaviorsettingswidget.cpp +++ b/src/plugins/texteditor/behaviorsettingswidget.cpp @@ -36,6 +36,7 @@ #include <texteditor/storagesettings.h> #include <texteditor/behaviorsettings.h> #include <texteditor/extraencodingsettings.h> +#include <utils/algorithm.h> #include <QList> #include <QString> @@ -43,7 +44,6 @@ #include <QTextCodec> #include <QTextStream> -#include <algorithm> #include <functional> namespace TextEditor { @@ -61,7 +61,7 @@ BehaviorSettingsWidget::BehaviorSettingsWidget(QWidget *parent) d->m_ui.setupUi(this); QList<int> mibs = QTextCodec::availableMibs(); - qSort(mibs); + Utils::sort(mibs); QList<int>::iterator firstNonNegative = std::find_if(mibs.begin(), mibs.end(), std::bind2nd(std::greater_equal<int>(), 0)); if (firstNonNegative != mibs.end()) diff --git a/src/plugins/texteditor/codecselector.cpp b/src/plugins/texteditor/codecselector.cpp index f2272c00f1..14faaf7279 100644 --- a/src/plugins/texteditor/codecselector.cpp +++ b/src/plugins/texteditor/codecselector.cpp @@ -30,6 +30,7 @@ #include "codecselector.h" #include "basetextdocument.h" +#include <utils/algorithm.h> #include <utils/itemviews.h> #include <QDebug> @@ -84,7 +85,7 @@ CodecSelector::CodecSelector(QWidget *parent, BaseTextDocument *doc) QStringList encodings; QList<int> mibs = QTextCodec::availableMibs(); - qSort(mibs); + Utils::sort(mibs); QList<int> sortedMibs; foreach (int mib, mibs) if (mib >= 0) diff --git a/src/plugins/texteditor/generichighlighter/manager.cpp b/src/plugins/texteditor/generichighlighter/manager.cpp index cba2ba306c..d5f63db28d 100644 --- a/src/plugins/texteditor/generichighlighter/manager.cpp +++ b/src/plugins/texteditor/generichighlighter/manager.cpp @@ -40,10 +40,10 @@ #include <coreplugin/icore.h> #include <coreplugin/progressmanager/progressmanager.h> +#include <utils/algorithm.h> #include <utils/QtConcurrentTools> #include <utils/networkaccessmanager.h> -#include <QtAlgorithms> #include <QString> #include <QLatin1Char> #include <QLatin1String> @@ -174,12 +174,6 @@ public: static const int kMaxProgress; }; -bool priorityComp(const QSharedPointer<HighlightDefinitionMetaData> &a, - const QSharedPointer<HighlightDefinitionMetaData> &b) -{ - return a->priority > b->priority; -} - const int ManagerProcessor::kMaxProgress = 200; ManagerProcessor::ManagerProcessor() @@ -231,7 +225,10 @@ void ManagerProcessor::process(QFutureInterface<QPair<Manager::RegisterData, } // Consider definitions with higher priority first. - qSort(allMetaData.begin(), allMetaData.end(), &priorityComp); + Utils::sort(allMetaData, [](const QSharedPointer<HighlightDefinitionMetaData> &l, + const QSharedPointer<HighlightDefinitionMetaData> &r) { + return l->priority > r->priority; + }); foreach (const QSharedPointer<HighlightDefinitionMetaData> &metaData, allMetaData) { if (future.isCanceled()) diff --git a/src/plugins/texteditor/syntaxhighlighter.cpp b/src/plugins/texteditor/syntaxhighlighter.cpp index f0ee7bf382..bd99b752bc 100644 --- a/src/plugins/texteditor/syntaxhighlighter.cpp +++ b/src/plugins/texteditor/syntaxhighlighter.cpp @@ -33,6 +33,7 @@ #include "texteditorsettings.h" #include "fontsettings.h" +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <qtimer.h> @@ -659,7 +660,7 @@ void SyntaxHighlighter::setExtraAdditionalFormats(const QTextBlock& block, if (block.layout() == 0 || blockLength == 0) return; - qSort(formats.begin(), formats.end(), byStartOfRange); + Utils::sort(formats, byStartOfRange); const QList<QTextLayout::FormatRange> all = block.layout()->additionalFormats(); QList<QTextLayout::FormatRange> previousSemanticFormats; @@ -678,7 +679,7 @@ void SyntaxHighlighter::setExtraAdditionalFormats(const QTextBlock& block, } if (formats.size() == previousSemanticFormats.size()) { - qSort(previousSemanticFormats.begin(), previousSemanticFormats.end(), byStartOfRange); + Utils::sort(previousSemanticFormats, byStartOfRange); int index = 0; for (; index != formats.size(); ++index) { diff --git a/src/plugins/todo/todoitemsmodel.cpp b/src/plugins/todo/todoitemsmodel.cpp index 606d9635b3..6fdca97d5d 100644 --- a/src/plugins/todo/todoitemsmodel.cpp +++ b/src/plugins/todo/todoitemsmodel.cpp @@ -31,6 +31,8 @@ #include "todoitemsmodel.h" #include "constants.h" +#include <utils/algorithm.h> + #include <QIcon> namespace Todo { @@ -135,7 +137,7 @@ void TodoItemsModel::sort(int column, Qt::SortOrder order) m_currentSortOrder = order; TodoItemSortPredicate predicate(m_currentSortColumn, m_currentSortOrder); - qSort(m_todoItemsList->begin(), m_todoItemsList->end(), predicate); + Utils::sort(*m_todoItemsList, predicate); emit layoutChanged(); } diff --git a/src/plugins/valgrind/callgrind/callgrinddatamodel.cpp b/src/plugins/valgrind/callgrind/callgrinddatamodel.cpp index 42152eecc8..d2825cd542 100644 --- a/src/plugins/valgrind/callgrind/callgrinddatamodel.cpp +++ b/src/plugins/valgrind/callgrind/callgrinddatamodel.cpp @@ -33,6 +33,7 @@ #include "callgrindfunction.h" #include "callgrindcostitem.h" +#include <utils/algorithm.h> #include <utils/qtcassert.h> #include <QChar> @@ -68,23 +69,13 @@ public: QVector<const Function *> m_functions; }; -struct SortFunctions { - SortFunctions(int event) - : m_event(event) - { - } - bool operator()(const Function *left, const Function *right) - { - return left->inclusiveCost(m_event) > right->inclusiveCost(m_event); - } - int m_event; -}; - void DataModel::Private::updateFunctions() { if (m_data) { m_functions = m_data->functions(m_cycleDetection); - qSort(m_functions.begin(), m_functions.end(), SortFunctions(m_event)); + Utils::sort(m_functions, [this](const Function *l, const Function *r) { + return l->inclusiveCost(m_event) > r->inclusiveCost(m_event); + }); } else { m_functions.clear(); } diff --git a/src/plugins/valgrind/suppressiondialog.cpp b/src/plugins/valgrind/suppressiondialog.cpp index 239dac1bf2..8a7a0d2a05 100644 --- a/src/plugins/valgrind/suppressiondialog.cpp +++ b/src/plugins/valgrind/suppressiondialog.cpp @@ -43,6 +43,7 @@ #include <projectexplorer/project.h> #include <projectexplorer/projectnodes.h> +#include <utils/algorithm.h> #include <utils/pathchooser.h> #include <utils/fileutils.h> #include <utils/qtcassert.h> @@ -116,11 +117,6 @@ static bool equalSuppression(const Error &error, const Error &suppressed) return true; } -bool sortIndizesReverse(const QModelIndex &l, const QModelIndex &r) -{ - return l.row() > r.row(); -} - SuppressionDialog::SuppressionDialog(MemcheckErrorView *view, const QList<Error> &errors) : m_view(view), m_settings(view->settings()), @@ -224,7 +220,9 @@ void SuppressionDialog::accept() m_settings->addSuppressionFiles(QStringList(path)); QModelIndexList indices = m_view->selectionModel()->selectedRows(); - qSort(indices.begin(), indices.end(), sortIndizesReverse); + Utils::sort(indices, [](const QModelIndex &l, const QModelIndex &r) { + return l.row() > r.row(); + }); QAbstractItemModel *model = m_view->model(); foreach (const QModelIndex &index, indices) { bool removed = model->removeRow(index.row()); diff --git a/src/plugins/valgrind/valgrindconfigwidget.cpp b/src/plugins/valgrind/valgrindconfigwidget.cpp index 6efc85687c..e46758afd9 100644 --- a/src/plugins/valgrind/valgrindconfigwidget.cpp +++ b/src/plugins/valgrind/valgrindconfigwidget.cpp @@ -34,6 +34,7 @@ #include "ui_valgrindconfigwidget.h" +#include <utils/algorithm.h> #include <utils/hostosinfo.h> #include <utils/qtcassert.h> @@ -216,11 +217,6 @@ void ValgrindConfigWidget::slotSuppressionsAdded(const QStringList &files) m_model->appendRow(new QStandardItem(file)); } -bool sortReverse(int l, int r) -{ - return l > r; -} - void ValgrindConfigWidget::slotRemoveSuppression() { // remove from end so no rows get invalidated @@ -232,7 +228,7 @@ void ValgrindConfigWidget::slotRemoveSuppression() removed << index.data().toString(); } - qSort(rows.begin(), rows.end(), sortReverse); + Utils::sort(rows, std::greater<int>()); foreach (int row, rows) m_model->removeRow(row); diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp index 11d3e2a411..c1d14cee1e 100644 --- a/src/plugins/welcome/welcomeplugin.cpp +++ b/src/plugins/welcome/welcomeplugin.cpp @@ -37,6 +37,7 @@ #include <coreplugin/modemanager.h> #include <coreplugin/iwizardfactory.h> +#include <utils/algorithm.h> #include <utils/fileutils.h> #include <utils/hostosinfo.h> #include <utils/styledbar.h> @@ -184,11 +185,6 @@ void WelcomeMode::sceneGraphError(QQuickWindow::SceneGraphError, const QString & } #endif // Qt 5.3 -bool sortFunction(Utils::IWelcomePage * a, Utils::IWelcomePage *b) -{ - return a->priority() < b->priority(); -} - void WelcomeMode::facilitateQml(QQmlEngine * /*engine*/) { } @@ -214,7 +210,9 @@ void WelcomeMode::initPlugins() ctx->setContextProperty(QLatin1String("welcomeMode"), this); QList<Utils::IWelcomePage*> duplicatePlugins = PluginManager::getObjects<Utils::IWelcomePage>(); - qSort(duplicatePlugins.begin(), duplicatePlugins.end(), &sortFunction); + Utils::sort(duplicatePlugins, [](const Utils::IWelcomePage *l, const Utils::IWelcomePage *r) { + return l->priority() < r->priority(); + }); QList<Utils::IWelcomePage*> plugins; QHash<Utils::IWelcomePage::Id, Utils::IWelcomePage*> pluginHash; |