diff options
Diffstat (limited to 'src/qdoc/qdoc/src/qdoc/sharedcommentnode.h')
-rw-r--r-- | src/qdoc/qdoc/src/qdoc/sharedcommentnode.h | 51 |
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 |