ProjectExplorer: Make priorities available on more nodes

Make priority available on all FolderNodes. Make the sort order
of all kinds of FolderNodes check the priority.

This allows no reorder e.g. ProjectNodes as needed.

Change-Id: I369edd28807ab9f89fb646b0001e1b3eb1a19d7e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2016-11-10 16:56:15 +01:00
parent 3af1372395
commit 49f5d98871
5 changed files with 54 additions and 132 deletions

View File

@@ -63,6 +63,11 @@ Node::Node(NodeType nodeType, const Utils::FileName &filePath, int line) :
m_filePath(filePath), m_line(line), m_nodeType(nodeType)
{ }
void Node::setPriority(int p)
{
m_priority = p;
}
void Node::emitNodeSortKeyAboutToChange()
{
if (parentFolderNode())
@@ -92,6 +97,11 @@ NodeType Node::nodeType() const
return m_nodeType;
}
int Node::priority() const
{
return m_priority;
}
/*!
The project that owns and manages the node. It is the first project in the list
of ancestors.
@@ -209,7 +219,12 @@ FileNode::FileNode(const Utils::FileName &filePath,
bool generated, int line) : Node(NodeType::File, filePath, line),
m_fileType(fileType),
m_generated(generated)
{ }
{
if (fileType == FileType::Project)
setPriority(DefaultProjectFilePriority);
else
setPriority(DefaultFilePriority);
}
FileType FileNode::fileType() const
{
@@ -287,9 +302,10 @@ QList<FileNode *> FileNode::scanForFiles(const Utils::FileName &directory,
\sa ProjectExplorer::FileNode, ProjectExplorer::ProjectNode
*/
FolderNode::FolderNode(const Utils::FileName &folderPath, NodeType nodeType, const QString &displayName) :
Node(nodeType, folderPath),
Node(nodeType, folderPath, -1),
m_displayName(displayName)
{
setPriority(DefaultFolderPriority);
if (m_displayName.isEmpty())
m_displayName = folderPath.toUserOutput();
}
@@ -712,13 +728,9 @@ bool FolderNode::showInSimpleTree() const
\sa ProjectExplorer::FileNode, ProjectExplorer::ProjectNode
*/
VirtualFolderNode::VirtualFolderNode(const Utils::FileName &folderPath, int priority) :
FolderNode(folderPath, NodeType::VirtualFolder),
m_priority(priority)
{ }
int VirtualFolderNode::priority() const
FolderNode(folderPath, NodeType::VirtualFolder, QString())
{
return m_priority;
setPriority(priority);
}
/*!
@@ -737,6 +749,7 @@ int VirtualFolderNode::priority() const
ProjectNode::ProjectNode(const Utils::FileName &projectFilePath) :
FolderNode(projectFilePath, NodeType::Project)
{
setPriority(DefaultProjectPriority);
setDisplayName(projectFilePath.fileName());
}