QGIS API Documentation 3.41.0-Master (fda2aa46e9a)
Loading...
Searching...
No Matches
qgslayoutsize.h
Go to the documentation of this file.
1/***************************************************************************
2 qgslayoutsize.h
3 ---------------
4 begin : June 2017
5 copyright : (C) 2017 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSLAYOUTSIZE_H
19#define QGSLAYOUTSIZE_H
20
21#include "qgis_core.h"
22#include "qgis.h"
23#include "qgsconfig.h"
24#include <QSizeF>
25
26
40class CORE_EXPORT QgsLayoutSize
41{
42 public:
43
50 QgsLayoutSize( double width, double height, Qgis::LayoutUnit units = Qgis::LayoutUnit::Millimeters );
51
55 explicit QgsLayoutSize( QSizeF size, Qgis::LayoutUnit units = Qgis::LayoutUnit::Millimeters );
56
62
69 void setSize( const double width, const double height )
70 {
71 mWidth = width;
72 mHeight = height;
73#ifdef QGISDEBUG
74 Q_ASSERT_X( !std::isnan( width ) && !std::isnan( height ), "QgsLayoutSize", "Layout size with NaN dimensions created" );
75#endif
76 }
77
83 double width() const { return mWidth; }
84
90 void setWidth( const double width )
91 {
92 mWidth = width;
93#ifdef QGISDEBUG
94 Q_ASSERT_X( !std::isnan( width ), "QgsLayoutSize", "Layout size with NaN dimensions created" );
95#endif
96 }
97
103 double height() const { return mHeight; }
104
110 void setHeight( const double height )
111 {
112 mHeight = height;
113#ifdef QGISDEBUG
114 Q_ASSERT_X( !std::isnan( height ), "QgsLayoutSize", "Layout size with NaN dimensions created" );
115#endif
116 }
117
122 Qgis::LayoutUnit units() const { return mUnits; }
123
129 void setUnits( const Qgis::LayoutUnit units ) { mUnits = units; }
130
136 bool isEmpty() const;
137
143 QSizeF toQSizeF() const;
144
149 QString encodeSize() const;
150
155 static QgsLayoutSize decodeSize( const QString &string );
156
157 bool operator==( const QgsLayoutSize &other ) const;
158 bool operator!=( const QgsLayoutSize &other ) const;
159
163 QgsLayoutSize operator*( double v ) const;
164
168 QgsLayoutSize operator*=( double v );
169
173 QgsLayoutSize operator/( double v ) const;
174
178 QgsLayoutSize operator/=( double v );
179
180#ifdef SIP_RUN
181 SIP_PYOBJECT __repr__();
182 % MethodCode
183 QString str = QStringLiteral( "<QgsLayoutSize: %1 x %2 %3 >" ).arg( sipCpp->width() ).arg( sipCpp->height() ).arg( QgsUnitTypes::toAbbreviatedString( sipCpp->units() ) );
184 sipRes = PyUnicode_FromString( str.toUtf8().constData() );
185 % End
186#endif
187
188 private:
189
190 double mWidth = 0.0;
191 double mHeight = 0.0;
193
194};
195
196#endif // QGSLAYOUTSIZE_H
LayoutUnit
Layout measurement units.
Definition qgis.h:4859
@ Millimeters
Millimeters.
This class provides a method of storing sizes, consisting of a width and height, for use in QGIS layo...
void setUnits(const Qgis::LayoutUnit units)
Sets the units for the size.
void setSize(const double width, const double height)
Sets new width and height for the size.
double height() const
Returns the height of the size.
void setWidth(const double width)
Sets the width for the size.
Qgis::LayoutUnit units() const
Returns the units for the size.
double width() const
Returns the width of the size.
void setHeight(const double height)
Sets the height for the size.
static Q_INVOKABLE QString toAbbreviatedString(Qgis::DistanceUnit unit)
Returns a translated abbreviation representing a distance unit.
#define str(x)
Definition qgis.cpp:39
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
bool operator!=(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)
QgsMargins operator*(const QgsMargins &margins, double factor)
Returns a QgsMargins object that is formed by multiplying each component of the given margins by fact...
Definition qgsmargins.h:249
QgsMargins operator/(const QgsMargins &margins, double divisor)
Returns a QgsMargins object that is formed by dividing the components of the given margins by the giv...
Definition qgsmargins.h:269