1// Copyright (C) 2021 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#include "headernode.h"
5
6QT_BEGIN_NAMESPACE
7
8/*!
9 \class Headernode
10 \brief This class represents a C++ header file.
11 */
12
13HeaderNode::HeaderNode(Aggregate *parent, const QString &name) : Aggregate(HeaderFile, parent, name)
14{
15 // Set the include file with enclosing angle brackets removed
16 if (name.startsWith(c: QChar('<')) && name.size() > 2)
17 Aggregate::setIncludeFile(name.mid(position: 1).chopped(n: 1));
18 else
19 Aggregate::setIncludeFile(name);
20}
21
22/*!
23 Returns true if this header file node is not private and
24 contains at least one public child node with documentation.
25 */
26bool HeaderNode::docMustBeGenerated() const
27{
28 if (isInAPI())
29 return true;
30 return hasDocumentedChildren();
31}
32
33/*!
34 Returns true if this header file node contains at least one
35 child that has documentation and is not private or internal.
36 */
37bool HeaderNode::hasDocumentedChildren() const
38{
39 return std::any_of(first: m_children.cbegin(), last: m_children.cend(),
40 pred: [](Node *child) { return child->isInAPI(); });
41}
42
43QT_END_NAMESPACE
44

source code of qttools/src/qdoc/qdoc/headernode.cpp