forked from qt-creator/qt-creator
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:
committed by
Tim Jenssen
parent
fdfe55c992
commit
69b378eb73
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user