diff --git a/src/plugins/projectexplorer/projectnodes.cpp b/src/plugins/projectexplorer/projectnodes.cpp index 1e5a35a23ef..c2244ed0100 100644 --- a/src/plugins/projectexplorer/projectnodes.cpp +++ b/src/plugins/projectexplorer/projectnodes.cpp @@ -944,8 +944,7 @@ ProjectNode *ProjectNode::projectNode(const Utils::FilePath &file) const QVariant ProjectNode::data(Core::Id role) const { - Q_UNUSED(role) - return QVariant(); + return m_fallbackData.value(role); } bool ProjectNode::setData(Core::Id role, const QVariant &value) const @@ -955,6 +954,11 @@ bool ProjectNode::setData(Core::Id role, const QVariant &value) const return false; } +void ProjectNode::setFallbackData(Core::Id key, const QVariant &value) +{ + m_fallbackData.insert(key, value); +} + bool FolderNode::isEmpty() const { return m_nodes.size() == 0; diff --git a/src/plugins/projectexplorer/projectnodes.h b/src/plugins/projectexplorer/projectnodes.h index 97319de6c4a..0bea9c38102 100644 --- a/src/plugins/projectexplorer/projectnodes.h +++ b/src/plugins/projectexplorer/projectnodes.h @@ -388,6 +388,8 @@ public: // "build single file" case. virtual void build() {} + void setFallbackData(Core::Id key, const QVariant &value); + protected: void setIsProduct() { m_isProduct = true; } @@ -395,6 +397,7 @@ protected: private: bool m_isProduct = false; + QHash m_fallbackData; // Used in data(), unless overridden. }; class PROJECTEXPLORER_EXPORT ContainerNode : public FolderNode