Skip to content

Commit

Permalink
[labeling][ui] Fix broken multiline alignment combo box
Browse files Browse the repository at this point in the history
- setup geometry generator ui stuff first to properly initiate combobox
- for line and polygons, don't set combobox to a missing item, default to left alignment
  • Loading branch information
nirvn committed May 28, 2019
1 parent 7f8d43e commit 575b0de
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions src/app/qgslabelinggui.cpp
Expand Up @@ -133,10 +133,14 @@ void QgsLabelingGui::setLayer( QgsMapLayer *mapLayer )
mFieldExpressionWidget->setEnabled( mMode == Labels );
mLabelingFrame->setEnabled( mMode == Labels );

updateWidgetForFormat( lyr.format() );

blockInitSignals( true );

mGeometryGenerator->setText( lyr.geometryGenerator );
mGeometryGeneratorGroupBox->setChecked( lyr.geometryGeneratorEnabled );
mGeometryGeneratorType->setCurrentIndex( mGeometryGeneratorType->findData( lyr.geometryGeneratorType ) );

updateWidgetForFormat( lyr.format() );

mFieldExpressionWidget->setRow( -1 );
mFieldExpressionWidget->setField( lyr.fieldName );
mCheckBoxSubstituteText->setChecked( lyr.useSubstitutions );
Expand Down Expand Up @@ -229,7 +233,18 @@ void QgsLabelingGui::setLayer( QgsMapLayer *mapLayer )
wrapCharacterEdit->setText( lyr.wrapChar );
mAutoWrapLengthSpinBox->setValue( lyr.autoWrapLength );
mAutoWrapTypeComboBox->setCurrentIndex( lyr.useMaxLineLengthForAutoWrap ? 0 : 1 );
mFontMultiLineAlignComboBox->setCurrentIndex( lyr.multilineAlign );

if ( ( int ) lyr.multilineAlign < mFontMultiLineAlignComboBox->count() )
{
mFontMultiLineAlignComboBox->setCurrentIndex( lyr.multilineAlign );
}
else
{
// the default pal layer settings for multiline alignment is to follow label placement, which isn't always available
// revert to left alignment in such case
mFontMultiLineAlignComboBox->setCurrentIndex( 0 );
}

chkPreserveRotation->setChecked( lyr.preserveRotation );

mPreviewBackgroundBtn->setColor( lyr.previewBkgrdColor );
Expand All @@ -253,10 +268,6 @@ void QgsLabelingGui::setLayer( QgsMapLayer *mapLayer )

mZIndexSpinBox->setValue( lyr.zIndex );

mGeometryGenerator->setText( lyr.geometryGenerator );
mGeometryGeneratorGroupBox->setChecked( lyr.geometryGeneratorEnabled );
mGeometryGeneratorType->setCurrentIndex( mGeometryGeneratorType->findData( lyr.geometryGeneratorType ) );

mDataDefinedProperties = lyr.dataDefinedProperties();

updatePlacementWidgets();
Expand Down

0 comments on commit 575b0de

Please sign in to comment.