Skip to content

Commit 89c2b4b

Browse files
committed
[bugfix]Changing a range or category symbol should not update the [Change] button's (Fixes #17902)
Also avoid modification of the *Change* button if the dialog is not accepted
1 parent ee417aa commit 89c2b4b

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

src/gui/symbology/qgscategorizedsymbolrendererwidget.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -550,11 +550,15 @@ void QgsCategorizedSymbolRendererWidget::changeCategorizedSymbol()
550550

551551
connect( dlg, &QgsPanelWidget::widgetChanged, this, &QgsCategorizedSymbolRendererWidget::updateSymbolsFromWidget );
552552
connect( dlg, &QgsPanelWidget::panelAccepted, this, &QgsCategorizedSymbolRendererWidget::cleanUpSymbolSelector );
553+
connect( dlg, &QgsPanelWidget::panelAccepted, this, &QgsCategorizedSymbolRendererWidget::updateCategorizedSymbolIcon );
553554
openPanel( dlg );
554555
}
555556

556557
void QgsCategorizedSymbolRendererWidget::updateCategorizedSymbolIcon()
557558
{
559+
if ( !mCategorizedSymbol )
560+
return;
561+
558562
QIcon icon = QgsSymbolLayerUtils::symbolPreviewIcon( mCategorizedSymbol.get(), btnChangeCategorizedSymbol->iconSize() );
559563
btnChangeCategorizedSymbol->setIcon( icon );
560564
}
@@ -950,7 +954,6 @@ void QgsCategorizedSymbolRendererWidget::updateSymbolsFromWidget()
950954
QgsSymbolSelectorWidget *dlg = qobject_cast<QgsSymbolSelectorWidget *>( sender() );
951955
mCategorizedSymbol.reset( dlg->symbol()->clone() );
952956

953-
updateCategorizedSymbolIcon();
954957
// When there is a selection, change the selected symbols only
955958
QItemSelectionModel *m = viewCategories->selectionModel();
956959
QModelIndexList i = m->selectedRows();
@@ -973,10 +976,12 @@ void QgsCategorizedSymbolRendererWidget::updateSymbolsFromWidget()
973976
}
974977
emit widgetChanged();
975978
}
976-
return;
979+
}
980+
else
981+
{
982+
mRenderer->updateSymbols( mCategorizedSymbol.get() );
977983
}
978984

979-
mRenderer->updateSymbols( mCategorizedSymbol.get() );
980985
emit widgetChanged();
981986
}
982987

src/gui/symbology/qgsgraduatedsymbolrendererwidget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -780,7 +780,6 @@ void QgsGraduatedSymbolRendererWidget::updateSymbolsFromWidget()
780780
}
781781
else
782782
{
783-
updateGraduatedSymbolIcon();
784783
mRenderer->updateSymbols( mGraduatedSymbol.get() );
785784
}
786785

@@ -880,6 +879,7 @@ void QgsGraduatedSymbolRendererWidget::changeGraduatedSymbol()
880879

881880
connect( dlg, &QgsPanelWidget::widgetChanged, this, &QgsGraduatedSymbolRendererWidget::updateSymbolsFromWidget );
882881
connect( dlg, &QgsPanelWidget::panelAccepted, this, &QgsGraduatedSymbolRendererWidget::cleanUpSymbolSelector );
882+
connect( dlg, &QgsPanelWidget::panelAccepted, this, &QgsGraduatedSymbolRendererWidget::updateGraduatedSymbolIcon );
883883
openPanel( dlg );
884884
}
885885

0 commit comments

Comments
 (0)