@@ -1120,6 +1120,7 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
1120
1120
QLineEdit *title = new QLineEdit ( itemData.name () );
1121
1121
// qml code
1122
1122
QPlainTextEdit *qmlCode = new QPlainTextEdit ( itemData.qmlElementEditorConfiguration ().qmlCode );
1123
+ qmlCode->setMinimumWidth ( 400 );
1123
1124
// template to select
1124
1125
QComboBox *qmlObjectTemplate = new QComboBox ();
1125
1126
qmlObjectTemplate->addItem ( " Rectangle" );
@@ -1145,7 +1146,7 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
1145
1146
" import QtCharts 2.0\n "
1146
1147
" \n "
1147
1148
" ChartView {\n "
1148
- " width: 600 \n "
1149
+ " width: 400 \n "
1149
1150
" height: 400\n "
1150
1151
" \n "
1151
1152
" PieSeries {\n "
@@ -1165,11 +1166,21 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
1165
1166
// attributes to select
1166
1167
QgsFieldComboBox *attributeFieldCombo = new QgsFieldComboBox ();
1167
1168
attributeFieldCombo->setLayer ( mLayer );
1168
- connect ( attributeFieldCombo, &QgsFieldComboBox::fieldChanged, qmlCode , [ = ]( QString attributeName )
1169
+ connect ( attributeFieldCombo, &QgsFieldComboBox::fieldChanged, this , [ = ]( QString attributeName )
1169
1170
{
1170
1171
qmlCode->insertPlainText ( QStringLiteral ( " feature.attribute(\" %1\" )" ).arg ( attributeName ) );
1171
1172
} );
1172
1173
1174
+ QgsFieldExpressionWidget *expressionWidget = new QgsFieldExpressionWidget;
1175
+ expressionWidget->setLayer ( mLayer );
1176
+ expressionWidget->setExpressionDialogTitle ( tr ( " Expression" ) );
1177
+
1178
+ connect ( expressionWidget, static_cast < void ( QgsFieldExpressionWidget::* )( const QString & ) > ( &QgsFieldExpressionWidget::fieldChanged ), this , [ = ]( const QString & expressionText )
1179
+ {
1180
+ qmlCode->insertPlainText ( QStringLiteral ( " expression(%1)" ).arg ( expressionText ) );
1181
+ QgsLogger::warning ( QStringLiteral ( " Do it..." ) );
1182
+ // expression needs to be added here...
1183
+ } );
1173
1184
1174
1185
QgsQmlWidgetWrapper *qmlWrapper = new QgsQmlWidgetWrapper ( mLayer , nullptr , this );
1175
1186
qmlWrapper->setQmlCode ( qmlCode->toPlainText () );
@@ -1179,15 +1190,19 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
1179
1190
qmlWrapper->reinitWidget ();
1180
1191
} );
1181
1192
1182
-
1183
1193
layout->addRow ( tr ( " Title" ), title );
1184
1194
QGroupBox *qmlCodeBox = new QGroupBox ( tr ( " QML Code" ) );
1185
1195
qmlCodeBox->setLayout ( new QGridLayout );
1186
1196
qmlCodeBox->layout ()->addWidget ( qmlObjectTemplate );
1187
1197
qmlCodeBox->layout ()->addWidget ( attributeFieldCombo );
1198
+ qmlCodeBox->layout ()->addWidget ( expressionWidget );
1188
1199
qmlCodeBox->layout ()->addWidget ( qmlCode );
1189
1200
layout->addRow ( qmlCodeBox );
1190
- qmlLayout->addWidget ( qmlWrapper->widget () );
1201
+ QGroupBox *qmlPreviewBox = new QGroupBox ( tr ( " Preview" ) );
1202
+ qmlPreviewBox->setLayout ( new QGridLayout );
1203
+ qmlPreviewBox->setMinimumWidth ( 400 );
1204
+ qmlPreviewBox->layout ()->addWidget (qmlWrapper->widget ());
1205
+ qmlLayout->addWidget ( qmlPreviewBox );
1191
1206
1192
1207
QDialogButtonBox *buttonBox = new QDialogButtonBox ( QDialogButtonBox::Ok | QDialogButtonBox::Cancel );
1193
1208
@@ -1196,7 +1211,6 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
1196
1211
1197
1212
mainLayout->addWidget ( buttonBox );
1198
1213
1199
-
1200
1214
if ( dlg.exec () )
1201
1215
{
1202
1216
QgsAttributesFormProperties::QmlElementEditorConfiguration qmlEdCfg;
0 commit comments