SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
scalebarsettings.h
Go to the documentation of this file.
1
8#ifndef SCALEBARSETTINGS_H
9#define SCALEBARSETTINGS_H
10
11#include <QFont>
12#include <QObject>
13#include <QPen>
14
25class ScaleBarSettings : public QObject
26{
27 Q_OBJECT
28
29public:
37 Q_ENUM(Units)
38
45 Q_ENUM(Position)
46
47 Q_PROPERTY(QPen pen READ pen WRITE setPen NOTIFY changed)
48 Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY changed)
49 Q_PROPERTY(Units units READ units WRITE setUnits NOTIFY changed)
50 Q_PROPERTY(Position position READ position WRITE setPosition NOTIFY changed)
51 Q_PROPERTY(int maxBarLength READ maxBarLength WRITE setMaxBarLength NOTIFY changed)
52 Q_PROPERTY(int labelDecimals READ labelDecimals WRITE setLabelDecimals NOTIFY changed)
53 Q_PROPERTY(bool compactNotation READ compactNotation WRITE setCompactNotation NOTIFY changed)
54
55 explicit ScaleBarSettings(QObject *parent = nullptr);
56
57 [[nodiscard]] QPen pen() const { return m_pen; }
58 [[nodiscard]] QFont font() const { return m_font; }
59 [[nodiscard]] Units units() const { return m_units; }
60 [[nodiscard]] Position position() const { return m_position; }
61 [[nodiscard]] int maxBarLength() const { return m_maxBarLength; }
62 [[nodiscard]] int labelDecimals() const { return m_labelDecimals; }
63 [[nodiscard]] bool compactNotation() const { return m_compactNotation; }
64
65 void setPen(const QPen &pen);
66 void setFont(const QFont &font);
67 void setUnits(Units units);
69 void setMaxBarLength(int length);
70 void setLabelDecimals(int decimals);
71 void setCompactNotation(bool compact);
72
79 [[nodiscard]] QString formatLabel(double metres, bool rawUnits = false) const;
80
86 [[nodiscard]] double roundedMetres(double metres) const;
87
88signals:
89 void changed();
90
91private:
92 QPen m_pen { QPen(Qt::black, 2) };
93 QFont m_font { QFont(QStringLiteral("sans-serif"), 8) };
94 Units m_units { Auto };
95 Position m_position { BottomLeft };
96 int m_maxBarLength { 100 };
97 int m_labelDecimals { -1 }; // -1 = auto
98 bool m_compactNotation { false };
99};
100
101#endif // SCALEBARSETTINGS_H
Holds all configurable appearance properties for the map scale bar.
Definition scalebarsettings.h:26
Position position() const
Definition scalebarsettings.h:60
Position position
Definition scalebarsettings.h:50
Units units
Definition scalebarsettings.h:49
bool compactNotation
Definition scalebarsettings.h:53
void setCompactNotation(bool compact)
Definition scalebarsettings.cpp:67
Units
Definition scalebarsettings.h:30
@ Meters
Definition scalebarsettings.h:32
@ Kilometers
Definition scalebarsettings.h:34
@ Miles
Definition scalebarsettings.h:35
@ Auto
Definition scalebarsettings.h:31
@ Feet
Definition scalebarsettings.h:33
void setPen(const QPen &pen)
Definition scalebarsettings.cpp:17
Position
Definition scalebarsettings.h:39
@ BottomLeft
Definition scalebarsettings.h:40
@ TopRight
Definition scalebarsettings.h:43
@ BottomRight
Definition scalebarsettings.h:41
@ TopLeft
Definition scalebarsettings.h:42
void setLabelDecimals(int decimals)
Definition scalebarsettings.cpp:62
void setUnits(Units units)
Definition scalebarsettings.cpp:35
int labelDecimals() const
Definition scalebarsettings.h:62
int maxBarLength
Definition scalebarsettings.h:51
double roundedMetres(double metres) const
Returns the metres value that formatLabel() will actually display, i.e. the input rounded in the acti...
Definition scalebarsettings.cpp:124
bool compactNotation() const
Definition scalebarsettings.h:63
int labelDecimals
Definition scalebarsettings.h:52
void setFont(const QFont &font)
Definition scalebarsettings.cpp:26
void setMaxBarLength(int length)
Definition scalebarsettings.cpp:53
void setPosition(Position position)
Definition scalebarsettings.cpp:44
QString formatLabel(double metres, bool rawUnits=false) const
Format a distance (in metres) as a string using the current units setting.
Definition scalebarsettings.cpp:72
int maxBarLength() const
Definition scalebarsettings.h:61
Units units() const
Definition scalebarsettings.h:59
QPen pen
Definition scalebarsettings.h:47
QFont font() const
Definition scalebarsettings.h:58
QFont font
Definition scalebarsettings.h:48
int decimals
Definition meshcellparams.cpp:30
double length
Definition meshpatch.cpp:64
QVector< int > parent
union-find
Definition pslgminsize.cpp:176