@@ -1117,9 +1117,27 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
1117
1117
layout->addWidget ( baseWidget );
1118
1118
1119
1119
QLineEdit *title = new QLineEdit ( itemData.name () );
1120
+
1121
+ // qmlCode
1120
1122
QPlainTextEdit *qmlCode = new QPlainTextEdit ( itemData.qmlElementEditorConfiguration ().qmlCode );
1121
1123
qmlCode->setPlaceholderText ( tr ( " Insert QML code here..." ) );
1122
1124
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
1123
1141
QComboBox *qmlObjectTemplate = new QComboBox ();
1124
1142
qmlObjectTemplate->addItem ( tr ( " Free text..." ) );
1125
1143
qmlObjectTemplate->addItem ( tr ( " Rectangle" ) );
@@ -1142,7 +1160,7 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
1142
1160
" width: 100\n "
1143
1161
" height: 100\n "
1144
1162
" color: \" steelblue\"\n "
1145
- " Text{ text: \" A rectangle\"\n "
1163
+ " Text{ text: \" A rectangle\" } \n "
1146
1164
" }\n " ) );
1147
1165
break ;
1148
1166
}
@@ -1179,18 +1197,6 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
1179
1197
qmlCode->insertPlainText ( QStringLiteral ( " expression.evaluate(\" %1\" )" ).arg ( expressionWidget->currentText () ) );
1180
1198
} );
1181
1199
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
-
1194
1200
layout->addRow ( tr ( " Title" ), title );
1195
1201
QGroupBox *qmlCodeBox = new QGroupBox ( tr ( " QML Code" ) );
1196
1202
qmlCodeBox->setLayout ( new QGridLayout );
0 commit comments