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_mAtlasFilenamePatternEdit_editingFinished() { QgsAtlasComposition* atlasMap = &mComposition->atlasComposition(); if ( !atlasMap ) { return; } if ( ! atlasMap->setFilenamePattern( mAtlasFilenamePatternEdit->text() ) ) { //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( mAtlasFilenamePatternEdit->text(), atlasMap->filenamePatternErrorString() ) ); } }