diff options
Diffstat (limited to 'sources/pyside6/PySide6/qpydesignerextensions.h')
-rw-r--r-- | sources/pyside6/PySide6/qpydesignerextensions.h | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/sources/pyside6/PySide6/qpydesignerextensions.h b/sources/pyside6/PySide6/qpydesignerextensions.h new file mode 100644 index 000000000..871fa8284 --- /dev/null +++ b/sources/pyside6/PySide6/qpydesignerextensions.h @@ -0,0 +1,84 @@ +// Copyright (C) 2021 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +#ifndef QPYDESIGNEREXTENSIONS_H +#define QPYDESIGNEREXTENSIONS_H + +#include <QtDesigner/QDesignerContainerExtension> +#include <QtDesigner/QDesignerMemberSheetExtension> +#include <QtDesigner/QDesignerPropertySheetExtension> +#include <QtDesigner/QDesignerTaskMenuExtension> +#include <QtUiPlugin/QDesignerCustomWidgetCollectionInterface> +#include <QtUiPlugin/QDesignerCustomWidgetInterface> + +// Not automatically found since "find_package(Qt6 COMPONENTS Designer)" is not used + +#ifdef Q_MOC_RUN +Q_DECLARE_INTERFACE(QDesignerContainerExtension, "org.qt-project.Qt.Designer.Container") +Q_DECLARE_INTERFACE(QDesignerMemberSheetExtension, "org.qt-project.Qt.Designer.MemberSheet") +Q_DECLARE_EXTENSION_INTERFACE(QDesignerPropertySheetExtension, "org.qt-project.Qt.Designer.PropertySheet") +Q_DECLARE_INTERFACE(QDesignerTaskMenuExtension, "org.qt-project.Qt.Designer.TaskMenu") +Q_DECLARE_INTERFACE(QDesignerCustomWidgetCollectionInterface, "org.qt-project.Qt.QDesignerCustomWidgetCollectionInterface") +#endif + +struct _object; // PyObject + +QT_BEGIN_NAMESPACE + +// Extension implementations need to inherit QObject which cannot be done in Python. +// Provide a base class (cf QPyTextObject). + +class QPyDesignerContainerExtension : public QObject, public QDesignerContainerExtension +{ + Q_OBJECT + Q_INTERFACES(QDesignerContainerExtension) +public: + explicit QPyDesignerContainerExtension(QObject *parent = nullptr) : QObject(parent) {} +}; + +class QPyDesignerMemberSheetExtension : public QObject, public QDesignerMemberSheetExtension +{ + Q_OBJECT + Q_INTERFACES(QDesignerMemberSheetExtension) +public: + explicit QPyDesignerMemberSheetExtension(QObject *parent = nullptr) : QObject(parent) {} +}; + +class QPyDesignerPropertySheetExtension : public QObject, public QDesignerPropertySheetExtension +{ + Q_OBJECT + Q_INTERFACES(QDesignerPropertySheetExtension) +public: + explicit QPyDesignerPropertySheetExtension(QObject *parent = nullptr) : QObject(parent) {} +}; + +class QPyDesignerTaskMenuExtension : public QObject, public QDesignerTaskMenuExtension +{ + Q_OBJECT + Q_INTERFACES(QDesignerTaskMenuExtension) +public: + explicit QPyDesignerTaskMenuExtension(QObject *parent = nullptr) : QObject(parent) {} +}; + +class QPyDesignerCustomWidgetCollection : public QDesignerCustomWidgetCollectionInterface +{ +public: + ~QPyDesignerCustomWidgetCollection(); + + static QPyDesignerCustomWidgetCollection *instance(); + + QList<QDesignerCustomWidgetInterface *> customWidgets() const override; + + static void addCustomWidget(QDesignerCustomWidgetInterface *c); + + static bool _registerCustomWidgetHelper(_object *typeArg, _object *kwds); + +private: + QPyDesignerCustomWidgetCollection(); + + QList<QDesignerCustomWidgetInterface *> m_customWidgets; +}; + +QT_END_NAMESPACE + +#endif // QPYDESIGNEREXTENSIONS_H |