aboutsummaryrefslogtreecommitdiffstats
path: root/sources/pyside2/plugins/customwidgets.h
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-07-21 10:32:42 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-07-21 11:22:09 +0200
commitf2b61d1160e935083b14e7b26f4a21821d015e68 (patch)
treeb2bec583772236462839c9365aec479611136fcb /sources/pyside2/plugins/customwidgets.h
parent14023079a9c082fa85592858698810e997af418e (diff)
Brush up the code related to custom widgets in the QUiLoader module
- Modernize, use override, nullptr - Fix include conventions - Remove *Private structs. They don't make sense in a static plugin. - Add some explanatory comments - Add missing initializations of members - Most importantly: add error handling to PyCustomWidget::createWidget(), which so far would swallow all errors encountered when executing the Widget's __init__ function. Change-Id: I100a4239013f959c8fb0b0adc0d3a99f73bd4bff Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/pyside2/plugins/customwidgets.h')
-rw-r--r--sources/pyside2/plugins/customwidgets.h22
1 files changed, 10 insertions, 12 deletions
diff --git a/sources/pyside2/plugins/customwidgets.h b/sources/pyside2/plugins/customwidgets.h
index 5c52d1d25..aec817cdf 100644
--- a/sources/pyside2/plugins/customwidgets.h
+++ b/sources/pyside2/plugins/customwidgets.h
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2016 The Qt Company Ltd.
+** Copyright (C) 2020 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qt for Python.
@@ -42,16 +42,11 @@
#include <shiboken.h>
-#include <QtCore/QtGlobal>
-#if (QT_VERSION < QT_VERSION_CHECK(5, 5, 0))
- #include <QtDesigner/QDesignerCustomWidgetInterface>
-#else
- #include <QtUiPlugin/QDesignerCustomWidgetInterface>
-#endif
-
+#include <QtUiPlugin/QDesignerCustomWidgetInterface>
-struct PyCustomWidgetsPrivate;
+#include <QtCore/qlist.h>
+// A static plugin linked to the QtUiLoader Python module
class PyCustomWidgets: public QObject, public QDesignerCustomWidgetCollectionInterface
{
Q_OBJECT
@@ -59,13 +54,16 @@ class PyCustomWidgets: public QObject, public QDesignerCustomWidgetCollectionInt
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.PySide.PyCustomWidgetsInterface")
public:
- PyCustomWidgets(QObject *parent = 0);
+ explicit PyCustomWidgets(QObject *parent = nullptr);
~PyCustomWidgets();
- virtual QList<QDesignerCustomWidgetInterface*> customWidgets() const;
+
+ QList<QDesignerCustomWidgetInterface*> customWidgets() const override;
+
+ // Called from added function QUiLoader::registerCustomWidget()
void registerWidgetType(PyObject* widget);
private:
- PyCustomWidgetsPrivate* m_data;
+ QList<QDesignerCustomWidgetInterface *> m_widgets;
};
#endif