From 69b378eb73e5c14c081e31c9a6bc2129dc3a689b Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Tue, 1 Nov 2016 17:08:39 +0100 Subject: [PATCH] ProjectExplorer: Expose sortByPath operator on project nodes This is universally useful, so expose it. Change-Id: I9cceee076397c7d690d8d34ef8ac815059e4454d Reviewed-by: Tim Jenssen --- src/plugins/projectexplorer/projectnodes.cpp | 18 +++++++++--------- src/plugins/projectexplorer/projectnodes.h | 2 ++ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index d53260ac52e..1df2142397a 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -186,6 +186,11 @@ SessionNode *Node::asSessionNode() return nullptr; } +bool Node::sortByPath(Node *a, Node *b) +{ + return a->filePath() < b->filePath(); +} + void Node::setParentFolderNode(FolderNode *parentFolder) { m_folderNode = parentFolder; @@ -371,24 +376,19 @@ FolderNode *FolderNode::findOrCreateSubFolderNode(const QString &directory) return parent; } -static bool sortNodesByPath(Node *a, Node *b) -{ - return a->filePath() < b->filePath(); -} - void FolderNode::buildTree(QList &files) { // Gather old list QList oldFiles = recursiveFileNodes(); - Utils::sort(oldFiles, sortNodesByPath); - Utils::sort(files, sortNodesByPath); + Utils::sort(oldFiles, Node::sortByPath); + Utils::sort(files, Node::sortByPath); QList added; QList deleted; - ProjectExplorer::compareSortedLists(oldFiles, files, deleted, added, sortNodesByPath); + ProjectExplorer::compareSortedLists(oldFiles, files, deleted, added, Node::sortByPath); - qDeleteAll(ProjectExplorer::subtractSortedList(files, added, sortNodesByPath)); + qDeleteAll(ProjectExplorer::subtractSortedList(files, added, Node::sortByPath)); QHash > addedFolderMapping; QHash > deletedFolderMapping; diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h index e4117b82db4..9c46130092b 100644 --- a/src/plugins/projectexplorer/projectnodes.h +++ b/src/plugins/projectexplorer/projectnodes.h @@ -129,6 +129,8 @@ public: virtual ProjectNode *asProjectNode(); virtual SessionNode *asSessionNode(); + static bool sortByPath(Node *a, Node *b); + protected: Node(NodeType nodeType, const Utils::FileName &filePath, int line = -1);