void QgsAtlasCompositionWidget::on_mAtlasFilenameExpressionButton_clicked() { QgsAtlasComposition* atlasMap = &mComposition->atlasComposition(); if ( !atlasMap || !atlasMap->coverageLayer() ) { return; } QScopedPointer<QgsExpressionContext> context( mComposition->createExpressionContext() ); QgsExpressionBuilderDialog exprDlg( atlasMap->coverageLayer(), mAtlasFilenamePatternEdit->text(), this, "generic", *context ); exprDlg.setWindowTitle( tr( "Expression based filename" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { //set atlas filename expression mAtlasFilenamePatternEdit->setText( expression ); if ( ! atlasMap->setFilenamePattern( expression ) ) { //expression could not be set QMessageBox::warning( this , tr( "Could not evaluate filename pattern" ) , tr( "Could not set filename pattern as '%1'.\nParser error:\n%2" ) .arg( expression, atlasMap->filenamePatternErrorString() ) ); } } } }
void QgsAtlasCompositionWidget::on_mAtlasFeatureFilterButton_clicked() { QgsAtlasComposition* atlasMap = &mComposition->atlasComposition(); QgsVectorLayer* vl = dynamic_cast<QgsVectorLayer*>( mAtlasCoverageLayerComboBox->currentLayer() ); if ( !atlasMap || !vl ) { return; } QScopedPointer<QgsExpressionContext> context( mComposition->createExpressionContext() ); QgsExpressionBuilderDialog exprDlg( vl, mAtlasFeatureFilterEdit->text(), this, "generic", *context ); exprDlg.setWindowTitle( tr( "Expression based filter" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { mAtlasFeatureFilterEdit->setText( expression ); atlasMap->setFeatureFilter( mAtlasFeatureFilterEdit->text() ); updateAtlasFeatures(); } } }
void QgsLayoutAtlasWidget::mAtlasFilenameExpressionButton_clicked() { if ( !mAtlas || !mAtlas->coverageLayer() ) { return; } QgsExpressionContext context = mLayout->createExpressionContext(); QgsExpressionBuilderDialog exprDlg( mAtlas->coverageLayer(), mAtlasFilenamePatternEdit->text(), this, QStringLiteral( "generic" ), context ); exprDlg.setWindowTitle( tr( "Expression Based Filename" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { //set atlas filename expression mAtlasFilenamePatternEdit->setText( expression ); QString error; mLayout->undoStack()->beginCommand( mAtlas, tr( "Change Atlas Filename" ) ); if ( !mAtlas->setFilenameExpression( expression, error ) ) { //expression could not be set mMessageBar->pushWarning( tr( "Atlas" ), tr( "Could not set filename expression to '%1'.\nParser error:\n%2" ) .arg( expression, error ) ); } mLayout->undoStack()->endCommand(); } } }
void QgsComposerLabelWidget::on_mInsertExpressionButton_clicked() { if ( !mComposerLabel ) { return; } QString selText = mTextEdit->textCursor().selectedText(); // edit the selected expression if there's one if ( selText.startsWith( "[%" ) && selText.endsWith( "%]" ) ) selText = selText.mid( 2, selText.size() - 4 ); QgsVectorLayer* coverageLayer = 0; // use the atlas coverage layer, if any if ( mComposerLabel->composition()->atlasComposition().enabled() ) { coverageLayer = mComposerLabel->composition()->atlasComposition().coverageLayer(); } QgsExpressionBuilderDialog exprDlg( coverageLayer, selText, this ); exprDlg.setWindowTitle( tr( "Insert expression" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { mComposerLabel->beginCommand( tr( "Insert expression" ) ); mTextEdit->insertPlainText( "[%" + expression + "%]" ); mComposerLabel->endCommand(); } } }
void QgsLayoutAtlasWidget::mAtlasFeatureFilterButton_clicked() { QgsVectorLayer *vl = dynamic_cast<QgsVectorLayer *>( mAtlasCoverageLayerComboBox->currentLayer() ); if ( !vl ) { return; } QgsExpressionContext context = mLayout->createExpressionContext(); QgsExpressionBuilderDialog exprDlg( vl, mAtlasFeatureFilterEdit->text(), this, QStringLiteral( "generic" ), context ); exprDlg.setWindowTitle( tr( "Expression Based Filter" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { mAtlasFeatureFilterEdit->setText( expression ); QString error; mLayout->undoStack()->beginCommand( mAtlas, tr( "Change Atlas Filter" ) ); if ( !mAtlas->setFilterExpression( mAtlasFeatureFilterEdit->text(), error ) ) { //expression could not be set mMessageBar->pushWarning( tr( "Atlas" ), tr( "Could not set filter expression to '%1'.\nParser error:\n%2" ) .arg( mAtlasFeatureFilterEdit->text(), error ) ); } mLayout->undoStack()->endCommand(); updateAtlasFeatures(); } } }
void QgsComposerPictureWidget::on_mPictureExpressionButton_clicked() { if ( !mPicture ) { return; } QgsVectorLayer* vl = 0; QgsComposition* composition = mPicture->composition(); if ( composition ) { QgsAtlasComposition* atlasMap = &composition->atlasComposition(); if ( atlasMap ) { vl = atlasMap->coverageLayer(); } } QgsExpressionBuilderDialog exprDlg( vl, mPictureExpressionLineEdit->text(), this ); exprDlg.setWindowTitle( tr( "Expression based image path" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { mPictureExpressionLineEdit->setText( expression ); setPictureExpression(); } } }
void QgsComposerAttributeTableWidget::on_mFeatureFilterButton_clicked() { if ( !mComposerTable ) { return; } QgsExpressionBuilderDialog exprDlg( mComposerTable->vectorLayer(), mFeatureFilterEdit->text(), this ); exprDlg.setWindowTitle( tr( "Expression based filter" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { mFeatureFilterEdit->setText( expression ); QgsComposition* composition = mComposerTable->composition(); if ( composition ) { composition->beginMultiFrameCommand( mComposerTable, tr( "Table feature filter modified" ) ); } mComposerTable->setFeatureFilter( mFeatureFilterEdit->text() ); mComposerTable->update(); if ( composition ) { composition->endMultiFrameCommand(); } } } }
void QgsLayoutLabelWidget::mInsertExpressionButton_clicked() { if ( !mLabel ) { return; } QString selText = mTextEdit->textCursor().selectedText(); // edit the selected expression if there's one if ( selText.startsWith( QLatin1String( "[%" ) ) && selText.endsWith( QLatin1String( "%]" ) ) ) selText = selText.mid( 2, selText.size() - 4 ); // use the atlas coverage layer, if any #if 0 //TODO QgsVectorLayer *coverageLayer = atlasCoverageLayer(); #endif QgsVectorLayer *coverageLayer = nullptr; QgsExpressionContext context = mLabel->createExpressionContext(); QgsExpressionBuilderDialog exprDlg( coverageLayer, selText, this, QStringLiteral( "generic" ), context ); exprDlg.setWindowTitle( tr( "Insert Expression" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { mLabel->beginCommand( tr( "Insert expression" ) ); mTextEdit->insertPlainText( "[%" + expression + "%]" ); mLabel->endCommand(); } } }
void QgsComposerHtmlWidget::on_mInsertExpressionButton_clicked() { if ( !mHtml ) { return; } int line = 0; int index = 0; QString selText; if ( mHtmlEditor->hasSelectedText() ) { selText = mHtmlEditor->selectedText(); // edit the selected expression if there's one if ( selText.startsWith( "[%" ) && selText.endsWith( "%]" ) ) selText = selText.mid( 2, selText.size() - 4 ); } else { mHtmlEditor->getCursorPosition( &line, &index ); } // use the atlas coverage layer, if any QgsVectorLayer* coverageLayer = atlasCoverageLayer(); QScopedPointer<QgsExpressionContext> context( mHtml->createExpressionContext() ); QgsExpressionBuilderDialog exprDlg( coverageLayer, selText, this, "generic", *context ); exprDlg.setWindowTitle( tr( "Insert expression" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); QgsComposition* composition = mHtml->composition(); if ( !expression.isEmpty() && composition ) { blockSignals( true ); composition->beginMultiFrameCommand( mHtml, tr( "HTML source changed" ) ); if ( mHtmlEditor->hasSelectedText() ) { mHtmlEditor->replaceSelectedText( "[%" + expression + "%]" ); } else { mHtmlEditor->insertAt( "[%" + expression + "%]", line, index ); } composition->endMultiFrameCommand(); blockSignals( false ); } } }
void QgsAtlasCompositionWidget::on_mAtlasFilenameExpressionButton_clicked() { QgsAtlasComposition* atlasMap = &mComposition->atlasComposition(); if ( !atlasMap || !atlasMap->coverageLayer() ) { return; } QgsExpressionBuilderDialog exprDlg( atlasMap->coverageLayer(), mAtlasFilenamePatternEdit->text(), this ); exprDlg.setWindowTitle( tr( "Expression based filename" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { // will emit a textChanged signal mAtlasFilenamePatternEdit->setText( expression ); } } }
void QgsAtlasCompositionWidget::on_mAtlasFeatureFilterButton_clicked() { QgsAtlasComposition* atlasMap = &mComposition->atlasComposition(); if ( !atlasMap || !atlasMap->coverageLayer() ) { return; } QgsExpressionBuilderDialog exprDlg( atlasMap->coverageLayer(), mAtlasFeatureFilterEdit->text(), this ); exprDlg.setWindowTitle( tr( "Expression based filter" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); if ( !expression.isEmpty() ) { mAtlasFeatureFilterEdit->setText( expression ); atlasMap->setFeatureFilter( mAtlasFeatureFilterEdit->text() ); updateAtlasFeatures(); } } }
void QgsComposerMapGridWidget::on_mAnnotationFormatButton_clicked() { if ( !mComposerMapGrid || !mComposerMap ) { return; } QgsExpressionContext expressionContext = mComposerMapGrid->createExpressionContext(); QgsExpressionBuilderDialog exprDlg( nullptr, mComposerMapGrid->annotationExpression(), this, "generic", expressionContext ); exprDlg.setWindowTitle( tr( "Expression based annotation" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); mComposerMap->beginCommand( tr( "Annotation format changed" ) ); mComposerMapGrid->setAnnotationExpression( expression ); mComposerMap->updateBoundingRect(); mComposerMap->update(); mComposerMap->endCommand(); } }
void QgsLayoutMapGridWidget::mAnnotationFormatButton_clicked() { if ( !mMapGrid || !mMap ) { return; } QgsExpressionContext expressionContext = mMapGrid->createExpressionContext(); QgsExpressionBuilderDialog exprDlg( nullptr, mMapGrid->annotationExpression(), this, QStringLiteral( "generic" ), expressionContext ); exprDlg.setWindowTitle( tr( "Expression Based Annotation" ) ); if ( exprDlg.exec() == QDialog::Accepted ) { QString expression = exprDlg.expressionText(); mMap->beginCommand( tr( "Change Annotation Format" ) ); mMapGrid->setAnnotationExpression( expression ); mMap->updateBoundingRect(); mMap->update(); mMap->endCommand(); } }