forked from qt-creator/qt-creator
ProjectExplorer: Merge the two loops in FlatModel::addFolderNode
And inline the filtering to avoid the duplicated type check and save a few cycles. Change-Id: I0dae5e51b05b0a4e581359e7ad7d3b9d4f684141 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
@@ -266,7 +266,8 @@ void FlatModel::addFolderNode(WrapperNode *parent, FolderNode *folderNode, QSet<
|
|||||||
{
|
{
|
||||||
for (Node *node : folderNode->nodes()) {
|
for (Node *node : folderNode->nodes()) {
|
||||||
if (FolderNode *subFolderNode = node->asFolderNode()) {
|
if (FolderNode *subFolderNode = node->asFolderNode()) {
|
||||||
if (!filter(subFolderNode) && !seen->contains(subFolderNode)) {
|
const bool isHidden = m_filterProjects && !subFolderNode->showInSimpleTree();
|
||||||
|
if (!isHidden && !seen->contains(subFolderNode)) {
|
||||||
seen->insert(subFolderNode);
|
seen->insert(subFolderNode);
|
||||||
auto node = new WrapperNode(subFolderNode);
|
auto node = new WrapperNode(subFolderNode);
|
||||||
parent->appendChild(node);
|
parent->appendChild(node);
|
||||||
@@ -275,11 +276,9 @@ void FlatModel::addFolderNode(WrapperNode *parent, FolderNode *folderNode, QSet<
|
|||||||
} else {
|
} else {
|
||||||
addFolderNode(parent, subFolderNode, seen);
|
addFolderNode(parent, subFolderNode, seen);
|
||||||
}
|
}
|
||||||
}
|
} else if (FileNode *fileNode = node->asFileNode()) {
|
||||||
}
|
const bool isHidden = m_filterProjects && fileNode->isGenerated();
|
||||||
for (Node *node : folderNode->nodes()) {
|
if (!isHidden && !seen->contains(fileNode)) {
|
||||||
if (FileNode *fileNode = node->asFileNode()) {
|
|
||||||
if (!filter(fileNode) && !seen->contains(fileNode)) {
|
|
||||||
seen->insert(fileNode);
|
seen->insert(fileNode);
|
||||||
parent->appendChild(new WrapperNode(fileNode));
|
parent->appendChild(new WrapperNode(fileNode));
|
||||||
}
|
}
|
||||||
@@ -353,19 +352,6 @@ Node *FlatModel::nodeForIndex(const QModelIndex &index) const
|
|||||||
return flatNode ? flatNode->m_node : nullptr;
|
return flatNode ? flatNode->m_node : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool FlatModel::filter(Node *node) const
|
|
||||||
{
|
|
||||||
bool isHidden = false;
|
|
||||||
if (FolderNode *folderNode = node->asFolderNode()) {
|
|
||||||
if (m_filterProjects)
|
|
||||||
isHidden = !folderNode->showInSimpleTree();
|
|
||||||
} else if (FileNode *fileNode = node->asFileNode()) {
|
|
||||||
if (m_filterGeneratedFiles)
|
|
||||||
isHidden = fileNode->isGenerated();
|
|
||||||
}
|
|
||||||
return isHidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QLoggingCategory &FlatModel::logger()
|
const QLoggingCategory &FlatModel::logger()
|
||||||
{
|
{
|
||||||
static QLoggingCategory logger("qtc.projectexplorer.flatmodel");
|
static QLoggingCategory logger("qtc.projectexplorer.flatmodel");
|
||||||
|
|||||||
@@ -85,8 +85,6 @@ signals:
|
|||||||
void requestExpansion(const QModelIndex &index);
|
void requestExpansion(const QModelIndex &index);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool filter(Node *node) const; // Returns true if node is hidden.
|
|
||||||
|
|
||||||
bool m_filterProjects = false;
|
bool m_filterProjects = false;
|
||||||
bool m_filterGeneratedFiles = true;
|
bool m_filterGeneratedFiles = true;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user