diff options
author | Eike Ziller <eike.ziller@qt.io> | 2017-08-17 17:29:25 +0200 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2017-08-17 17:29:25 +0200 |
commit | a0a42ff7bd862887bce281814f65179d88eb1de5 (patch) | |
tree | b2182dcbbb1bef16fec1c600b8cae67e327e6ca8 /src/plugins/projectexplorer/projectmodels.cpp | |
parent | cf1edc1fb536287c1cb9760014c5dab9690bbf6a (diff) | |
parent | a951448c4dceca637992ea29df832de190f22130 (diff) | |
download | qt-creator-a0a42ff7bd862887bce281814f65179d88eb1de5.tar.gz |
Merge remote-tracking branch 'origin/4.4'
Conflicts:
src/plugins/debugger/gdb/gdbengine.cpp
Change-Id: I8a7c8ca07d6d6005f5d39b8f1477ebbc7a299fbf
Diffstat (limited to 'src/plugins/projectexplorer/projectmodels.cpp')
-rw-r--r-- | src/plugins/projectexplorer/projectmodels.cpp | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp index c36f5c0297..74a600eb0a 100644 --- a/src/plugins/projectexplorer/projectmodels.cpp +++ b/src/plugins/projectexplorer/projectmodels.cpp @@ -198,6 +198,16 @@ bool FlatModel::setData(const QModelIndex &index, const QVariant &value, int rol return true; } +static bool compareProjectNames(const WrapperNode *lhs, const WrapperNode *rhs) +{ + Node *p1 = lhs->m_node; + Node *p2 = rhs->m_node; + const int displayNameResult = caseFriendlyCompare(p1->displayName(), p2->displayName()); + if (displayNameResult != 0) + return displayNameResult < 0; + return p1 < p2; // sort by pointer value +} + void FlatModel::addOrRebuildProjectModel(Project *project) { WrapperNode *container = nodeForProject(project); @@ -205,7 +215,7 @@ void FlatModel::addOrRebuildProjectModel(Project *project) container->removeChildren(); } else { container = new WrapperNode(project->containerNode()); - rootItem()->appendChild(container); + rootItem()->insertOrderedChild(container, &compareProjectNames); } QSet<Node *> seen; @@ -260,16 +270,7 @@ void FlatModel::updateSubtree(FolderNode *node) void FlatModel::rebuildModel() { - QList<Project *> projects = SessionManager::projects(); - QTC_CHECK(projects.size() == rootItem()->childCount()); - - Utils::sort(projects, [](Project *p1, Project *p2) { - const int displayNameResult = caseFriendlyCompare(p1->displayName(), p2->displayName()); - if (displayNameResult != 0) - return displayNameResult < 0; - return p1 < p2; // sort by pointer value - }); - + const QList<Project *> projects = SessionManager::projects(); for (Project *project : projects) addOrRebuildProjectModel(project); } |