From cea68a3fe3bdda8c964bcf957aad4285cb428cb9 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Wed, 3 May 2017 12:24:53 +0200 Subject: [PATCH] ProjectNodes: Use a set of flags for bools in Node This has the potential to save some space per node. Change-Id: I2b8b65c13b355e680965bb7307f9e8d8714dae64 Reviewed-by: hjk --- src/plugins/projectexplorer/projectnodes.cpp | 6 ++---- src/plugins/projectexplorer/projectnodes.h | 7 ++++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index 1a1416ef672..dee068e99b4 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -209,7 +209,7 @@ QString Node::tooltip() const bool Node::isEnabled() const { - if (!m_isEnabled) + if (!m_flags.testFlag(FlagIsEnabled)) return false; FolderNode *parent = parentFolderNode(); return parent ? parent->isEnabled() : true; @@ -222,9 +222,7 @@ bool Node::supportsAction(ProjectAction, Node *) const void Node::setEnabled(bool enabled) { - if (m_isEnabled == enabled) - return; - m_isEnabled = enabled; + m_flags.setFlag(FlagIsEnabled, enabled); } bool Node::sortByPath(const Node *a, const Node *b) diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h index 5974e33ae80..438b1f74ea6 100644 --- a/src/plugins/projectexplorer/projectnodes.h +++ b/src/plugins/projectexplorer/projectnodes.h @@ -161,7 +161,12 @@ private: int m_line = -1; int m_priority = DefaultPriority; const NodeType m_nodeType; - bool m_isEnabled = true; + enum NodeFlag : quint16 { + FlagNone = 0, + FlagIsEnabled = 1 << 0, + }; + using NodeFlags = QFlags; + NodeFlags m_flags = FlagIsEnabled; }; class PROJECTEXPLORER_EXPORT FileNode : public Node