diff --git a/src/libs/utils/algorithm.h b/src/libs/utils/algorithm.h index f75dae1f443..c1cb7ea8948 100644 --- a/src/libs/utils/algorithm.h +++ b/src/libs/utils/algorithm.h @@ -113,6 +113,18 @@ auto transform(const QList &container, F function) -> QList +inline void sort(Container &c) +{ + std::sort(c.begin(), c.end()); +} + +template +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 5268fe66946..a08de8503e5 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #include #include @@ -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()); + Utils::sort(m_availableNdkPlatforms, std::greater()); // detect toolchain host QStringList hostPatterns; @@ -494,7 +495,7 @@ QVector 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 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 bdd9e7b6e7e..55914e9acec 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -50,6 +50,7 @@ #include #include #include +#include #include #include @@ -868,7 +869,11 @@ QVector 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 75b2fe2b72d..ca5e35d63b2 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 338954849aa..fa47a0b9eb9 100644 --- a/src/plugins/android/androidmanifesteditorwidget.cpp +++ b/src/plugins/android/androidmanifesteditorwidget.cpp @@ -48,6 +48,7 @@ #include #include #include +#include #include #include @@ -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 72bc6dbfae7..eadaf40f0a4 100644 --- a/src/plugins/clangcodemodel/clangcompletion.cpp +++ b/src/plugins/clangcodemodel/clangcompletion.cpp @@ -173,7 +173,7 @@ static QList unfilteredCompletion(const ClangCompletionAss } QList 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 29a3ca08805..1ea29ff15a5 100644 --- a/src/plugins/clearcase/clearcaseplugin.cpp +++ b/src/plugins/clearcase/clearcaseplugin.cpp @@ -56,6 +56,7 @@ #include #include #include +#include #include #include #include @@ -1906,7 +1907,7 @@ QList 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 81476f52747..857cd919d53 100644 --- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp +++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp @@ -55,6 +55,7 @@ #include #include #include +#include #include #include #include @@ -432,8 +433,8 @@ void CMakeProject::buildTree(CMakeProjectNode *rootNode, QList 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 added; QList deleted; diff --git a/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp b/src/plugins/coreplugin/dialogs/externaltoolconfig.cpp index 156cdb720b3..a9c1a2977dc 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 #include #include #include @@ -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 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 bea613a2f1b..b28e3f0c870 100644 --- a/src/plugins/coreplugin/helpmanager.cpp +++ b/src/plugins/coreplugin/helpmanager.cpp @@ -30,6 +30,7 @@ #include "helpmanager.h" #include +#include #include #include @@ -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 6f29e95ce9b..4873ac8924b 100644 --- a/src/plugins/coreplugin/locator/locator.cpp +++ b/src/plugins/coreplugin/locator/locator.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #include #include @@ -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(); - 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 f2a589168a7..e4aa08a6fa3 100644 --- a/src/plugins/coreplugin/mimetypesettings.cpp +++ b/src/plugins/coreplugin/mimetypesettings.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -47,19 +48,10 @@ #include #include #include -#include - -#include 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::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 4a060e41b31..baaa38615cf 100644 --- a/src/plugins/coreplugin/outputpanemanager.cpp +++ b/src/plugins/coreplugin/outputpanemanager.cpp @@ -43,6 +43,7 @@ #include +#include #include #include #include @@ -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(); - 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 a18b6a05c25..cc758e006b7 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 #include #include @@ -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 b4f700781ff..6c463e7d190 100644 --- a/src/plugins/coreplugin/sidebarwidget.cpp +++ b/src/plugins/coreplugin/sidebarwidget.cpp @@ -32,6 +32,7 @@ #include "navigationsubwidget.h" #include +#include #include #include @@ -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 18455010da4..8c620481011 100644 --- a/src/plugins/coreplugin/vcsmanager.cpp +++ b/src/plugins/coreplugin/vcsmanager.cpp @@ -40,6 +40,7 @@ #include #include +#include #include #include @@ -221,11 +222,6 @@ void VcsManager::extensionsInitialized() } } -static bool longerThanPath(QPair &pair1, QPair &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 dc1ff05915a..b24b5c98145 100644 --- a/src/plugins/cppeditor/cpptypehierarchy.cpp +++ b/src/plugins/cppeditor/cpptypehierarchy.cpp @@ -35,6 +35,7 @@ #include "cppeditorplugin.h" #include +#include #include #include @@ -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 sortClasses(const QList &cppClasses) { QList 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 9d61ed29f26..6944ec6c4ff 100644 --- a/src/plugins/cppeditor/fileandtokenactions_test.cpp +++ b/src/plugins/cppeditor/fileandtokenactions_test.cpp @@ -42,13 +42,13 @@ #include #include #include +#include #include #include #include #include -#include #include #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 3f69c86ac3d..ca6684a5efe 100644 --- a/src/plugins/cpptools/cppchecksymbols.cpp +++ b/src/plugins/cpptools/cppchecksymbols.cpp @@ -31,6 +31,7 @@ #include "cpplocalsymbols.h" +#include #include #include @@ -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 680944b6772..cdad0fdddf0 100644 --- a/src/plugins/cpptools/cppcodemodelinspectordumper.cpp +++ b/src/plugins/cpptools/cppcodemodelinspectordumper.cpp @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -149,7 +150,7 @@ QString Utils::toString(const QList &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 5b975217daa..29f98826625 100644 --- a/src/plugins/cpptools/cppcodemodelsettingspage.cpp +++ b/src/plugins/cpptools/cppcodemodelsettingspage.cpp @@ -32,6 +32,7 @@ #include "ui_cppcodemodelsettingspage.h" #include +#include #include @@ -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 252a2173383..a01fa5a9b87 100644 --- a/src/plugins/cpptools/includeutils.cpp +++ b/src/plugins/cpptools/includeutils.cpp @@ -34,6 +34,7 @@ #include #include +#include #include #include @@ -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 LineForNewIncludeDirective::getGroupsByIncludeType( QList IncludeGroup::detectIncludeGroupsByNewLines(QList &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 result; diff --git a/src/plugins/cpptools/typehierarchybuilder_test.cpp b/src/plugins/cpptools/typehierarchybuilder_test.cpp index cc175909c77..a96e3224546 100644 --- a/src/plugins/cpptools/typehierarchybuilder_test.cpp +++ b/src/plugins/cpptools/typehierarchybuilder_test.cpp @@ -35,6 +35,7 @@ #include #include +#include #include #include @@ -48,12 +49,6 @@ Q_DECLARE_METATYPE(QList) 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 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 576713e67be..3d5aeaec0eb 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -31,6 +31,7 @@ #include "debuggercore.h" #include "debuggerrunconfigurationaspect.h" +#include #include #include #include @@ -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 e30b928c9d1..41bc6c05b50 100644 --- a/src/plugins/debugger/gdb/gdbengine.cpp +++ b/src/plugins/debugger/gdb/gdbengine.cpp @@ -68,6 +68,7 @@ #include #include #include +#include #include #include #include @@ -1000,7 +1001,7 @@ int GdbEngine::commandTimeoutTime() const void GdbEngine::commandTimeout() { QList 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 a63b69159b2..591e16e6006 100644 --- a/src/plugins/debugger/threadshandler.cpp +++ b/src/plugins/debugger/threadshandler.cpp @@ -33,6 +33,7 @@ #include "debuggerprotocol.h" #include "watchutils.h" +#include #include #include @@ -253,30 +254,18 @@ Qt::ItemFlags ThreadsHandler::flags(const QModelIndex &index) const return stopped ? QAbstractTableModel::flags(index) : Qt::ItemFlags(0); } -struct Sorter -{ - 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); - if (v1 == v2) - return false; - // FIXME: Use correct toXXX(); - return (v1.toString() < v2.toString()) ^ (m_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)); + 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()) ^ (order == Qt::DescendingOrder); + } +); layoutChanged(); } diff --git a/src/plugins/debugger/watchhandler.cpp b/src/plugins/debugger/watchhandler.cpp index 32458acd58e..ec1e6623c6f 100644 --- a/src/plugins/debugger/watchhandler.cpp +++ b/src/plugins/debugger/watchhandler.cpp @@ -40,13 +40,13 @@ #include "imageviewer.h" #include "watchutils.h" +#include #include #include #include #include #include -#include #include #include @@ -2120,7 +2120,7 @@ void WatchHandler::editTypeFormats(bool includeLocals, const QByteArray &iname) //QHashIterator it(m_reportedTypeFormats); QList 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 0ac0c5d1dec..73878e5f83c 100644 --- a/src/plugins/git/commitdata.cpp +++ b/src/plugins/git/commitdata.cpp @@ -28,6 +28,7 @@ ****************************************************************************/ #include "commitdata.h" +#include #include #include @@ -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 89aed1dbe21..b3c89b64e0b 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 #include #include @@ -367,7 +368,7 @@ QList 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 fe1e30b875b..fd4b44e9ed3 100644 --- a/src/plugins/projectexplorer/allprojectsfilter.cpp +++ b/src/plugins/projectexplorer/allprojectsfilter.cpp @@ -32,6 +32,8 @@ #include "session.h" #include "project.h" +#include + 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 641af4b9316..a4eb75dbdd7 100644 --- a/src/plugins/projectexplorer/buildconfigurationmodel.cpp +++ b/src/plugins/projectexplorer/buildconfigurationmodel.cpp @@ -31,6 +31,8 @@ #include "target.h" #include "buildconfiguration.h" +#include + 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 dabee908b71..50917bb598f 100644 --- a/src/plugins/projectexplorer/currentprojectfilter.cpp +++ b/src/plugins/projectexplorer/currentprojectfilter.cpp @@ -31,6 +31,8 @@ #include "projectexplorer.h" #include "project.h" +#include + #include 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 3357ad96490..6f1e9cb7374 100644 --- a/src/plugins/projectexplorer/deployconfigurationmodel.cpp +++ b/src/plugins/projectexplorer/deployconfigurationmodel.cpp @@ -31,6 +31,8 @@ #include "target.h" #include "deployconfiguration.h" +#include + 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 1de07772c3c..6dc7a182def 100644 --- a/src/plugins/projectexplorer/kit.cpp +++ b/src/plugins/projectexplorer/kit.cpp @@ -33,6 +33,7 @@ #include "ioutputparser.h" #include "osparser.h" +#include #include #include @@ -254,7 +255,7 @@ QList 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 75e677485f1..65f40ff94e0 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -33,6 +33,7 @@ #include "kitmanager.h" #include "target.h" +#include #include #include @@ -731,23 +732,6 @@ bool MiniProjectTargetSelector::event(QEvent *event) } -class IndexSorter -{ -public: - enum SortOrder { Less = 0, Greater = 1}; - - IndexSorter(QVector 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 m_result; - SortOrder m_order; -}; - // does some fancy calculations to ensure proper widths for the list widgets QVector MiniProjectTargetSelector::listWidgetWidths(int minSize, int maxSize) { @@ -796,8 +780,9 @@ QVector 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 5aa762b1834..a8d5222bbda 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -117,6 +117,7 @@ #include #include #include +#include #include #include #include @@ -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 5eece065324..18989538712 100644 --- a/src/plugins/projectexplorer/projectmodels.cpp +++ b/src/plugins/projectexplorer/projectmodels.cpp @@ -34,6 +34,7 @@ #include "projectexplorer.h" #include +#include #include #include @@ -444,7 +445,7 @@ QList FlatModel::childNodes(FolderNode *parentNode, const QSet &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 7af657df80a..ecc0c382250 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include @@ -406,7 +407,7 @@ void FolderNode::removeFileNodes(const QList &files) return; QList 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 &subFolders) return; QList 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 &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 &subProjects) QList 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 &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 &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 2b16031030d..971d262b7fb 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -41,6 +41,7 @@ #include #include +#include #include #include @@ -340,7 +341,7 @@ void ProjectWindow::registerProject(ProjectExplorer::Project *project) // Add the project specific pages QList factories = ExtensionSystem::PluginManager::getObjects(); - 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 factories = ExtensionSystem::PluginManager::getObjects(); - 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 b7b2d93e5cc..777fb0bfd06 100644 --- a/src/plugins/projectexplorer/projectwizardpage.cpp +++ b/src/plugins/projectexplorer/projectwizardpage.cpp @@ -32,6 +32,7 @@ #include "ui_projectwizardpage.h" #include +#include #include #include #include @@ -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 36a8f6284b0..187c2bf9c8c 100644 --- a/src/plugins/projectexplorer/runconfigurationmodel.cpp +++ b/src/plugins/projectexplorer/runconfigurationmodel.cpp @@ -31,6 +31,8 @@ #include "target.h" #include "runconfiguration.h" +#include + 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 0d88239ab13..8bc97bc17f1 100644 --- a/src/plugins/projectexplorer/runsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/runsettingspropertiespage.cpp @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -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 43940ddcdc1..7e78e691976 100644 --- a/src/plugins/projectexplorer/targetsettingspanel.cpp +++ b/src/plugins/projectexplorer/targetsettingspanel.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include #include @@ -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 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 913d1dfa73a..63ba7c77f9d 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -56,11 +56,11 @@ #include #include +#include #include #include #include #include -#include #include #include @@ -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 toAdd; QList toRemove; diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 9bc24e5d092..857d04b593e 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 ec92c63acc2..63c99bd5dbb 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectconfigwidget.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeprojectconfigwidget.cpp @@ -37,6 +37,7 @@ #include #include +#include #include using namespace QmakeProjectManager; @@ -248,7 +249,7 @@ void QmakeProjectConfigWidget::updateProblemLabel() buildDirectory = m_buildConfiguration->buildDirectory().toString(); QList issues; issues = version->reportIssues(proFileName, buildDirectory); - qSort(issues); + Utils::sort(issues); if (!issues.isEmpty() || !shadowBuildWarning.isEmpty()) { QString text = QLatin1String("") + shadowBuildWarning; diff --git a/src/plugins/qmakeprojectmanager/qmakestep.cpp b/src/plugins/qmakeprojectmanager/qmakestep.cpp index d75f0e7aa9e..aaefe22e8af 100644 --- a/src/plugins/qmakeprojectmanager/qmakestep.cpp +++ b/src/plugins/qmakeprojectmanager/qmakestep.cpp @@ -48,6 +48,7 @@ #include #include #include +#include #include #include @@ -275,7 +276,7 @@ bool QMakeStep::init() QString proFile = node->path(); QList 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 68073d63cc9..88d9a202570 100644 --- a/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu.cpp +++ b/src/plugins/qmldesigner/components/componentcore/modelnodecontextmenu.cpp @@ -34,6 +34,8 @@ #include +#include + #include namespace QmlDesigner { @@ -43,11 +45,6 @@ ModelNodeContextMenu::ModelNodeContextMenu(AbstractView *view) : { } -static bool sortFunction(AbstractDesignerAction * abstractDesignerAction01, AbstractDesignerAction *abstractDesignerAction02) -{ - return abstractDesignerAction01->priority() > abstractDesignerAction02->priority(); -} - static QSet findMembers(QSet designerActionSet, const QString &category) { @@ -71,7 +68,9 @@ void populateMenu(QSet &abstractDesignerActions, abstractDesignerActions.subtract(matchingFactories); QList 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 c4b88fc7df4..5d9600bf977 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 -#include #include #include #include @@ -43,6 +42,10 @@ #include #include +#include + +#include + namespace QmlDesigner { const PropertyName auxDataString("anchors_"); @@ -479,7 +482,7 @@ static void layoutHelperFunction(const SelectionContext &selectionContext, RewriterTransaction transaction(selectionContext.view(), QByteArrayLiteral("DesignerActionManager|layoutHelperFunction2")); QList 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 04bc59d6ead..e1f0983d7c8 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 + #include namespace QmlDesigner { @@ -92,7 +94,7 @@ QList OneDimensionalCluster::reduceOneDimensionalClusterL QList reducedList; while (true) { - qSort(workingList); + Utils::sort(workingList); reducedList.clear(); bool clusterMerged = false; QListIterator clusterIterator(workingList); diff --git a/src/plugins/qmldesigner/components/formeditor/snapper.cpp b/src/plugins/qmldesigner/components/formeditor/snapper.cpp index a7443ae0bc8..56f672b56dd 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 - -#include #include #include #include + +#include #include +#include + 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 &lineList) { if (lineList.count() == 1) @@ -504,7 +495,9 @@ static QList mergedHorizontalLines(const QList &lineList) QList mergedLineList; QList sortedLineList(lineList); - qSort(sortedLineList.begin(), sortedLineList.end(), lineYLessThan); + Utils::sort(sortedLineList, [](const QLineF &firstLine, const QLineF &secondLine) { + return firstLine.y1() < secondLine.y2(); + }); QList lineWithTheSameY; QListIterator sortedLineListIterator(sortedLineList); @@ -531,7 +524,9 @@ static QList mergedVerticalLines(const QList &lineList) QList mergedLineList; QList sortedLineList(lineList); - qSort(sortedLineList.begin(), sortedLineList.end(), lineXLessThan); + Utils::sort(sortedLineList, [](const QLineF &firstLine, const QLineF &secondLine) { + return firstLine.x1() < secondLine.x2(); + }); QList lineWithTheSameX; QListIterator sortedLineListIterator(sortedLineList); diff --git a/src/plugins/qmldesigner/components/importmanager/importswidget.cpp b/src/plugins/qmldesigner/components/importmanager/importswidget.cpp index 1fcabf5549e..e58ff771209 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 + #include #include @@ -118,7 +120,7 @@ void ImportsWidget::setImports(const QList &imports) QList 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 d0b792b685b..c4969943a5a 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp @@ -40,6 +40,7 @@ #include #include +#include #include #include @@ -342,7 +343,7 @@ QString PropertyEditorQmlBackend::templateGeneration(NodeMetaInfo type, qmlTemplate += QStringLiteral("SectionLayout {\n"); QList 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 5825d6eb5e9..c3c31107f35 100644 --- a/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp +++ b/src/plugins/qmldesigner/designercore/metainfo/subcomponentmanager.cpp @@ -36,6 +36,7 @@ #include +#include #include #include @@ -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 b0122221e9f..f82cc837621 100644 --- a/src/plugins/qmldesigner/designercore/model/model.cpp +++ b/src/plugins/qmldesigner/designercore/model/model.cpp @@ -38,6 +38,8 @@ #include +#include + #include "abstractview.h" #include "nodeinstanceview.h" #include "metainfo.h" @@ -1302,7 +1304,7 @@ void ModelPrivate::setSelectedNodes(const QList &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 bbee08f0c59..b493514c77d 100644 --- a/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/modeltotextmerger.cpp @@ -35,6 +35,7 @@ #include #include +#include #include @@ -294,7 +295,7 @@ void ModelToTextMerger::applyChanges() void ModelToTextMerger::reindent(const QMap &dirtyAreas) const { QList 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 8752da42e29..0c613c7c434 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 +#include 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 ViewManager::widgetInfos() { QList widgetInfoList; @@ -220,7 +216,9 @@ QList 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 a471f8c8c6a..f51e8f5638a 100644 --- a/src/plugins/qmljseditor/qmljscompletionassist.cpp +++ b/src/plugins/qmljseditor/qmljscompletionassist.cpp @@ -59,7 +59,6 @@ #include #include #include -#include #include #include #include @@ -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 976857b05bb..4d76c94eae0 100644 --- a/src/plugins/qmljseditor/qmljssemantichighlighter.cpp +++ b/src/plugins/qmljseditor/qmljssemantichighlighter.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -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 32e709b5627..4c8d6f515b0 100644 --- a/src/plugins/qmljstools/qmljsfunctionfilter.cpp +++ b/src/plugins/qmljstools/qmljsfunctionfilter.cpp @@ -31,6 +31,7 @@ #include "qmljslocatordata.h" #include +#include #include @@ -101,9 +102,9 @@ QList FunctionFilter::matchesFor(QFutureInterface #include #include @@ -214,7 +215,7 @@ void QmlProfilerEventsModelProxy::loadData(qint64 rangeStart, qint64 rangeEnd) QVector 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 58368f3a199..55ea3e52598 100644 --- a/src/plugins/qnx/qnxdeviceprocesslist.cpp +++ b/src/plugins/qnx/qnxdeviceprocesslist.cpp @@ -31,6 +31,8 @@ #include "qnxdeviceprocesslist.h" +#include + #include #include @@ -75,6 +77,6 @@ QList QnxDeviceProcessList::buildProcessList } } - qSort(processes); + Utils::sort(processes); return processes; } diff --git a/src/plugins/qtsupport/baseqtversion.cpp b/src/plugins/qtsupport/baseqtversion.cpp index c56eaa207f9..089851e0ff4 100644 --- a/src/plugins/qtsupport/baseqtversion.cpp +++ b/src/plugins/qtsupport/baseqtversion.cpp @@ -44,6 +44,7 @@ #include #include +#include #include #include #include @@ -1180,7 +1181,7 @@ QList BaseQtVersion::reportIssuesImpl(const QString &proFile, const QStrin QList BaseQtVersion::reportIssues(const QString &proFile, const QString &buildDir) const { QList 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 21315b3a0f9..3fd11d89b31 100644 --- a/src/plugins/qtsupport/qtversionfactory.cpp +++ b/src/plugins/qtsupport/qtversionfactory.cpp @@ -34,6 +34,7 @@ #include #include +#include #include 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 factories = ExtensionSystem::PluginManager::getObjects(); - 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 1c40e8fbb4d..17c0bdbbeed 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -42,6 +42,7 @@ #include +#include #include #include #include @@ -505,7 +506,7 @@ QList 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 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 newVersions) // We want to preserve the same order as in the settings dialog // so we sort a copy QList 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 addedVersions; QList removedVersions; diff --git a/src/plugins/remotelinux/linuxdevice.cpp b/src/plugins/remotelinux/linuxdevice.cpp index 0d96047cc87..11c0061c27d 100644 --- a/src/plugins/remotelinux/linuxdevice.cpp +++ b/src/plugins/remotelinux/linuxdevice.cpp @@ -39,6 +39,7 @@ #include #include #include +#include #include #include @@ -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 ab3dc7e9dba..5b918649b3c 100644 --- a/src/plugins/texteditor/behaviorsettingswidget.cpp +++ b/src/plugins/texteditor/behaviorsettingswidget.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include @@ -43,7 +44,6 @@ #include #include -#include #include namespace TextEditor { @@ -61,7 +61,7 @@ BehaviorSettingsWidget::BehaviorSettingsWidget(QWidget *parent) d->m_ui.setupUi(this); QList mibs = QTextCodec::availableMibs(); - qSort(mibs); + Utils::sort(mibs); QList::iterator firstNonNegative = std::find_if(mibs.begin(), mibs.end(), std::bind2nd(std::greater_equal(), 0)); if (firstNonNegative != mibs.end()) diff --git a/src/plugins/texteditor/codecselector.cpp b/src/plugins/texteditor/codecselector.cpp index f2272c00f14..14faaf72799 100644 --- a/src/plugins/texteditor/codecselector.cpp +++ b/src/plugins/texteditor/codecselector.cpp @@ -30,6 +30,7 @@ #include "codecselector.h" #include "basetextdocument.h" +#include #include #include @@ -84,7 +85,7 @@ CodecSelector::CodecSelector(QWidget *parent, BaseTextDocument *doc) QStringList encodings; QList mibs = QTextCodec::availableMibs(); - qSort(mibs); + Utils::sort(mibs); QList 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 cba2ba306cb..d5f63db28da 100644 --- a/src/plugins/texteditor/generichighlighter/manager.cpp +++ b/src/plugins/texteditor/generichighlighter/manager.cpp @@ -40,10 +40,10 @@ #include #include +#include #include #include -#include #include #include #include @@ -174,12 +174,6 @@ public: static const int kMaxProgress; }; -bool priorityComp(const QSharedPointer &a, - const QSharedPointer &b) -{ - return a->priority > b->priority; -} - const int ManagerProcessor::kMaxProgress = 200; ManagerProcessor::ManagerProcessor() @@ -231,7 +225,10 @@ void ManagerProcessor::process(QFutureInterface &l, + const QSharedPointer &r) { + return l->priority > r->priority; + }); foreach (const QSharedPointer &metaData, allMetaData) { if (future.isCanceled()) diff --git a/src/plugins/texteditor/syntaxhighlighter.cpp b/src/plugins/texteditor/syntaxhighlighter.cpp index f0ee7bf3822..bd99b752bc4 100644 --- a/src/plugins/texteditor/syntaxhighlighter.cpp +++ b/src/plugins/texteditor/syntaxhighlighter.cpp @@ -33,6 +33,7 @@ #include "texteditorsettings.h" #include "fontsettings.h" +#include #include #include @@ -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 all = block.layout()->additionalFormats(); QList 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 606d9635b30..6fdca97d5de 100644 --- a/src/plugins/todo/todoitemsmodel.cpp +++ b/src/plugins/todo/todoitemsmodel.cpp @@ -31,6 +31,8 @@ #include "todoitemsmodel.h" #include "constants.h" +#include + #include 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 42152eecc87..d2825cd5427 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 #include #include @@ -68,23 +69,13 @@ public: QVector 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 239dac1bf2d..8a7a0d2a051 100644 --- a/src/plugins/valgrind/suppressiondialog.cpp +++ b/src/plugins/valgrind/suppressiondialog.cpp @@ -43,6 +43,7 @@ #include #include +#include #include #include #include @@ -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 &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 6efc85687c9..e46758afd91 100644 --- a/src/plugins/valgrind/valgrindconfigwidget.cpp +++ b/src/plugins/valgrind/valgrindconfigwidget.cpp @@ -34,6 +34,7 @@ #include "ui_valgrindconfigwidget.h" +#include #include #include @@ -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()); foreach (int row, rows) m_model->removeRow(row); diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp index 11d3e2a411b..c1d14cee1e9 100644 --- a/src/plugins/welcome/welcomeplugin.cpp +++ b/src/plugins/welcome/welcomeplugin.cpp @@ -37,6 +37,7 @@ #include #include +#include #include #include #include @@ -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 duplicatePlugins = PluginManager::getObjects(); - qSort(duplicatePlugins.begin(), duplicatePlugins.end(), &sortFunction); + Utils::sort(duplicatePlugins, [](const Utils::IWelcomePage *l, const Utils::IWelcomePage *r) { + return l->priority() < r->priority(); + }); QList plugins; QHash pluginHash;