diff --git a/src/app/composer/qgscomposermapwidget.cpp b/src/app/composer/qgscomposermapwidget.cpp index 118b48afb02..00a0de0a253 100644 --- a/src/app/composer/qgscomposermapwidget.cpp +++ b/src/app/composer/qgscomposermapwidget.cpp @@ -773,18 +773,20 @@ void QgsComposerMapWidget::on_mOverviewFrameStyleButton_clicked() return; } - mComposerMap->beginCommand( tr( "Overview frame style changed" ) ); - QgsSymbolV2SelectorDialog d( mComposerMap->overviewFrameMapSymbol(), QgsStyleV2::defaultStyle(), 0 ); + QgsFillSymbolV2* newSymbol = dynamic_cast( mComposerMap->overviewFrameMapSymbol()->clone() ); + QgsSymbolV2SelectorDialog d( newSymbol, QgsStyleV2::defaultStyle(), 0 ); //QgsSymbolV2PropertiesDialog d( mComposerMap->overviewFrameMapSymbol(), 0, this ); if ( d.exec() == QDialog::Accepted ) { + mComposerMap->beginCommand( tr( "Overview frame style changed" ) ); + mComposerMap->setOverviewFrameMapSymbol( newSymbol ); updateOverviewSymbolMarker(); mComposerMap->endCommand(); } else { - mComposerMap->cancelCommand(); + delete newSymbol; } } @@ -898,19 +900,21 @@ void QgsComposerMapWidget::on_mGridLineStyleButton_clicked() return; } - mComposerMap->beginCommand( tr( "Grid line style changed" ) ); - QgsSymbolV2SelectorDialog d( mComposerMap->gridLineSymbol(), QgsStyleV2::defaultStyle(), 0 ); + QgsLineSymbolV2* newSymbol = dynamic_cast( mComposerMap->gridLineSymbol()->clone() ); + QgsSymbolV2SelectorDialog d( newSymbol, QgsStyleV2::defaultStyle(), 0 ); + if ( d.exec() == QDialog::Accepted ) { + mComposerMap->beginCommand( tr( "Grid line style changed" ) ); + mComposerMap->setGridLineSymbol( newSymbol ); updateLineSymbolMarker(); mComposerMap->endCommand(); + mComposerMap->update(); } else { - mComposerMap->cancelCommand(); + delete newSymbol; } - - mComposerMap->update(); } void QgsComposerMapWidget::on_mGridTypeComboBox_currentIndexChanged( const QString& text ) diff --git a/src/app/composer/qgscomposershapewidget.cpp b/src/app/composer/qgscomposershapewidget.cpp index 419948856ec..9249a67edd2 100644 --- a/src/app/composer/qgscomposershapewidget.cpp +++ b/src/app/composer/qgscomposershapewidget.cpp @@ -111,17 +111,19 @@ void QgsComposerShapeWidget::on_mShapeStyleButton_clicked() coverageLayer = mComposerShape->composition()->atlasComposition().coverageLayer(); } - mComposerShape->beginCommand( tr( "Shape style changed" ) ); - QgsSymbolV2SelectorDialog d( mComposerShape->shapeStyleSymbol(), QgsStyleV2::defaultStyle(), coverageLayer ); + QgsFillSymbolV2* newSymbol = dynamic_cast( mComposerShape->shapeStyleSymbol()->clone() ); + QgsSymbolV2SelectorDialog d( newSymbol, QgsStyleV2::defaultStyle(), coverageLayer ); if ( d.exec() == QDialog::Accepted ) { + mComposerShape->beginCommand( tr( "Shape style changed" ) ); + mComposerShape->setShapeStyleSymbol( newSymbol ); updateShapeStyle(); mComposerShape->endCommand(); } else { - mComposerShape->cancelCommand(); + delete newSymbol; } } diff --git a/src/app/composer/qgscompositionwidget.cpp b/src/app/composer/qgscompositionwidget.cpp index 71d0979fcdc..d9a3f26fc24 100644 --- a/src/app/composer/qgscompositionwidget.cpp +++ b/src/app/composer/qgscompositionwidget.cpp @@ -400,12 +400,19 @@ void QgsCompositionWidget::on_mPageStyleButton_clicked() { coverageLayer = mComposition->atlasComposition().coverageLayer(); } - QgsSymbolV2SelectorDialog d( mComposition->pageStyleSymbol(), QgsStyleV2::defaultStyle(), coverageLayer ); + + QgsFillSymbolV2* newSymbol = dynamic_cast( mComposition->pageStyleSymbol()->clone() ); + QgsSymbolV2SelectorDialog d( newSymbol, QgsStyleV2::defaultStyle(), coverageLayer ); if ( d.exec() == QDialog::Accepted ) { + mComposition->setPageStyleSymbol( newSymbol ); updatePageStyle(); } + else + { + delete newSymbol; + } } void QgsCompositionWidget::updatePageStyle()