Skip to content

Commit 3d8d3ac

Browse files
committed
layout and expressions
1 parent 6ac41b4 commit 3d8d3ac

File tree

2 files changed

+32
-5
lines changed

2 files changed

+32
-5
lines changed

src/app/qgsattributesformproperties.cpp

+19-5
Original file line numberDiff line numberDiff line change
@@ -1120,6 +1120,7 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
11201120
QLineEdit *title = new QLineEdit( itemData.name() );
11211121
//qml code
11221122
QPlainTextEdit *qmlCode = new QPlainTextEdit( itemData.qmlElementEditorConfiguration().qmlCode );
1123+
qmlCode->setMinimumWidth( 400 );
11231124
//template to select
11241125
QComboBox *qmlObjectTemplate = new QComboBox();
11251126
qmlObjectTemplate->addItem( "Rectangle" );
@@ -1145,7 +1146,7 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
11451146
"import QtCharts 2.0\n"
11461147
"\n"
11471148
"ChartView {\n"
1148-
" width: 600\n"
1149+
" width: 400\n"
11491150
" height: 400\n"
11501151
"\n"
11511152
" PieSeries {\n"
@@ -1165,11 +1166,21 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
11651166
//attributes to select
11661167
QgsFieldComboBox *attributeFieldCombo = new QgsFieldComboBox();
11671168
attributeFieldCombo->setLayer( mLayer );
1168-
connect( attributeFieldCombo, &QgsFieldComboBox::fieldChanged, qmlCode, [ = ]( QString attributeName )
1169+
connect( attributeFieldCombo, &QgsFieldComboBox::fieldChanged, this, [ = ]( QString attributeName )
11691170
{
11701171
qmlCode->insertPlainText( QStringLiteral( "feature.attribute(\"%1\")" ).arg( attributeName ) );
11711172
} );
11721173

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+
} );
11731184

11741185
QgsQmlWidgetWrapper *qmlWrapper = new QgsQmlWidgetWrapper( mLayer, nullptr, this );
11751186
qmlWrapper->setQmlCode( qmlCode->toPlainText() );
@@ -1179,15 +1190,19 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
11791190
qmlWrapper->reinitWidget();
11801191
} );
11811192

1182-
11831193
layout->addRow( tr( "Title" ), title );
11841194
QGroupBox *qmlCodeBox = new QGroupBox( tr( "QML Code" ) );
11851195
qmlCodeBox->setLayout( new QGridLayout );
11861196
qmlCodeBox->layout()->addWidget( qmlObjectTemplate );
11871197
qmlCodeBox->layout()->addWidget( attributeFieldCombo );
1198+
qmlCodeBox->layout()->addWidget( expressionWidget );
11881199
qmlCodeBox->layout()->addWidget( qmlCode );
11891200
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 );
11911206

11921207
QDialogButtonBox *buttonBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel );
11931208

@@ -1196,7 +1211,6 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
11961211

11971212
mainLayout->addWidget( buttonBox );
11981213

1199-
12001214
if ( dlg.exec() )
12011215
{
12021216
QgsAttributesFormProperties::QmlElementEditorConfiguration qmlEdCfg;

src/gui/editorwidgets/qgsqmlwidgetwrapper.h

+13
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,17 @@ class GUI_EXPORT QgsQmlWidgetWrapper : public QgsWidgetWrapper
5151
QgsFeature mFeature;
5252
};
5353

54+
/*
55+
class GUI_EXPORT QmlExpression
56+
{
57+
Q_GADGET
58+
59+
public:
60+
QgsExpressionContext expressionContext();
61+
void setExpressionContext( QgsExpressionContext expressionContext );
62+
63+
Q_INVOKABLE evaluate();
64+
}
65+
*/
66+
5467
#endif // QGSQMLWIDGETWRAPPER_H

0 commit comments

Comments
 (0)