Skip to content

Commit 852b1df

Browse files
committed
Fix potential crash in color assistant, set a default ramp
1 parent 599d985 commit 852b1df

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/gui/qgspropertyassistantwidget.cpp

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -416,15 +416,29 @@ QgsPropertyColorAssistantWidget::QgsPropertyColorAssistantWidget( QWidget* paren
416416

417417
bool supportsAlpha = definition.standardTemplate() == QgsPropertyDefinition::ColorWithAlpha;
418418
mNullColorButton->setAllowAlpha( supportsAlpha );
419+
mNullColorButton->setShowNoColor( true );
420+
mNullColorButton->setColorDialogTitle( tr( "Color for null values" ) );
421+
mNullColorButton->setContext( QStringLiteral( "symbology" ) );
422+
mNullColorButton->setNoColorString( tr( "Transparent" ) );
419423

420424
if ( const QgsColorRampTransformer* colorTransform = dynamic_cast< const QgsColorRampTransformer* >( initialState.transformer() ) )
421425
{
422426
mNullColorButton->setColor( colorTransform->nullColor() );
423-
mColorRampButton->setColorRamp( colorTransform->colorRamp() );
427+
if ( colorTransform->colorRamp() )
428+
mColorRampButton->setColorRamp( colorTransform->colorRamp() );
424429
}
425430

426431
connect( mNullColorButton, &QgsColorButton::colorChanged, this, &QgsPropertyColorAssistantWidget::widgetChanged );
427432
connect( mColorRampButton, &QgsColorRampButton::colorRampChanged, this, &QgsPropertyColorAssistantWidget::widgetChanged );
433+
434+
if ( !mColorRampButton->colorRamp() )
435+
{
436+
// set a default ramp
437+
QString defaultRampName = QgsProject::instance()->readEntry( QStringLiteral( "DefaultStyles" ), QStringLiteral( "/ColorRamp" ), QString() );
438+
std::unique_ptr< QgsColorRamp > defaultRamp( QgsStyle::defaultStyle()->colorRamp( !defaultRampName.isEmpty() ? defaultRampName : QStringLiteral( "Blues" ) ) );
439+
if ( defaultRamp )
440+
mColorRampButton->setColorRamp( defaultRamp.get() );
441+
}
428442
}
429443

430444
QgsColorRampTransformer* QgsPropertyColorAssistantWidget::createTransformer( double minValue, double maxValue ) const

0 commit comments

Comments
 (0)