28 : QgsLabelingGui( mapCanvas, parent, layer )
36 QWidget *labelWithWidget =
new QWidget();
37 QGridLayout *gLayout =
new QGridLayout();
38 gLayout->setContentsMargins( 0, 0, 0, 0 );
39 gLayout->addWidget(
new QLabel( tr(
"Value" ) ), 0, 0 );
41 mBandCombo->setLayer( layer );
42 gLayout->addWidget( mBandCombo, 0, 1 );
43 gLayout->setColumnStretch( 0, 1 );
44 gLayout->setColumnStretch( 1, 2 );
46 gLayout->addWidget(
new QLabel( tr(
"Number format" ) ), 1, 0 );
48 QPushButton *numberFormatButton =
new QPushButton( tr(
"Customize" ) );
49 connect( numberFormatButton, &QPushButton::clicked,
this, &QgsRasterLabelSettingsWidget::changeNumberFormat );
51 gLayout->addWidget( numberFormatButton, 1, 1 );
53 gLayout->addWidget(
new QLabel( tr(
"Resample over" ) ), 2, 0 );
55 mResampleOverSpin->setMinimum( 1 );
56 mResampleOverSpin->setMaximum( 128 );
57 mResampleOverSpin->setClearValue( 1 );
58 mResampleOverSpin->setSuffix( tr(
" pixels" ) );
59 connect( mResampleOverSpin, qOverload<int>( &QgsSpinBox::valueChanged ),
this, &QgsRasterLabelSettingsWidget::widgetChanged );
60 gLayout->addWidget( mResampleOverSpin, 2, 1 );
62 gLayout->addWidget(
new QLabel( tr(
"Resample using" ) ), 3, 0 );
63 mResampleMethodComboBox =
new QComboBox();
72 connect( mResampleMethodComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
this, &QgsRasterLabelSettingsWidget::widgetChanged );
73 gLayout->addWidget( mResampleMethodComboBox, 3, 1 );
75 labelWithWidget->setLayout( gLayout );
77 mStackedWidgetLabelWith->addWidget( labelWithWidget );
78 mStackedWidgetLabelWith->setCurrentWidget( labelWithWidget );
82 const int prevIndex = mOptionsTab->currentIndex();
84 setPropertyOverrideButtonsVisible(
true );
88 mCalloutItem =
nullptr;
92 mOptionsTab->removeTab( mOptionsTab->indexOf( calloutsTab ) );
93 mOptionsTab->removeTab( mOptionsTab->indexOf( maskTab ) );
95 mLabelStackedWidget->removeWidget( mLabelPage_Callouts );
96 mLabelStackedWidget->removeWidget( mLabelPage_Mask );
107 mLabelStackedWidget->setCurrentIndex( prevIndex - 1 );
108 mOptionsTab->setCurrentIndex( prevIndex - 1 );
113 mLabelStackedWidget->setCurrentIndex( prevIndex - 2 );
114 mOptionsTab->setCurrentIndex( prevIndex - 2 );
119 mLabelStackedWidget->setCurrentIndex( 0 );
120 mOptionsTab->setCurrentIndex( 0 );
128 mDirectSymbolsFrame->hide();
129 mFormatNumFrame->hide();
130 mFormatNumChkBx->hide();
131 mFormatNumDDBtn->hide();
132 mCheckBoxSubstituteText->hide();
133 mToolButtonConfigureSubstitutes->hide();
134 mLabelWrapOnCharacter->hide();
135 wrapCharacterEdit->hide();
136 mWrapCharDDBtn->hide();
137 mLabelWrapLinesTo->hide();
138 mAutoWrapLengthSpinBox->hide();
139 mAutoWrapLengthDDBtn->hide();
140 mAutoWrapTypeComboBox->hide();
141 mFontMultiLineLabel->hide();
142 mFontMultiLineAlignComboBox->hide();
143 mFontMultiLineAlignDDBtn->hide();
144 mGeometryGeneratorGroupBox->hide();
145 mObstaclesGroupBox->hide();
146 mPlacementDDGroupBox->hide();
147 mPlacementGroupBox->hide();
148 mInferiorPlacementWidget->hide();
149 mLabelRenderingDDFrame->hide();
150 mUpsidedownFrame->hide();
151 mLabelEveryPartWidget->hide();
152 mFramePixelSizeVisibility->hide();
155 mMinSizeFrame->show();
156 mMinSizeLabel->setText( tr(
"Suppress labeling of pixels smaller than" ) );
158 mLimitLabelChkBox->setText( tr(
"Limit number of pixels to be labeled to" ) );
161 mPrioritySlider->setRange( 0, 100 );
162 mPrioritySlider->setTickInterval( 10 );
173 setFormat( simpleLabeling->textFormat() );
174 mBandCombo->setBand( simpleLabeling->band() );
175 mPrioritySlider->setValue(
static_cast<int>( 100 - simpleLabeling->priority() * 100 ) );
177 mComboOverlapHandling->setCurrentIndex( mComboOverlapHandling->findData(
static_cast<int>( simpleLabeling->placementSettings().overlapHandling() ) ) );
178 mZIndexSpinBox->setValue( simpleLabeling->zIndex() );
180 mNumberFormat.reset( format->clone() );
182 mLimitLabelChkBox->setChecked( simpleLabeling->thinningSettings().limitNumberOfLabelsEnabled() );
183 mLimitLabelSpinBox->setValue( simpleLabeling->thinningSettings().maximumNumberLabels() );
184 mMinSizeSpinBox->setValue( simpleLabeling->thinningSettings().minimumFeatureSize() );
186 mScaleBasedVisibilityChkBx->setChecked( simpleLabeling->hasScaleBasedVisibility() );
187 mMinScaleWidget->setScale( simpleLabeling->minimumScale() );
188 mMaxScaleWidget->setScale( simpleLabeling->maximumScale() );
190 mResampleOverSpin->setValue( simpleLabeling->resampleOver() );
191 mResampleMethodComboBox->setCurrentIndex( mResampleMethodComboBox->findData( QVariant::fromValue( simpleLabeling->resampleMethod() ) ) );
201 simpleLabeling->setTextFormat( format() );
202 simpleLabeling->setBand( mBandCombo->currentBand() );
203 simpleLabeling->setPriority( 1.0 - mPrioritySlider->value() / 100.0 );
204 simpleLabeling->placementSettings().setOverlapHandling(
static_cast<Qgis::LabelOverlapHandling>( mComboOverlapHandling->currentData().toInt() ) );
205 simpleLabeling->setZIndex( mZIndexSpinBox->value() );
206 simpleLabeling->setNumericFormat( mNumberFormat->clone() );
208 simpleLabeling->thinningSettings().setLimitNumberLabelsEnabled( mLimitLabelChkBox->isChecked() );
209 simpleLabeling->thinningSettings().setMaximumNumberLabels( mLimitLabelSpinBox->value() );
210 simpleLabeling->thinningSettings().setMinimumFeatureSize( mMinSizeSpinBox->value() );
212 simpleLabeling->setScaleBasedVisibility( mScaleBasedVisibilityChkBx->isChecked() );
213 simpleLabeling->setMinimumScale( mMinScaleWidget->scale() );
214 simpleLabeling->setMaximumScale( mMaxScaleWidget->scale() );
216 simpleLabeling->setResampleOver( mResampleOverSpin->value() );