void QgsLabelingWidget::adaptToLayer() { if ( !mLayer ) return; whileBlocking( mLabelModeComboBox )->setCurrentIndex( -1 ); // pick the right mode of the layer if ( mLayer->labelsEnabled() && mLayer->labeling()->type() == QLatin1String( "rule-based" ) ) { mLabelModeComboBox->setCurrentIndex( 2 ); } else if ( mLayer->labelsEnabled() && mLayer->labeling()->type() == QLatin1String( "simple" ) ) { QgsPalLayerSettings lyr = mLayer->labeling()->settings(); mLabelModeComboBox->setCurrentIndex( lyr.drawLabels ? 1 : 3 ); } else { mLabelModeComboBox->setCurrentIndex( 0 ); } QgsLabelingGui *lg = qobject_cast<QgsLabelingGui *>( mWidget ); if ( lg ) { lg->updateUi(); } }