Skip to content

Commit 575b0de

Browse files
committedMay 28, 2019
[labeling][ui] Fix broken multiline alignment combo box
- 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
1 parent 7f8d43e commit 575b0de

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed
 

‎src/app/qgslabelinggui.cpp

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,14 @@ void QgsLabelingGui::setLayer( QgsMapLayer *mapLayer )
133133
mFieldExpressionWidget->setEnabled( mMode == Labels );
134134
mLabelingFrame->setEnabled( mMode == Labels );
135135

136-
updateWidgetForFormat( lyr.format() );
137-
138136
blockInitSignals( true );
139137

138+
mGeometryGenerator->setText( lyr.geometryGenerator );
139+
mGeometryGeneratorGroupBox->setChecked( lyr.geometryGeneratorEnabled );
140+
mGeometryGeneratorType->setCurrentIndex( mGeometryGeneratorType->findData( lyr.geometryGeneratorType ) );
141+
142+
updateWidgetForFormat( lyr.format() );
143+
140144
mFieldExpressionWidget->setRow( -1 );
141145
mFieldExpressionWidget->setField( lyr.fieldName );
142146
mCheckBoxSubstituteText->setChecked( lyr.useSubstitutions );
@@ -229,7 +233,18 @@ void QgsLabelingGui::setLayer( QgsMapLayer *mapLayer )
229233
wrapCharacterEdit->setText( lyr.wrapChar );
230234
mAutoWrapLengthSpinBox->setValue( lyr.autoWrapLength );
231235
mAutoWrapTypeComboBox->setCurrentIndex( lyr.useMaxLineLengthForAutoWrap ? 0 : 1 );
232-
mFontMultiLineAlignComboBox->setCurrentIndex( lyr.multilineAlign );
236+
237+
if ( ( int ) lyr.multilineAlign < mFontMultiLineAlignComboBox->count() )
238+
{
239+
mFontMultiLineAlignComboBox->setCurrentIndex( lyr.multilineAlign );
240+
}
241+
else
242+
{
243+
// the default pal layer settings for multiline alignment is to follow label placement, which isn't always available
244+
// revert to left alignment in such case
245+
mFontMultiLineAlignComboBox->setCurrentIndex( 0 );
246+
}
247+
233248
chkPreserveRotation->setChecked( lyr.preserveRotation );
234249

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

254269
mZIndexSpinBox->setValue( lyr.zIndex );
255270

256-
mGeometryGenerator->setText( lyr.geometryGenerator );
257-
mGeometryGeneratorGroupBox->setChecked( lyr.geometryGeneratorEnabled );
258-
mGeometryGeneratorType->setCurrentIndex( mGeometryGeneratorType->findData( lyr.geometryGeneratorType ) );
259-
260271
mDataDefinedProperties = lyr.dataDefinedProperties();
261272

262273
updatePlacementWidgets();

0 commit comments

Comments
 (0)
Please sign in to comment.