aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/propertyspec.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken6/ApiExtractor/propertyspec.h')
-rw-r--r--sources/shiboken6/ApiExtractor/propertyspec.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/sources/shiboken6/ApiExtractor/propertyspec.h b/sources/shiboken6/ApiExtractor/propertyspec.h
new file mode 100644
index 000000000..9e2e0f3d4
--- /dev/null
+++ b/sources/shiboken6/ApiExtractor/propertyspec.h
@@ -0,0 +1,104 @@
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+#ifndef PROPERTYSPEC_H
+#define PROPERTYSPEC_H
+
+class AbstractMetaType;
+
+#include "abstractmetalang_typedefs.h"
+#include "typesystem_typedefs.h"
+
+#include <QtCore/QStringList>
+#include <QtCore/QSharedDataPointer>
+
+#include <optional>
+
+class AbstractMetaClass;
+class AbstractMetaBuilderPrivate;
+class AbstractMetaType;
+class Documentation;
+class TypeEntry;
+
+struct TypeSystemProperty;
+
+class QPropertySpecData;
+
+QT_FORWARD_DECLARE_CLASS(QDebug)
+
+class QPropertySpec
+{
+public:
+ explicit QPropertySpec(const TypeSystemProperty &ts,
+ const AbstractMetaType &type);
+ QPropertySpec(const QPropertySpec &);
+ QPropertySpec &operator=(const QPropertySpec &);
+ QPropertySpec(QPropertySpec &&) noexcept;
+ QPropertySpec &operator=(QPropertySpec &&) noexcept;
+ ~QPropertySpec();
+
+ static TypeSystemProperty typeSystemPropertyFromQ_Property(const QString &declarationIn,
+ QString *errorMessage);
+
+
+ static std::optional<QPropertySpec>
+ fromTypeSystemProperty(AbstractMetaBuilderPrivate *b,
+ const AbstractMetaClassPtr &metaClass,
+ const TypeSystemProperty &ts,
+ const QStringList &scopes,
+ QString *errorMessage);
+
+ static std::optional<QPropertySpec>
+ parseQ_Property(AbstractMetaBuilderPrivate *b,
+ const AbstractMetaClassPtr &metaClass,
+ const QString &declarationIn,
+ const QStringList &scopes,
+ QString *errorMessage);
+
+ const AbstractMetaType &type() const;
+ void setType(const AbstractMetaType &t);
+
+ TypeEntryCPtr typeEntry() const;
+
+ QString name() const;
+ void setName(const QString &name);
+
+ Documentation documentation() const;
+ void setDocumentation(const Documentation &doc);
+
+ QString read() const;
+ void setRead(const QString &read);
+
+ QString write() const;
+ void setWrite(const QString &write);
+ bool hasWrite() const;
+
+ QString designable() const;
+ void setDesignable(const QString &designable);
+
+ QString reset() const;
+ void setReset(const QString &reset);
+
+ QString notify() const; // Q_PROPERTY/C++ only
+ void setNotify(const QString &notify);
+
+ int index() const;
+ void setIndex(int index);
+
+ // Indicates whether actual code is generated instead of relying on libpyside.
+ bool generateGetSetDef() const;
+ void setGenerateGetSetDef(bool generateGetSetDef);
+
+#ifndef QT_NO_DEBUG_STREAM
+ void formatDebug(QDebug &d) const;
+#endif
+
+private:
+ QSharedDataPointer<QPropertySpecData> d;
+};
+
+#ifndef QT_NO_DEBUG_STREAM
+QDebug operator<<(QDebug d, const QPropertySpec &p);
+#endif
+
+#endif // PROPERTYSPEC_H