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
abstractintrospection_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4//
5// W A R N I N G
6// -------------
7//
8// This file is not part of the Qt API. It exists for the convenience
9// of Qt Designer. This header
10// file may change from version to version without notice, or even be removed.
11//
12// We mean it.
13//
14
15#ifndef ABSTRACTMETAOBJECT_H
16#define ABSTRACTMETAOBJECT_H
17
18#include <QtDesigner/sdk_global.h>
19#include <QtCore/qvariant.h>
20#include <QtCore/qflags.h>
21
23
24class QDESIGNER_SDK_EXPORT QDesignerMetaEnumInterface
25{
26public:
27 Q_DISABLE_COPY_MOVE(QDesignerMetaEnumInterface)
28
29 QDesignerMetaEnumInterface();
30 virtual ~QDesignerMetaEnumInterface();
31 virtual bool isFlag() const = 0;
32 virtual QString key(int index) const = 0;
33 virtual int keyCount() const = 0;
34 virtual int keyToValue(const QString &key) const = 0;
35 virtual int keysToValue(const QString &keys) const = 0;
36 virtual QString name() const = 0;
37 virtual QString enumName() const = 0;
38 virtual QString scope() const = 0;
39 virtual QString separator() const = 0;
40 virtual int value(int index) const = 0;
41 virtual QString valueToKey(int value) const = 0;
42 virtual QString valueToKeys(int value) const = 0;
43};
44
45class QDESIGNER_SDK_EXPORT QDesignerMetaPropertyInterface
46{
47public:
48 Q_DISABLE_COPY_MOVE(QDesignerMetaPropertyInterface)
49
50 enum Kind { EnumKind, FlagKind, OtherKind };
51 enum AccessFlag { ReadAccess = 0x0001, WriteAccess = 0x0002, ResetAccess = 0x0004 };
52 enum Attribute { DesignableAttribute = 0x0001, ScriptableAttribute = 0x0002, StoredAttribute = 0x0004, UserAttribute = 0x0008};
53 Q_DECLARE_FLAGS(Attributes, Attribute)
54 Q_DECLARE_FLAGS(AccessFlags, AccessFlag)
55
56 QDesignerMetaPropertyInterface();
57 virtual ~QDesignerMetaPropertyInterface();
58
59 virtual const QDesignerMetaEnumInterface *enumerator() const = 0;
60
61 virtual Kind kind() const = 0;
62 virtual AccessFlags accessFlags() const = 0;
63 virtual Attributes attributes() const = 0;
64
65 virtual int type() const = 0;
66 virtual QString name() const = 0;
67 virtual QString typeName() const = 0;
68 virtual int userType() const = 0;
69 virtual bool hasSetter() const = 0;
70
71 virtual QVariant read(const QObject *object) const = 0;
72 virtual bool reset(QObject *object) const = 0;
73 virtual bool write(QObject *object, const QVariant &value) const = 0;
74};
75
76Q_DECLARE_OPERATORS_FOR_FLAGS(QDesignerMetaPropertyInterface::AccessFlags)
77Q_DECLARE_OPERATORS_FOR_FLAGS(QDesignerMetaPropertyInterface::Attributes)
78
79class QDESIGNER_SDK_EXPORT QDesignerMetaMethodInterface
80{
81public:
82 Q_DISABLE_COPY_MOVE(QDesignerMetaMethodInterface)
83
84 QDesignerMetaMethodInterface();
85 virtual ~QDesignerMetaMethodInterface();
86
87 enum MethodType { Method, Signal, Slot, Constructor };
88 enum Access { Private, Protected, Public };
89
90 virtual Access access() const = 0;
91 virtual MethodType methodType() const = 0;
92 virtual QStringList parameterNames() const = 0;
93 virtual QStringList parameterTypes() const = 0;
94 virtual QString signature() const = 0;
95 virtual QString normalizedSignature() const = 0;
96 virtual QString tag() const = 0;
97 virtual QString typeName() const = 0;
98};
99
100class QDESIGNER_SDK_EXPORT QDesignerMetaObjectInterface
101{
102public:
103 Q_DISABLE_COPY_MOVE(QDesignerMetaObjectInterface)
104
105 QDesignerMetaObjectInterface();
106 virtual ~QDesignerMetaObjectInterface();
107
108 virtual QString className() const = 0;
109 virtual const QDesignerMetaEnumInterface *enumerator(int index) const = 0;
110 virtual int enumeratorCount() const = 0;
111 virtual int enumeratorOffset() const = 0;
112
113 virtual int indexOfEnumerator(const QString &name) const = 0;
114 virtual int indexOfMethod(const QString &method) const = 0;
115 virtual int indexOfProperty(const QString &name) const = 0;
116 virtual int indexOfSignal(const QString &signal) const = 0;
117 virtual int indexOfSlot(const QString &slot) const = 0;
118
119 virtual const QDesignerMetaMethodInterface *method(int index) const = 0;
120 virtual int methodCount() const = 0;
121 virtual int methodOffset() const = 0;
122
123 virtual const QDesignerMetaPropertyInterface *property(int index) const = 0;
124 virtual int propertyCount() const = 0;
125 virtual int propertyOffset() const = 0;
126
127 virtual const QDesignerMetaObjectInterface *superClass() const = 0;
128 virtual const QDesignerMetaPropertyInterface *userProperty() const = 0;
129};
130
131// To be obtained from core
132class QDESIGNER_SDK_EXPORT QDesignerIntrospectionInterface
133{
134public:
135 Q_DISABLE_COPY_MOVE(QDesignerIntrospectionInterface)
136
137 QDesignerIntrospectionInterface();
138 virtual ~QDesignerIntrospectionInterface();
139
140 virtual const QDesignerMetaObjectInterface* metaObject(const QObject *object) const = 0;
141};
142
143QT_END_NAMESPACE
144
145#endif // ABSTRACTMETAOBJECT_H
virtual bool dynamicPropertiesAllowed() const =0
virtual bool isDynamicProperty(int index) const =0
virtual int addDynamicProperty(const QString &propertyName, const QVariant &value)=0
virtual bool canAddDynamicProperty(const QString &propertyName) const =0
virtual bool removeDynamicProperty(int index)=0
virtual ~QDesignerDynamicPropertySheetExtension()=default
QDesignerIntrospectionInterface provides access to a QDesignerMetaObjectInterface for a given Qt obje...
QDesignerMetaObjectInterface is part of \QD's introspection interface and provides meta-information a...
QDesignerMetaPropertyInterface is part of \QD's introspection interface and represents a property.
QDesignerPropertySheetFactory(QExtensionManager *parent=nullptr)
static void registerExtension(QExtensionManager *mgr)
friend class QWidget
Definition qpainter.h:421
FormEditorOptionsPage(QDesignerFormEditorInterface *core)
QWidget * createPage(QWidget *parent) override
FormEditor(const QStringList &pluginPaths, QObject *parent=nullptr)
Adds header fake properties to QTreeView and QTableView objects.
ItemViewPropertySheet(QTableView *tableViewObject, QObject *parent=nullptr)
void setProperty(int index, const QVariant &value) override
QVariant property(int index) const override
void setChanged(int index, bool changed) override
QHash< QString, QString > propertyNameMap() const
Returns the mapping of fake property names to real property names.
void setProperty(int index, const QVariant &value) override
static void markChangedStretchProperties(QDesignerFormEditorInterface *core, QLayout *lt, const DomLayout *domLayout)
static void stretchAttributesToDom(QDesignerFormEditorInterface *core, QLayout *lt, DomLayout *domLayout)
void setChanged(int index, bool changed) override
QVariant property(int index) const override
QString propertyGroup(int index) const override
bool isVisible(int index) const override
void setProperty(int index, const QVariant &value) override
void setProperty(int index, const QVariant &value) override
QWidget * widget(int index) const override
void insertWidget(int index, QWidget *widget) override
void addWidget(QWidget *widget) override
static void positionNewMdiChild(const QWidget *area, QWidget *mdiChild)
QWidget * widget(int index) const override
void insertWidget(int index, QWidget *widget) override
void setProperty(int index, const QVariant &value) override
static bool checkProperty(const QString &propertyName)
QVariant property(int index) const override
void addWidget(QWidget *widget) override
QWidget * widget(int index) const override
void insertWidget(int index, QWidget *widget) override
bool isVisible(int index) const override
void setProperty(int index, const QVariant &value) override
QWidget * createPage(QWidget *parent) override
static QString chooseTemplatePath(QDesignerFormEditorInterface *core, QWidget *parent)
#define QT_FORMEDITOR_EXPORT
Combined button and popup list for selecting options.
Auxiliary methods to store/retrieve settings.
#define QDESIGNER_SHARED_EXPORT