diff --git a/src/DockWidgetQuick.cpp b/src/DockWidgetQuick.cpp index 8349b0cd..132caa59 100644 --- a/src/DockWidgetQuick.cpp +++ b/src/DockWidgetQuick.cpp @@ -61,11 +61,7 @@ void DockWidgetQuick::setWidget(const QString &qmlFilename) if (!guest) return; - auto adapter = new QWidgetAdapter(this); - guest->setParentItem(adapter); - guest->setParent(adapter); - - setWidget(adapter); + setWidget(guest); } void DockWidgetQuick::setWidget(QWidgetAdapter *widget) @@ -75,6 +71,15 @@ void DockWidgetQuick::setWidget(QWidgetAdapter *widget) DockWidgetBase::setWidget(widget); } +void DockWidgetQuick::setWidget(QQuickItem *guest) +{ + auto adapter = new QWidgetAdapter(this); + guest->setParentItem(adapter); + guest->setParent(adapter); + + setWidget(adapter); +} + bool DockWidgetQuick::event(QEvent *e) { if (e->type() == QEvent::ParentChange) { diff --git a/src/DockWidgetQuick.h b/src/DockWidgetQuick.h index c3b17ff5..e08544a3 100644 --- a/src/DockWidgetQuick.h +++ b/src/DockWidgetQuick.h @@ -57,6 +57,9 @@ public: /// @reimp void setWidget(QWidgetAdapter *widget) override; + /// @reimp + Q_INVOKABLE void setWidget(QQuickItem *widget); + /// @reimp QSize minimumSize() const override;