QGIS API Documentation
4.3.0-Master (52aa6503bed)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
labeling
qgslabelobstaclesettingswidget.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgslabelobstaclesettingswidget.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 "
qgslabelobstaclesettingswidget.h
"
18
19
#include "
qgsexpressioncontextutils.h
"
20
21
#include "moc_qgslabelobstaclesettingswidget.cpp"
22
23
QgsLabelObstacleSettingsWidget::QgsLabelObstacleSettingsWidget
( QWidget *parent,
QgsVectorLayer
*vl )
24
:
QgsLabelSettingsWidgetBase
( parent, vl )
25
{
26
setupUi(
this
);
27
28
setPanelTitle
( tr(
"Obstacle Settings"
) );
29
30
mObstacleTypeComboBox->addItem( tr(
"Over the Feature's Interior"
),
static_cast<
int
>
(
QgsLabelObstacleSettings::ObstacleType::PolygonInterior
) );
31
mObstacleTypeComboBox->addItem( tr(
"Over the Feature's Boundary"
),
static_cast<
int
>
(
QgsLabelObstacleSettings::ObstacleType::PolygonBoundary
) );
32
33
connect( mObstacleTypeComboBox, qOverload<int>( &QComboBox::currentIndexChanged ),
this
, [
this
](
int
) {
34
if
( !mBlockSignals )
35
emit
changed
();
36
} );
37
connect( mObstacleFactorSlider, &QSlider::valueChanged,
this
, [
this
] {
38
if
( !mBlockSignals )
39
emit
changed
();
40
} );
41
42
registerDataDefinedButton
( mObstacleFactorDDBtn,
QgsPalLayerSettings::Property::ObstacleFactor
);
43
}
44
45
void
QgsLabelObstacleSettingsWidget::setSettings
(
const
QgsLabelObstacleSettings
&
settings
)
46
{
47
mBlockSignals =
true
;
48
mObstacleFactorSlider->setValue(
static_cast<
int
>
( std::round(
settings
.factor() * 5 ) ) );
49
mObstacleTypeComboBox->setCurrentIndex( mObstacleTypeComboBox->findData(
static_cast<
int
>
(
settings
.type() ) ) );
50
mBlockSignals =
false
;
51
}
52
53
QgsLabelObstacleSettings
QgsLabelObstacleSettingsWidget::settings
()
const
54
{
55
QgsLabelObstacleSettings
settings
;
56
settings
.setFactor( mObstacleFactorSlider->value() / 5.0 );
57
settings
.setType(
static_cast<
QgsLabelObstacleSettings::ObstacleType
>
( mObstacleTypeComboBox->currentData().toInt() ) );
58
return
settings
;
59
}
60
61
void
QgsLabelObstacleSettingsWidget::setGeometryType
(
Qgis::GeometryType
type )
62
{
63
mObstacleTypeComboBox->setVisible( type ==
Qgis::GeometryType::Polygon
|| type ==
Qgis::GeometryType::Unknown
);
64
mObstacleTypeLabel->setVisible( type ==
Qgis::GeometryType::Polygon
|| type ==
Qgis::GeometryType::Unknown
);
65
}
66
67
void
QgsLabelObstacleSettingsWidget::updateDataDefinedProperties
(
QgsPropertyCollection
&properties )
68
{
69
properties.
setProperty
(
QgsPalLayerSettings::Property::ObstacleFactor
,
mDataDefinedProperties
.property(
QgsPalLayerSettings::Property::ObstacleFactor
) );
70
}
Qgis::GeometryType
GeometryType
The geometry types are used to group Qgis::WkbType in a coarse way.
Definition
qgis.h:399
Qgis::GeometryType::Polygon
@ Polygon
Polygons.
Definition
qgis.h:402
Qgis::GeometryType::Unknown
@ Unknown
Unknown types.
Definition
qgis.h:403
QgsLabelObstacleSettingsWidget::setGeometryType
void setGeometryType(Qgis::GeometryType type) override
Sets the geometry type of the features to customize the widget accordingly.
Definition
qgslabelobstaclesettingswidget.cpp:61
QgsLabelObstacleSettingsWidget::settings
QgsLabelObstacleSettings settings() const
Returns the obstacle settings defined by the widget.
Definition
qgslabelobstaclesettingswidget.cpp:53
QgsLabelObstacleSettingsWidget::updateDataDefinedProperties
void updateDataDefinedProperties(QgsPropertyCollection &properties) override
Updates a data defined properties collection, correctly setting the values for any properties related...
Definition
qgslabelobstaclesettingswidget.cpp:67
QgsLabelObstacleSettingsWidget::setSettings
void setSettings(const QgsLabelObstacleSettings &settings)
Sets the obstacle settings to show in the widget.
Definition
qgslabelobstaclesettingswidget.cpp:45
QgsLabelObstacleSettingsWidget::QgsLabelObstacleSettingsWidget
QgsLabelObstacleSettingsWidget(QWidget *parent=nullptr, QgsVectorLayer *vl=nullptr)
Constructor for QgsLabelObstacleSettingsWidget.
Definition
qgslabelobstaclesettingswidget.cpp:23
QgsLabelObstacleSettings
Contains settings related to how the label engine treats features as obstacles.
Definition
qgslabelobstaclesettings.h:35
QgsLabelObstacleSettings::ObstacleType
ObstacleType
Valid obstacle types, which affect how features within the layer will act as obstacles for labels.
Definition
qgslabelobstaclesettings.h:42
QgsLabelObstacleSettings::ObstacleType::PolygonInterior
@ PolygonInterior
Avoid placing labels over interior of polygon (prefer placing labels totally outside or just slightly...
Definition
qgslabelobstaclesettings.h:43
QgsLabelObstacleSettings::ObstacleType::PolygonBoundary
@ PolygonBoundary
Avoid placing labels over boundary of polygon (prefer placing outside or completely inside polygon).
Definition
qgslabelobstaclesettings.h:44
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
QgsPalLayerSettings::Property::ObstacleFactor
@ ObstacleFactor
Definition
qgspallabeling.h:237
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
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:414
qgsexpressioncontextutils.h
qgslabelobstaclesettingswidget.h
Generated on
for QGIS API Documentation by
1.17.0