QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
labeling
qgslabelremoveduplicatesettingswidget.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgslabelremoveduplicatessettingswidget.h
3
----------------------
4
begin : December 2019
5
copyright : (C) 2019 by Nyall Dawson
6
email : nyall dot dawson at gmail dot com
7
***************************************************************************
8
* *
9
* This program is free software; you can redistribute it and/or modify *
10
* it under the terms of the GNU General Public License as published by *
11
* the Free Software Foundation; either version 2 of the License, or *
12
* (at your option) any later version. *
13
* *
14
***************************************************************************/
15
16
17
#include "
qgslabelremoveduplicatesettingswidget.h
"
18
19
#include "
qgsexpressioncontextutils.h
"
20
21
#include "moc_qgslabelremoveduplicatesettingswidget.cpp"
22
23
QgsLabelRemoveDuplicatesSettingsWidget::QgsLabelRemoveDuplicatesSettingsWidget
( QWidget *parent,
QgsMapLayer
*layer )
24
:
QgsLabelSettingsWidgetBase
( parent, layer )
25
{
26
setupUi(
this
);
27
28
setPanelTitle
( tr(
"Duplicate Removal"
) );
29
30
mNoRepeatDistUnitWidget->setUnits(
31
QgsUnitTypes::RenderUnitList
() <<
Qgis::RenderUnit::Millimeters
<<
Qgis::RenderUnit::MetersInMapUnits
<<
Qgis::RenderUnit::MapUnits
<<
Qgis::RenderUnit::Pixels
<<
Qgis::RenderUnit::Points
<<
Qgis::RenderUnit::Inches
32
);
33
34
connect( mNoRepeatDistSpinBox, qOverload<double>( &QDoubleSpinBox::valueChanged ),
this
, [
this
](
double
) {
35
if
( !mBlockSignals )
36
emit
changed
();
37
} );
38
connect( mNoRepeatDistUnitWidget, &
QgsUnitSelectionWidget::changed
,
this
, [
this
] {
39
if
( !mBlockSignals )
40
emit
changed
();
41
} );
42
43
registerDataDefinedButton
( mNoRepeatDistDDBtn,
QgsPalLayerSettings::Property::RemoveDuplicateLabelDistance
);
44
}
45
46
void
QgsLabelRemoveDuplicatesSettingsWidget::setSettings
(
const
QgsLabelThinningSettings
&
settings
)
47
{
48
mSettings =
settings
;
49
mBlockSignals =
true
;
50
51
mNoRepeatDistSpinBox->setValue( mSettings.minimumDistanceToDuplicate() );
52
mNoRepeatDistUnitWidget->setUnit( mSettings.minimumDistanceToDuplicateUnit() );
53
mNoRepeatDistUnitWidget->setMapUnitScale( mSettings.minimumDistanceToDuplicateMapUnitScale() );
54
55
mBlockSignals =
false
;
56
}
57
58
QgsLabelThinningSettings
QgsLabelRemoveDuplicatesSettingsWidget::settings
()
const
59
{
60
mSettings.
setMinimumDistanceToDuplicate
( mNoRepeatDistSpinBox->value() );
61
mSettings.setMinimumDistanceToDuplicateUnit( mNoRepeatDistUnitWidget->unit() );
62
mSettings.setMinimumDistanceToDuplicateMapUnitScale( mNoRepeatDistUnitWidget->getMapUnitScale() );
63
return
mSettings;
64
}
65
66
void
QgsLabelRemoveDuplicatesSettingsWidget::setGeometryType
(
Qgis::GeometryType
)
67
{}
68
69
void
QgsLabelRemoveDuplicatesSettingsWidget::updateDataDefinedProperties
(
QgsPropertyCollection
&properties )
70
{
71
properties.
setProperty
(
QgsPalLayerSettings::Property::RemoveDuplicateLabelDistance
,
mDataDefinedProperties
.property(
QgsPalLayerSettings::Property::RemoveDuplicateLabelDistance
) );
72
}
Qgis::GeometryType
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition
qgis.h:399
Qgis::RenderUnit::Millimeters
@ Millimeters
Millimeters.
Definition
qgis.h:5759
Qgis::RenderUnit::Points
@ Points
Points (e.g., for font sizes).
Definition
qgis.h:5763
Qgis::RenderUnit::MapUnits
@ MapUnits
Map units.
Definition
qgis.h:5760
Qgis::RenderUnit::Pixels
@ Pixels
Pixels.
Definition
qgis.h:5761
Qgis::RenderUnit::Inches
@ Inches
Inches.
Definition
qgis.h:5764
Qgis::RenderUnit::MetersInMapUnits
@ MetersInMapUnits
Meters value as Map units.
Definition
qgis.h:5766
QgsLabelRemoveDuplicatesSettingsWidget::setSettings
void setSettings(const QgsLabelThinningSettings &settings)
Sets the thinning settings to show in the widget.
Definition
qgslabelremoveduplicatesettingswidget.cpp:46
QgsLabelRemoveDuplicatesSettingsWidget::QgsLabelRemoveDuplicatesSettingsWidget
QgsLabelRemoveDuplicatesSettingsWidget(QWidget *parent=nullptr, QgsMapLayer *layer=nullptr)
Constructor for QgsLabelRemoveDuplicatesSettingsWidget.
Definition
qgslabelremoveduplicatesettingswidget.cpp:23
QgsLabelRemoveDuplicatesSettingsWidget::settings
QgsLabelThinningSettings settings() const
Returns the thinning settings defined by the widget.
Definition
qgslabelremoveduplicatesettingswidget.cpp:58
QgsLabelRemoveDuplicatesSettingsWidget::updateDataDefinedProperties
void updateDataDefinedProperties(QgsPropertyCollection &properties) override
Updates a data defined properties collection, correctly setting the values for any properties related...
Definition
qgslabelremoveduplicatesettingswidget.cpp:69
QgsLabelRemoveDuplicatesSettingsWidget::setGeometryType
void setGeometryType(Qgis::GeometryType type) override
Sets the geometry type of the features to customize the widget accordingly.
Definition
qgslabelremoveduplicatesettingswidget.cpp:66
QgsLabelSettingsWidgetBase::QgsLabelSettingsWidgetBase
QgsLabelSettingsWidgetBase(QWidget *parent=nullptr, QgsMapLayer *vl=nullptr)
Constructor for QgsLabelSettingsWidgetBase.
Definition
qgslabelsettingswidgetbase.cpp:32
QgsLabelSettingsWidgetBase::registerDataDefinedButton
void registerDataDefinedButton(QgsPropertyOverrideButton *button, QgsPalLayerSettings::Property key)
Registers a data defined override button.
Definition
qgslabelsettingswidgetbase.cpp:150
QgsLabelSettingsWidgetBase::mDataDefinedProperties
QgsPropertyCollection mDataDefinedProperties
Contains the data defined properties defined by the widget.
Definition
qgslabelsettingswidgetbase.h:111
QgsLabelThinningSettings
Contains settings related to how the label engine removes candidate label positions and reduces the n...
Definition
qgslabelthinningsettings.h:36
QgsLabelThinningSettings::setMinimumDistanceToDuplicate
void setMinimumDistanceToDuplicate(double distance)
Sets the minimum distance to labels with duplicate text.
Definition
qgslabelthinningsettings.h:177
QgsMapLayer
Base class for all map layer types.
Definition
qgsmaplayer.h:83
QgsPalLayerSettings::Property::RemoveDuplicateLabelDistance
@ RemoveDuplicateLabelDistance
Minimum distance from labels for this feature to other labels with duplicate text.
Definition
qgspallabeling.h:247
QgsPanelWidget::changed
void changed()
Emitted when the widget state changes.
QgsPanelWidget::setPanelTitle
void setPanelTitle(const QString &panelTitle)
Set the title of the panel when shown in the interface.
Definition
qgspanelwidget.h:45
QgsPropertyCollection
A grouped map of multiple QgsProperty objects, each referenced by an integer key value.
Definition
qgspropertycollection.h:348
QgsPropertyCollection::setProperty
void setProperty(int key, const QgsProperty &property)
Adds a property to the collection and takes ownership of it.
Definition
qgspropertycollection.cpp:192
QgsUnitSelectionWidget::changed
void changed()
Emitted when the selected unit is changed, or the definition of the map unit scale is changed.
QgsUnitTypes::RenderUnitList
QList< Qgis::RenderUnit > RenderUnitList
List of render units.
Definition
qgsunittypes.h:79
qgsexpressioncontextutils.h
qgslabelremoveduplicatesettingswidget.h
Generated on
for QGIS API Documentation by
1.17.0