summaryrefslogtreecommitdiffstats
path: root/src/qdoc/qdoc/src/qdoc/proxynode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qdoc/qdoc/src/qdoc/proxynode.cpp')
-rw-r--r--src/qdoc/qdoc/src/qdoc/proxynode.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/qdoc/qdoc/src/qdoc/proxynode.cpp b/src/qdoc/qdoc/src/qdoc/proxynode.cpp
new file mode 100644
index 000000000..49e4be34e
--- /dev/null
+++ b/src/qdoc/qdoc/src/qdoc/proxynode.cpp
@@ -0,0 +1,54 @@
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#include "proxynode.h"
+
+#include "tree.h"
+
+QT_BEGIN_NAMESPACE
+
+/*!
+ \class ProxyNode
+ \brief A class for representing an Aggregate that is documented in a different module.
+
+ This class is used to represent an Aggregate (usually a class)
+ that is located and documented in a different module. In the
+ current module, a ProxyNode holds child nodes that are related
+ to the class in the other module.
+
+ For example, class QHash is located and documented in QtCore.
+ There are many global functions named qHash() in QtCore that
+ are all related to class QHash using the \c relates command.
+ There are also a few qHash() function in QtNetwork that are
+ related to QHash. These functions must be documented when the
+ documentation for QtNetwork is generated, but the reference
+ page for QHash must link to that documentation in its related
+ nonmembers list.
+
+ The ProxyNode allows qdoc to construct links to the related
+ functions (or other things?) in QtNetwork from the reference
+ page in QtCore.
+ */
+
+/*!
+ Constructs the ProxyNode, which at this point looks like any
+ other Aggregate, and then finds the Tree this node is in and
+ appends this node to that Tree's proxy list so it will be
+ easy to find later.
+ */
+ProxyNode::ProxyNode(Aggregate *parent, const QString &name) : Aggregate(Node::Proxy, parent, name)
+{
+ tree()->appendProxy(this);
+}
+
+/*! \fn bool ProxyNode::docMustBeGenerated() const
+ Returns true because a ProxyNode always means some documentation
+ must be generated.
+*/
+
+/*! \fn bool ProxyNode::isRelatableType() const
+ Returns true because the ProxyNode exists so that elements
+ can be related to it with the \c {\\relates} command.
+*/
+
+QT_END_NAMESPACE