QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
gui
layout
qgslayoutunitscombobox.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgslayoutunitscombobox.cpp
3
--------------------------
4
Date : July 2017
5
Copyright : (C) 2017 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
#include "
qgslayoutunitscombobox.h
"
17
18
#include "
qgis.h
"
19
#include "
qgslayoutmeasurementconverter.h
"
20
#include "
qgsunittypes.h
"
21
22
#include "moc_qgslayoutunitscombobox.cpp"
23
24
QgsLayoutUnitsComboBox::QgsLayoutUnitsComboBox
( QWidget *parent )
25
: QComboBox( parent )
26
{
27
QList<Qgis::LayoutUnit> units;
28
units
29
<<
Qgis::LayoutUnit::Millimeters
30
<<
Qgis::LayoutUnit::Centimeters
31
<<
Qgis::LayoutUnit::Meters
32
<<
Qgis::LayoutUnit::Inches
33
<<
Qgis::LayoutUnit::Feet
34
<<
Qgis::LayoutUnit::Points
35
<<
Qgis::LayoutUnit::Picas
36
<<
Qgis::LayoutUnit::Pixels
;
37
38
const
auto
constUnits = units;
39
for
(
const
Qgis::LayoutUnit
u : constUnits )
40
{
41
addItem(
QgsUnitTypes::toAbbreviatedString
( u ),
static_cast<
int
>
( u ) );
42
setItemData( count() - 1,
QgsUnitTypes::toString
( u ), Qt::ToolTipRole );
43
}
44
connect(
this
,
static_cast<
void
(
QgsLayoutUnitsComboBox
::* )(
int
)
>
( &QgsLayoutUnitsComboBox::currentIndexChanged ),
this
, &QgsLayoutUnitsComboBox::indexChanged );
45
}
46
47
Qgis::LayoutUnit
QgsLayoutUnitsComboBox::unit
()
const
48
{
49
return
static_cast<
Qgis::LayoutUnit
>
( currentData().toInt() );
50
}
51
52
void
QgsLayoutUnitsComboBox::setUnit
(
Qgis::LayoutUnit
unit
)
53
{
54
setCurrentIndex( findData(
static_cast<
int
>
(
unit
) ) );
55
}
56
57
void
QgsLayoutUnitsComboBox::linkToWidget
( QDoubleSpinBox *widget )
58
{
59
mLinkedSpinBoxes << widget;
60
}
61
62
void
QgsLayoutUnitsComboBox::indexChanged(
int
)
63
{
64
const
Qgis::LayoutUnit
newUnit =
unit
();
65
if
( mConverter )
66
{
67
const
auto
constMLinkedSpinBoxes = mLinkedSpinBoxes;
68
for
(
const
QPointer<QDoubleSpinBox> &widget : constMLinkedSpinBoxes )
69
{
70
if
( widget )
71
whileBlocking
( widget.data() )->setValue( mConverter->
convert
(
QgsLayoutMeasurement
( widget->value(), mOldUnit ), newUnit ).
length
() );
72
}
73
}
74
emit
unitChanged
( newUnit );
75
emit
changed
(
static_cast<
int
>
( newUnit ) );
76
mOldUnit = newUnit;
77
}
78
79
QgsLayoutMeasurementConverter
*
QgsLayoutUnitsComboBox::converter
()
const
80
{
81
return
mConverter;
82
}
83
84
void
QgsLayoutUnitsComboBox::setConverter
(
QgsLayoutMeasurementConverter
*
converter
)
85
{
86
mConverter =
converter
;
87
}
88
89
#include "
qgslayoutunitscombobox.h
"
Qgis::LayoutUnit
LayoutUnit
Layout measurement units.
Definition
qgis.h:5778
Qgis::LayoutUnit::Feet
@ Feet
Feet.
Definition
qgis.h:5783
Qgis::LayoutUnit::Centimeters
@ Centimeters
Centimeters.
Definition
qgis.h:5780
Qgis::LayoutUnit::Millimeters
@ Millimeters
Millimeters.
Definition
qgis.h:5779
Qgis::LayoutUnit::Points
@ Points
Typographic points.
Definition
qgis.h:5784
Qgis::LayoutUnit::Meters
@ Meters
Meters.
Definition
qgis.h:5781
Qgis::LayoutUnit::Picas
@ Picas
Typographic picas.
Definition
qgis.h:5785
Qgis::LayoutUnit::Pixels
@ Pixels
Pixels.
Definition
qgis.h:5786
Qgis::LayoutUnit::Inches
@ Inches
Inches.
Definition
qgis.h:5782
QgsLayoutMeasurementConverter
Provides a method of converting QgsLayoutMeasurements from one unit to another.
Definition
qgslayoutmeasurementconverter.h:42
QgsLayoutMeasurementConverter::convert
QgsLayoutMeasurement convert(QgsLayoutMeasurement measurement, Qgis::LayoutUnit targetUnits) const
Converts a measurement from one unit to another.
Definition
qgslayoutmeasurementconverter.cpp:20
QgsLayoutMeasurement
Provides a method of storing measurements for use in QGIS layouts using a variety of different measur...
Definition
qgslayoutmeasurement.h:37
QgsLayoutMeasurement::length
double length() const
Returns the length of the measurement.
Definition
qgslayoutmeasurement.h:50
QgsLayoutUnitsComboBox::linkToWidget
void linkToWidget(QDoubleSpinBox *widget)
Registers a spin box widget as linked with the combo box.
Definition
qgslayoutunitscombobox.cpp:57
QgsLayoutUnitsComboBox::converter
QgsLayoutMeasurementConverter * converter() const
Returns the converter used when automatically converting units for linked widgets.
Definition
qgslayoutunitscombobox.cpp:79
QgsLayoutUnitsComboBox::unitChanged
void unitChanged(Qgis::LayoutUnit unit)
Emitted when the unit is changed.
QgsLayoutUnitsComboBox::setConverter
void setConverter(QgsLayoutMeasurementConverter *converter)
Sets a converter to use when automatically converting units for linked widgets.
Definition
qgslayoutunitscombobox.cpp:84
QgsLayoutUnitsComboBox::changed
void changed(int unit)
Emitted when the unit is changed.
QgsLayoutUnitsComboBox::setUnit
void setUnit(Qgis::LayoutUnit unit)
Sets the unit currently selected in the combo box.
Definition
qgslayoutunitscombobox.cpp:52
QgsLayoutUnitsComboBox::unit
Qgis::LayoutUnit unit
Definition
qgslayoutunitscombobox.h:36
QgsLayoutUnitsComboBox::QgsLayoutUnitsComboBox
QgsLayoutUnitsComboBox(QWidget *parent=nullptr)
Constructor for QgsLayoutUnitsComboBox.
Definition
qgslayoutunitscombobox.cpp:24
QgsUnitTypes::toString
static Q_INVOKABLE QString toString(Qgis::DistanceUnit unit)
Returns a translated string representing a distance unit.
Definition
qgsunittypes.cpp:401
QgsUnitTypes::toAbbreviatedString
static Q_INVOKABLE QString toAbbreviatedString(Qgis::DistanceUnit unit)
Returns a translated abbreviation representing a distance unit.
Definition
qgsunittypes.cpp:590
qgis.h
whileBlocking
QgsSignalBlocker< Object > whileBlocking(Object *object)
Temporarily blocks signals from a QObject while calling a single method from the object.
Definition
qgis.h:7637
qgslayoutmeasurementconverter.h
qgslayoutunitscombobox.h
qgsunittypes.h
Generated on
for QGIS API Documentation by
1.17.0