aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside6/plugins/uitools/customwidgets.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/pyside6/plugins/uitools/customwidgets.h')
-rw-r--r--sources/pyside6/plugins/uitools/customwidgets.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/sources/pyside6/plugins/uitools/customwidgets.h b/sources/pyside6/plugins/uitools/customwidgets.h
new file mode 100644
index 000000000..f67a0847d
--- /dev/null
+++ b/sources/pyside6/plugins/uitools/customwidgets.h
@@ -0,0 +1,35 @@
+// Copyright (C) 2020 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 PY_CUSTOM_WIDGETS_H_
+#define PY_CUSTOM_WIDGETS_H_
+
+#include <shiboken.h>
+
+#include <QtUiPlugin/QDesignerCustomWidgetInterface>
+
+#include <QtCore/qlist.h>
+
+// A static plugin linked to the QtUiLoader Python module
+class PyCustomWidgets: public QObject, public QDesignerCustomWidgetCollectionInterface
+{
+ Q_OBJECT
+ Q_INTERFACES(QDesignerCustomWidgetCollectionInterface)
+ Q_PLUGIN_METADATA(IID "org.qt-project.Qt.PySide.PyCustomWidgetsInterface")
+
+public:
+ Q_DISABLE_COPY_MOVE(PyCustomWidgets)
+
+ explicit PyCustomWidgets(QObject *parent = nullptr);
+ ~PyCustomWidgets() override;
+
+ QList<QDesignerCustomWidgetInterface*> customWidgets() const override;
+
+ // Called from added function QUiLoader::registerCustomWidget()
+ void registerWidgetType(PyObject* widget);
+
+private:
+ QList<QDesignerCustomWidgetInterface *> m_widgets;
+};
+
+#endif