Skip to content

Commit

Permalink
layout
Browse files Browse the repository at this point in the history
  • Loading branch information
signedav committed Sep 5, 2018
1 parent 561ea3b commit 4ad7067
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 23 deletions.
32 changes: 19 additions & 13 deletions src/app/qgsattributesformproperties.cpp
Expand Up @@ -1117,9 +1117,27 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
layout->addWidget( baseWidget );

QLineEdit *title = new QLineEdit( itemData.name() );

//qmlCode
QPlainTextEdit *qmlCode = new QPlainTextEdit( itemData.qmlElementEditorConfiguration().qmlCode );
qmlCode->setPlaceholderText( tr( "Insert QML code here..." ) );

QgsQmlWidgetWrapper *qmlWrapper = new QgsQmlWidgetWrapper( mLayer, nullptr, this );
qmlWrapper->setQmlCode( qmlCode->toPlainText() );
QgsFeature previewFeature;
mLayer->getFeatures().nextFeature( previewFeature );
qmlWrapper->setFeature( previewFeature );
//update preview on text change
connect( qmlCode, &QPlainTextEdit::textChanged, this, [ = ]
{
qmlWrapper->setQmlCode( qmlCode->toPlainText() );
qmlWrapper->reinitWidget();
QgsFeature previewFeature;
mLayer->getFeatures().nextFeature( previewFeature );
qmlWrapper->setFeature( previewFeature );
} );

//templates
QComboBox *qmlObjectTemplate = new QComboBox();
qmlObjectTemplate->addItem( tr( "Free text..." ) );
qmlObjectTemplate->addItem( tr( "Rectangle" ) );
Expand All @@ -1142,7 +1160,7 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
" width: 100\n"
" height: 100\n"
" color: \"steelblue\"\n"
" Text{ text: \"A rectangle\"\n"
" Text{ text: \"A rectangle\" }\n"
"}\n" ) );
break;
}
Expand Down Expand Up @@ -1179,18 +1197,6 @@ void DnDTree::onItemDoubleClicked( QTreeWidgetItem *item, int column )
qmlCode->insertPlainText( QStringLiteral( "expression.evaluate(\"%1\")" ).arg( expressionWidget->currentText() ) );
} );


QgsQmlWidgetWrapper *qmlWrapper = new QgsQmlWidgetWrapper( mLayer, nullptr, this );
qmlWrapper->setQmlCode( qmlCode->toPlainText() );
connect( qmlCode, &QPlainTextEdit::textChanged, this, [ = ]
{
qmlWrapper->setQmlCode( qmlCode->toPlainText() );
qmlWrapper->reinitWidget();
QgsFeature f;
mLayer->getFeatures().nextFeature( f );
qmlWrapper->setFeature( f );
} );

layout->addRow( tr( "Title" ), title );
QGroupBox *qmlCodeBox = new QGroupBox( tr( "QML Code" ) );
qmlCodeBox->setLayout( new QGridLayout );
Expand Down
12 changes: 4 additions & 8 deletions src/gui/editorwidgets/qgsqmlwidgetwrapper.cpp
Expand Up @@ -61,16 +61,9 @@ void QgsQmlWidgetWrapper::reinitWidget( )
if ( !mWidget )
return;

if ( !mQmlFile.open() )
{
QgsMessageLog::logMessage( tr( "Failed to open temporary QML file" ) );
return;
}

mWidget->engine()->clearComponentCache();
mWidget->setSource( QUrl::fromLocalFile( mQmlFile.fileName() ) );

mQmlFile.close();
initWidget( mWidget );
}


Expand All @@ -93,6 +86,9 @@ void QgsQmlWidgetWrapper::setFeature( const QgsFeature &feature )
if ( mWidget )
{
QgsExpressionContext context = layer()->createExpressionContext();
context << QgsExpressionContextUtils::globalScope()
<< QgsExpressionContextUtils::projectScope( QgsProject::instance() )
<< QgsExpressionContextUtils::layerScope( layer() );

context.setFeature( feature );

Expand Down
2 changes: 0 additions & 2 deletions src/gui/editorwidgets/qgsqmlwidgetwrapper.h
Expand Up @@ -46,8 +46,6 @@ class GUI_EXPORT QgsQmlWidgetWrapper : public QgsWidgetWrapper
QTemporaryFile mQmlFile;

QQuickWidget *mWidget = nullptr;

QgsFeature mFeature;
};


Expand Down

0 comments on commit 4ad7067

Please sign in to comment.