ProjectExplorer: De-virtualize FolderNode::showWhenEmpty

Change-Id: Id3d019f449afcfe72b92d505c7822c3b10e2e8e7
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2019-03-01 17:46:45 +01:00
parent d410e87829
commit 92da9d1e67
4 changed files with 11 additions and 9 deletions

View File

@@ -762,7 +762,7 @@ bool FolderNode::showInSimpleTree() const
bool FolderNode::showWhenEmpty() const bool FolderNode::showWhenEmpty() const
{ {
return false; return m_showWhenEmpty;
} }
/*! /*!
@@ -904,6 +904,11 @@ void FolderNode::handleSubTreeChanged(FolderNode *node)
parent->handleSubTreeChanged(node); parent->handleSubTreeChanged(node);
} }
void FolderNode::setShowWhenEmpty(bool showWhenEmpty)
{
m_showWhenEmpty = showWhenEmpty;
}
ContainerNode::ContainerNode(Project *project) ContainerNode::ContainerNode(Project *project)
: FolderNode(project->projectDirectory()), m_project(project) : FolderNode(project->projectDirectory()), m_project(project)
{ {

View File

@@ -281,8 +281,10 @@ public:
// determines if node will be shown in the flat view, by default folder and projects aren't shown // determines if node will be shown in the flat view, by default folder and projects aren't shown
virtual bool showInSimpleTree() const; virtual bool showInSimpleTree() const;
// determines if node will always be shown when hiding empty directories // determines if node will always be shown when hiding empty directories
virtual bool showWhenEmpty() const; bool showWhenEmpty() const;
void setShowWhenEmpty(bool showWhenEmpty);
void addNode(std::unique_ptr<Node> &&node); void addNode(std::unique_ptr<Node> &&node);
std::unique_ptr<Node> takeNode(Node *node); std::unique_ptr<Node> takeNode(Node *node);
@@ -302,6 +304,7 @@ private:
QString m_displayName; QString m_displayName;
QString m_addFileFilter; QString m_addFileFilter;
mutable QIcon m_icon; mutable QIcon m_icon;
bool m_showWhenEmpty = false;
}; };
class PROJECTEXPLORER_EXPORT VirtualFolderNode : public FolderNode class PROJECTEXPLORER_EXPORT VirtualFolderNode : public FolderNode

View File

@@ -489,11 +489,6 @@ bool ResourceTopLevelNode::showInSimpleTree() const
return true; return true;
} }
bool ResourceTopLevelNode::showWhenEmpty() const
{
return true;
}
ResourceFolderNode::ResourceFolderNode(const QString &prefix, const QString &lang, ResourceTopLevelNode *parent) ResourceFolderNode::ResourceFolderNode(const QString &prefix, const QString &lang, ResourceTopLevelNode *parent)
: FolderNode(FileName(parent->filePath()).appendPath(prefix)), : FolderNode(FileName(parent->filePath()).appendPath(prefix)),
// TOOD Why add existing directory doesn't work // TOOD Why add existing directory doesn't work
@@ -501,7 +496,7 @@ ResourceFolderNode::ResourceFolderNode(const QString &prefix, const QString &lan
m_prefix(prefix), m_prefix(prefix),
m_lang(lang) m_lang(lang)
{ {
setShowWhenEmpty(true);
} }
ResourceFolderNode::~ResourceFolderNode() = default; ResourceFolderNode::~ResourceFolderNode() = default;

View File

@@ -50,7 +50,6 @@ public:
AddNewInformation addNewInformation(const QStringList &files, Node *context) const override; AddNewInformation addNewInformation(const QStringList &files, Node *context) const override;
bool showInSimpleTree() const override; bool showInSimpleTree() const override;
bool showWhenEmpty() const override;
bool removeNonExistingFiles(); bool removeNonExistingFiles();
QString contents() const { return m_contents; } QString contents() const { return m_contents; }