summaryrefslogtreecommitdiffstats
path: root/src/qdoc/qdoc/src/qdoc/sharedcommentnode.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/qdoc/src/qdoc/sharedcommentnode.h')
-rw-r--r--src/qdoc/qdoc/src/qdoc/sharedcommentnode.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/src/qdoc/qdoc/src/qdoc/sharedcommentnode.h b/src/qdoc/qdoc/src/qdoc/sharedcommentnode.h
new file mode 100644
index 000000000..d319d7c59
--- /dev/null
+++ b/src/qdoc/qdoc/src/qdoc/sharedcommentnode.h
@@ -0,0 +1,51 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef SHAREDCOMMENTNODE_H
+#define SHAREDCOMMENTNODE_H
+
+#include "node.h"
+
+#include <QtCore/qglobal.h>
+#include <QtCore/qlist.h>
+
+QT_BEGIN_NAMESPACE
+
+class Aggregate;
+class QmlTypeNode;
+
+class SharedCommentNode : public Node
+{
+public:
+ explicit SharedCommentNode(Node *node) : Node(Node::SharedComment, node->parent(), QString())
+ {
+ m_collective.reserve(1);
+ append(node);
+ }
+ SharedCommentNode(QmlTypeNode *parent, int count, QString &group);
+ ~SharedCommentNode() override { m_collective.clear(); }
+
+ [[nodiscard]] bool isPropertyGroup() const override
+ {
+ return !name().isEmpty() && !m_collective.isEmpty() && (m_collective.at(0)->isQmlProperty());
+ }
+ [[nodiscard]] qsizetype count() const { return m_collective.size(); }
+ void append(Node *node)
+ {
+ m_collective.append(node);
+ node->setSharedCommentNode(this);
+ setGenus(node->genus());
+ }
+ void sort() { std::sort(m_collective.begin(), m_collective.end(), Node::nodeNameLessThan); }
+ [[nodiscard]] const QList<Node *> &collective() const { return m_collective; }
+ void setOverloadFlags();
+ void setRelatedNonmember(bool value) override;
+ Node *clone(Aggregate *parent) override;
+
+private:
+ QList<Node *> m_collective {};
+};
+
+QT_END_NAMESPACE
+
+#endif // SHAREDCOMMENTNODE_H