Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qobjectregistry_p.h
Go to the documentation of this file.
1// Copyright (C) 2026 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4//
5// W A R N I N G
6// -------------
7//
8// This file is not part of the Qt API. It exists purely as an
9// implementation detail. This header file may change from version to
10// version without notice, or even be removed.
11//
12// We mean it.
13//
14
15#ifndef QOBJECTREGISTRY_P_H
16#define QOBJECTREGISTRY_P_H
17
18#include <QtQmlDesignSupport/qtqmldesignsupportexports.h>
19
20#include <QtQml/qqml.h>
21#include <QtQml/qqmlparserstatus.h>
22
23QT_BEGIN_NAMESPACE
24
25class QAbstractObjectRegistryRefPrivate;
26class QObjectRegistrySingleton;
27
28class Q_QMLDESIGNSUPPORT_EXPORT QObjectRegistryAttachedType
29 : public QObject, public QQmlParserStatus
30{
31 Q_OBJECT
32 Q_INTERFACES(QQmlParserStatus)
33
34 Q_PROPERTY(QString key READ key WRITE setKey NOTIFY keyChanged FINAL)
35
36 QML_ANONYMOUS
37
38public:
39 QObjectRegistryAttachedType(QObject *parent = nullptr);
40 ~QObjectRegistryAttachedType();
41
42 QString key() const;
43 void setKey(const QString &key);
44
45 void classBegin() override;
46 void componentComplete() override;
47
48Q_SIGNALS:
49 void keyChanged();
50
51private:
52 QString m_key;
53 bool m_qmlSetupInProgress = false;
54 QObjectRegistrySingleton *m_registry = nullptr;
55};
56
57class Q_QMLDESIGNSUPPORT_EXPORT QObjectRegistry : public QObject
58{
59 Q_OBJECT
60
61 Q_PROPERTY(QString key READ key WRITE setKey NOTIFY keyChanged REQUIRED FINAL)
62 Q_PROPERTY(QObject *target READ target WRITE setTarget NOTIFY targetChanged REQUIRED FINAL)
63
64 QML_ATTACHED(QObjectRegistryAttachedType)
65
66 QML_NAMED_ELEMENT(ObjectRegistry)
67
68public:
69 QObjectRegistry(QObject *parent = nullptr);
70 ~QObjectRegistry();
71
72 static QObjectRegistryAttachedType *qmlAttachedProperties(QObject *object);
73
74 QString key() const;
75 void setKey(const QString &key);
76
77 QObject *target() const;
78 void setTarget(QObject *target);
79
80Q_SIGNALS:
81 void keyChanged();
82 void targetChanged();
83
84private:
85 QString m_key;
86 QObject *m_target = nullptr;
87 QObjectRegistrySingleton *m_registry = nullptr;
88};
89
90QT_END_NAMESPACE
91
92#endif // QOBJECTREGISTRY_P_H
Combined button and popup list for selecting options.