18 #include <QColorDialog>
25 connect( mArrowWidthSpin,
static_cast < void ( QDoubleSpinBox::* )(
double )
> ( &QDoubleSpinBox::valueChanged ),
this, &QgsArrowSymbolLayerWidget::mArrowWidthSpin_valueChanged );
27 connect( mArrowStartWidthSpin,
static_cast < void ( QDoubleSpinBox::* )(
double )
> ( &QDoubleSpinBox::valueChanged ),
this, &QgsArrowSymbolLayerWidget::mArrowStartWidthSpin_valueChanged );
29 connect( mHeadLengthSpin,
static_cast < void ( QDoubleSpinBox::* )(
double )
> ( &QDoubleSpinBox::valueChanged ),
this, &QgsArrowSymbolLayerWidget::mHeadLengthSpin_valueChanged );
31 connect( mHeadThicknessSpin,
static_cast < void ( QDoubleSpinBox::* )(
double )
> ( &QDoubleSpinBox::valueChanged ),
this, &QgsArrowSymbolLayerWidget::mHeadThicknessSpin_valueChanged );
33 connect( mHeadTypeCombo,
static_cast<void ( QComboBox::* )(
int )
>( &QComboBox::currentIndexChanged ),
this, &QgsArrowSymbolLayerWidget::mHeadTypeCombo_currentIndexChanged );
34 connect( mArrowTypeCombo,
static_cast<void ( QComboBox::* )(
int )
>( &QComboBox::currentIndexChanged ),
this, &QgsArrowSymbolLayerWidget::mArrowTypeCombo_currentIndexChanged );
35 connect( mOffsetSpin,
static_cast < void ( QDoubleSpinBox::* )(
double )
> ( &QDoubleSpinBox::valueChanged ),
this, &QgsArrowSymbolLayerWidget::mOffsetSpin_valueChanged );
37 connect( mCurvedArrowChck, &QCheckBox::stateChanged,
this, &QgsArrowSymbolLayerWidget::mCurvedArrowChck_stateChanged );
38 connect( mRepeatArrowChck, &QCheckBox::stateChanged,
this, &QgsArrowSymbolLayerWidget::mRepeatArrowChck_stateChanged );
39 this->layout()->setContentsMargins( 0, 0, 0, 0 );
52 mOffsetSpin->setClearValue( 0.0 );
57 if ( !layer || layer->
layerType() != QLatin1String(
"ArrowLine" ) )
64 mArrowWidthSpin->setValue( mLayer->
arrowWidth() );
72 mHeadLengthSpin->setValue( mLayer->
headLength() );
79 mHeadTypeCombo->setCurrentIndex( mLayer->
headType() );
80 mArrowTypeCombo->setCurrentIndex( mLayer->
arrowType() );
82 mOffsetSpin->setValue( mLayer->
offset() );
83 mOffsetUnitWidget->setUnit( mLayer->
offsetUnit() );
86 mCurvedArrowChck->setChecked( mLayer->
isCurved() );
87 mRepeatArrowChck->setChecked( mLayer->
isRepeated() );
104 void QgsArrowSymbolLayerWidget::mArrowWidthSpin_valueChanged(
double d )
113 void QgsArrowSymbolLayerWidget::mArrowStartWidthSpin_valueChanged(
double d )
122 void QgsArrowSymbolLayerWidget::mHeadLengthSpin_valueChanged(
double d )
131 void QgsArrowSymbolLayerWidget::mHeadThicknessSpin_valueChanged(
double d )
140 void QgsArrowSymbolLayerWidget::mArrowWidthUnitWidget_changed()
150 void QgsArrowSymbolLayerWidget::mArrowStartWidthUnitWidget_changed()
160 void QgsArrowSymbolLayerWidget::mHeadLengthUnitWidget_changed()
170 void QgsArrowSymbolLayerWidget::mHeadThicknessUnitWidget_changed()
180 void QgsArrowSymbolLayerWidget::mHeadTypeCombo_currentIndexChanged(
int idx )
188 mArrowStartWidthDDBtn->setEnabled( isSingle );
189 mArrowStartWidthSpin->setEnabled( isSingle );
190 mArrowStartWidthUnitWidget->setEnabled( isSingle );
194 void QgsArrowSymbolLayerWidget::mArrowTypeCombo_currentIndexChanged(
int idx )
204 void QgsArrowSymbolLayerWidget::mOffsetSpin_valueChanged(
double d )
213 void QgsArrowSymbolLayerWidget::mOffsetUnitWidget_changed()
223 void QgsArrowSymbolLayerWidget::mCurvedArrowChck_stateChanged(
int state )
232 void QgsArrowSymbolLayerWidget::mRepeatArrowChck_stateChanged(
int state )
Line symbol layer used for representing lines as arrows.
bool isCurved() const
Returns whether it is a curved arrow or a straight one.
QgsUnitTypes::RenderUnit headLengthUnit() const
Gets the unit for the head length.
ArrowType arrowType() const
Gets the current arrow type.
HeadType
Possible head types.
HeadType headType() const
Gets the current head type.
void setArrowStartWidth(double width)
Sets the arrow start width.
bool isRepeated() const
Returns whether the arrow is repeated along the line or not.
QgsUnitTypes::RenderUnit arrowWidthUnit() const
Gets the unit for the arrow width.
void setArrowWidth(double width)
Sets the arrow width.
QgsUnitTypes::RenderUnit arrowStartWidthUnit() const
Gets the unit for the arrow start width.
void setArrowType(ArrowType type)
Sets the arrow type.
void setHeadLengthUnitScale(const QgsMapUnitScale &scale)
Sets the scale for the head length.
QgsMapUnitScale headThicknessUnitScale() const
Gets the scale for the head height.
void setIsCurved(bool isCurved)
Sets whether it is a curved arrow or a straight one.
void setHeadThickness(double thickness)
Sets the arrow head height.
void setIsRepeated(bool isRepeated)
Sets whether the arrow is repeated along the line.
double arrowStartWidth() const
Gets current arrow start width. Only meaningful for single headed arrows.
QgsUnitTypes::RenderUnit headThicknessUnit() const
Gets the unit for the head height.
void setArrowStartWidthUnitScale(const QgsMapUnitScale &scale)
Sets the scale for the arrow start width.
void setHeadThicknessUnitScale(const QgsMapUnitScale &scale)
Sets the scale for the head height.
void setHeadType(HeadType type)
Sets the head type.
QgsMapUnitScale arrowStartWidthUnitScale() const
Gets the scale for the arrow start width.
double headThickness() const
Gets the current arrow head height.
void setArrowWidthUnitScale(const QgsMapUnitScale &scale)
Sets the scale for the arrow width.
ArrowType
Possible arrow types.
void setArrowWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the arrow width.
double arrowWidth() const
Gets current arrow width.
QgsMapUnitScale arrowWidthUnitScale() const
Gets the scale for the arrow width.
void setArrowStartWidthUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the arrow start width.
void setHeadLengthUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the head length.
void setHeadThicknessUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the head height.
QgsMapUnitScale headLengthUnitScale() const
Gets the scale for the head length.
void setHeadLength(double length)
Sets the arrow head length.
double headLength() const
Gets the current arrow head length.
QgsUnitTypes::RenderUnit offsetUnit() const
Returns the units for the line's offset.
const QgsMapUnitScale & offsetMapUnitScale() const
Returns the map unit scale for the line's offset.
void setOffsetUnit(QgsUnitTypes::RenderUnit unit)
Sets the unit for the line's offset.
void setOffset(double offset)
Sets the line's offset.
void setOffsetMapUnitScale(const QgsMapUnitScale &scale)
Sets the map unit scale for the line's offset.
void setMapUnitScale(const QgsMapUnitScale &scale) override
double offset() const
Returns the line's offset.
@ PropertyArrowStartWidth
Arrow tail start width.
@ PropertyArrowHeadLength
Arrow head length.
@ PropertyArrowHeadThickness
Arrow head thickness.
@ PropertyOffset
Symbol offset.
@ PropertyArrowHeadType
Arrow head type.
@ PropertyArrowType
Arrow type.
@ PropertyArrowWidth
Arrow tail width.
virtual QString layerType() const =0
Returns a string that represents this layer type.
QList< QgsUnitTypes::RenderUnit > RenderUnitList
List of render units.
@ RenderPoints
Points (e.g., for font sizes)
@ RenderMillimeters
Millimeters.
@ RenderMapUnits
Map units.
Represents a vector layer which manages a vector based data sets.