Skip to content

Commit 4ad7067

Browse files
committed
layout
1 parent 561ea3b commit 4ad7067

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

src/app/qgsattributesformproperties.cpp

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,9 +1117,27 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
11171117
layout->addWidget( baseWidget );
11181118

11191119
QLineEdit *title = new QLineEdit( itemData.name() );
1120+
1121+
//qmlCode
11201122
QPlainTextEdit *qmlCode = new QPlainTextEdit( itemData.qmlElementEditorConfiguration().qmlCode );
11211123
qmlCode->setPlaceholderText( tr( "Insert QML code here..." ) );
11221124

1125+
QgsQmlWidgetWrapper *qmlWrapper = new QgsQmlWidgetWrapper( mLayer, nullptr, this );
1126+
qmlWrapper->setQmlCode( qmlCode->toPlainText() );
1127+
QgsFeature previewFeature;
1128+
mLayer->getFeatures().nextFeature( previewFeature );
1129+
qmlWrapper->setFeature( previewFeature );
1130+
//update preview on text change
1131+
connect( qmlCode, &QPlainTextEdit::textChanged, this, [ = ]
1132+
{
1133+
qmlWrapper->setQmlCode( qmlCode->toPlainText() );
1134+
qmlWrapper->reinitWidget();
1135+
QgsFeature previewFeature;
1136+
mLayer->getFeatures().nextFeature( previewFeature );
1137+
qmlWrapper->setFeature( previewFeature );
1138+
} );
1139+
1140+
//templates
11231141
QComboBox *qmlObjectTemplate = new QComboBox();
11241142
qmlObjectTemplate->addItem( tr( "Free text..." ) );
11251143
qmlObjectTemplate->addItem( tr( "Rectangle" ) );
@@ -1142,7 +1160,7 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
11421160
" width: 100\n"
11431161
" height: 100\n"
11441162
" color: \"steelblue\"\n"
1145-
" Text{ text: \"A rectangle\"\n"
1163+
" Text{ text: \"A rectangle\" }\n"
11461164
"}\n" ) );
11471165
break;
11481166
}
@@ -1179,18 +1197,6 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
11791197
qmlCode->insertPlainText( QStringLiteral( "expression.evaluate(\"%1\")" ).arg( expressionWidget->currentText() ) );
11801198
} );
11811199

1182-
1183-
QgsQmlWidgetWrapper *qmlWrapper = new QgsQmlWidgetWrapper( mLayer, nullptr, this );
1184-
qmlWrapper->setQmlCode( qmlCode->toPlainText() );
1185-
connect( qmlCode, &QPlainTextEdit::textChanged, this, [ = ]
1186-
{
1187-
qmlWrapper->setQmlCode( qmlCode->toPlainText() );
1188-
qmlWrapper->reinitWidget();
1189-
QgsFeature f;
1190-
mLayer->getFeatures().nextFeature( f );
1191-
qmlWrapper->setFeature( f );
1192-
} );
1193-
11941200
layout->addRow( tr( "Title" ), title );
11951201
QGroupBox *qmlCodeBox = new QGroupBox( tr( "QML Code" ) );
11961202
qmlCodeBox->setLayout( new QGridLayout );

src/gui/editorwidgets/qgsqmlwidgetwrapper.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,9 @@ void QgsQmlWidgetWrapper::reinitWidget( )
6161
if ( !mWidget )
6262
return;
6363

64-
if ( !mQmlFile.open() )
65-
{
66-
QgsMessageLog::logMessage( tr( "Failed to open temporary QML file" ) );
67-
return;
68-
}
69-
7064
mWidget->engine()->clearComponentCache();
71-
mWidget->setSource( QUrl::fromLocalFile( mQmlFile.fileName() ) );
7265

73-
mQmlFile.close();
66+
initWidget( mWidget );
7467
}
7568

7669

@@ -93,6 +86,9 @@ void QgsQmlWidgetWrapper::setFeature( const QgsFeature &feature )
9386
if ( mWidget )
9487
{
9588
QgsExpressionContext context = layer()->createExpressionContext();
89+
context << QgsExpressionContextUtils::globalScope()
90+
<< QgsExpressionContextUtils::projectScope( QgsProject::instance() )
91+
<< QgsExpressionContextUtils::layerScope( layer() );
9692

9793
context.setFeature( feature );
9894

src/gui/editorwidgets/qgsqmlwidgetwrapper.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ class GUI_EXPORT QgsQmlWidgetWrapper : public QgsWidgetWrapper
4646
QTemporaryFile mQmlFile;
4747

4848
QQuickWidget *mWidget = nullptr;
49-
50-
QgsFeature mFeature;
5149
};
5250

5351

0 commit comments

Comments
 (0)