From 45b878331cffa433f051889edc832f3fcf0e098f Mon Sep 17 00:00:00 2001 From: Nyall Dawson Date: Mon, 27 Jun 2016 15:11:43 +1000 Subject: [PATCH] Fix cannot change color of class symbols (fix #15142) --- .../symbology-ng/qgscategorizedsymbolrendererv2widget.cpp | 6 +++++- src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp b/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp index 9348110c9f0..8ae06ff7238 100644 --- a/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgscategorizedsymbolrendererv2widget.cpp @@ -1029,7 +1029,11 @@ void QgsCategorizedSymbolRendererV2Widget::updateSymbolsFromWidget() Q_FOREACH ( int idx, selectedCats ) { QgsSymbolV2* newCatSymbol = mCategorizedSymbol->clone(); - newCatSymbol->setColor( mRenderer->categories().at( idx ).symbol()->color() ); + if ( selectedCats.count() > 1 ) + { + //if updating multiple categories, retain the existing category colors + newCatSymbol->setColor( mRenderer->categories().at( idx ).symbol()->color() ); + } mRenderer->updateCategorySymbol( idx, newCatSymbol ); } emit widgetChanged(); diff --git a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp index 9e91d43e2f2..943568ab621 100644 --- a/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp +++ b/src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp @@ -717,7 +717,11 @@ void QgsGraduatedSymbolRendererV2Widget::updateSymbolsFromWidget() { int rangeIdx = idx.row(); QgsSymbolV2* newRangeSymbol = mGraduatedSymbol->clone(); - newRangeSymbol->setColor( mRenderer->ranges()[rangeIdx].symbol()->color() ); + if ( selectedIndexes.count() > 1 ) + { + //if updating multiple ranges, retain the existing range colors + newRangeSymbol->setColor( mRenderer->ranges().at( rangeIdx ).symbol()->color() ); + } mRenderer->updateRangeSymbol( rangeIdx, newRangeSymbol ); } }