ProjectExplorer: Expose sortByPath operator on project nodes

This is universally useful, so expose it.

Change-Id: I9cceee076397c7d690d8d34ef8ac815059e4454d
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2016-11-01 17:08:39 +01:00
committed by Tim Jenssen
parent fdfe55c992
commit 69b378eb73
2 changed files with 11 additions and 9 deletions

View File

@@ -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<FileNode *> &files)
{
// Gather old list
QList<ProjectExplorer::FileNode *> oldFiles = recursiveFileNodes();
Utils::sort(oldFiles, sortNodesByPath);
Utils::sort(files, sortNodesByPath);
Utils::sort(oldFiles, Node::sortByPath);
Utils::sort(files, Node::sortByPath);
QList<ProjectExplorer::FileNode *> added;
QList<ProjectExplorer::FileNode *> 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<ProjectExplorer::FolderNode *, QList<ProjectExplorer::FileNode *> > addedFolderMapping;
QHash<ProjectExplorer::FolderNode *, QList<ProjectExplorer::FileNode *> > deletedFolderMapping;

View File

@@ -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);