ProjectExplorer: Do not use QFlags

Using QFlags here increases the size of a Node by extending the
m_flags from 16bit to 32bit and adds needless padding.

Change-Id: I9169585a7f91da5b85433fcd6f4d1bb7d39e65c1
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Tobias Hunger
2018-04-26 10:25:19 +02:00
parent c1bfc9d0a4
commit ad8a6cc0e6
2 changed files with 9 additions and 10 deletions

View File

@@ -131,17 +131,17 @@ void Node::setPriority(int p)
void Node::setListInProject(bool l) void Node::setListInProject(bool l)
{ {
if (l) if (l)
m_flags |= FlagListInProject; m_flags = static_cast<NodeFlag>(m_flags | FlagListInProject);
else else
m_flags &= ~FlagListInProject; m_flags = static_cast<NodeFlag>(m_flags & ~FlagListInProject);
} }
void Node::setIsGenerated(bool g) void Node::setIsGenerated(bool g)
{ {
if (g) if (g)
m_flags |= FlagIsGenerated; m_flags = static_cast<NodeFlag>(m_flags | FlagIsGenerated);
else else
m_flags &= ~FlagIsGenerated; m_flags = static_cast<NodeFlag>(m_flags & ~FlagIsGenerated);
} }
void Node::setAbsoluteFilePathAndLine(const Utils::FileName &path, int line) void Node::setAbsoluteFilePathAndLine(const Utils::FileName &path, int line)
@@ -170,7 +170,7 @@ int Node::priority() const
*/ */
bool Node::listInProject() const bool Node::listInProject() const
{ {
return m_flags.testFlag(FlagListInProject); return (m_flags & FlagListInProject) == FlagListInProject;
} }
/*! /*!
@@ -239,7 +239,7 @@ QString Node::tooltip() const
bool Node::isEnabled() const bool Node::isEnabled() const
{ {
if (!m_flags.testFlag(FlagIsEnabled)) if ((m_flags & FlagIsEnabled) == 0)
return false; return false;
FolderNode *parent = parentFolderNode(); FolderNode *parent = parentFolderNode();
return parent ? parent->isEnabled() : true; return parent ? parent->isEnabled() : true;
@@ -261,9 +261,9 @@ bool Node::supportsAction(ProjectAction, const Node *) const
void Node::setEnabled(bool enabled) void Node::setEnabled(bool enabled)
{ {
if (enabled) if (enabled)
m_flags |= FlagIsEnabled; m_flags = static_cast<NodeFlag>(m_flags | FlagIsEnabled);
else else
m_flags &= ~FlagIsEnabled; m_flags = static_cast<NodeFlag>(m_flags & ~FlagIsEnabled);
} }
bool Node::sortByPath(const Node *a, const Node *b) bool Node::sortByPath(const Node *a, const Node *b)

View File

@@ -173,8 +173,7 @@ private:
FlagIsGenerated = 1 << 1, FlagIsGenerated = 1 << 1,
FlagListInProject = 1 << 2, FlagListInProject = 1 << 2,
}; };
using NodeFlags = QFlags<NodeFlag>; NodeFlag m_flags = FlagIsEnabled;
NodeFlags m_flags = FlagIsEnabled;
}; };
class PROJECTEXPLORER_EXPORT FileNode : public Node class PROJECTEXPLORER_EXPORT FileNode : public Node