diff --git a/src/gui/editorwidgets/qgsqmlwidgetwrapper.cpp b/src/gui/editorwidgets/qgsqmlwidgetwrapper.cpp index 57eefdeecd6..9a0ab6ea86e 100644 --- a/src/gui/editorwidgets/qgsqmlwidgetwrapper.cpp +++ b/src/gui/editorwidgets/qgsqmlwidgetwrapper.cpp @@ -16,6 +16,8 @@ #include "qgsqmlwidgetwrapper.h" #include "qgsmessagelog.h" #include +#include +#include QgsQmlWidgetWrapper::QgsQmlWidgetWrapper( QgsVectorLayer *layer, QWidget *editor, QWidget *parent ) : QgsWidgetWrapper( layer, editor, parent ) @@ -35,9 +37,9 @@ QWidget *QgsQmlWidgetWrapper::createWidget( QWidget *parent ) void QgsQmlWidgetWrapper::initWidget( QWidget *editor ) { - QQuickWidget *quickWidget = qobject_cast( editor ); + mWidget = qobject_cast( editor ); - if ( !quickWidget ) + if ( !mWidget ) return; @@ -47,7 +49,7 @@ void QgsQmlWidgetWrapper::initWidget( QWidget *editor ) return; } - quickWidget->setSource( QUrl::fromLocalFile( mQmlFile.fileName() ) ); + mWidget->setSource( QUrl::fromLocalFile( mQmlFile.fileName() ) ); mQmlFile.close(); } @@ -67,5 +69,6 @@ void QgsQmlWidgetWrapper::setQmlCode( const QString &qmlCode ) void QgsQmlWidgetWrapper::setFeature( const QgsFeature &feature ) { - + if ( mWidget ) + mWidget->rootContext()->setContextProperty( "feature", feature ); } diff --git a/src/gui/editorwidgets/qgsqmlwidgetwrapper.h b/src/gui/editorwidgets/qgsqmlwidgetwrapper.h index 6df434d9ad7..82b1bfb601a 100644 --- a/src/gui/editorwidgets/qgsqmlwidgetwrapper.h +++ b/src/gui/editorwidgets/qgsqmlwidgetwrapper.h @@ -45,6 +45,8 @@ class GUI_EXPORT QgsQmlWidgetWrapper : public QgsWidgetWrapper QTemporaryFile mQmlFile; QQuickWidget *mWidget = nullptr; + + QgsFeature mFeature; }; #endif // QGSQMLWIDGETWRAPPER_H