1// Copyright (C) 2020 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 "proxynode.h"
5
6#include "tree.h"
7
8QT_BEGIN_NAMESPACE
9
10/*!
11 \class ProxyNode
12 \brief A class for representing an Aggregate that is documented in a different module.
13
14 This class is used to represent an Aggregate (usually a class)
15 that is located and documented in a different module. In the
16 current module, a ProxyNode holds child nodes that are related
17 to the class in the other module.
18
19 For example, class QHash is located and documented in QtCore.
20 There are many global functions named qHash() in QtCore that
21 are all related to class QHash using the \c relates command.
22 There are also a few qHash() function in QtNetwork that are
23 related to QHash. These functions must be documented when the
24 documentation for QtNetwork is generated, but the reference
25 page for QHash must link to that documentation in its related
26 nonmembers list.
27
28 The ProxyNode allows qdoc to construct links to the related
29 functions (or other things?) in QtNetwork from the reference
30 page in QtCore.
31 */
32
33/*!
34 Constructs the ProxyNode, which at this point looks like any
35 other Aggregate, and then finds the Tree this node is in and
36 appends this node to that Tree's proxy list so it will be
37 easy to find later.
38 */
39ProxyNode::ProxyNode(Aggregate *parent, const QString &name) : Aggregate(Node::Proxy, parent, name)
40{
41 tree()->appendProxy(t: this);
42}
43
44/*! \fn bool ProxyNode::docMustBeGenerated() const
45 Returns true because a ProxyNode always means some documentation
46 must be generated.
47*/
48
49/*! \fn bool ProxyNode::isRelatableType() const
50 Returns true because the ProxyNode exists so that elements
51 can be related to it with the \c {\\relates} command.
52*/
53
54QT_END_NAMESPACE
55

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