Marble

GeoDataVec2.cpp
1// SPDX-License-Identifier: LGPL-2.1-or-later
2//
3// SPDX-FileCopyrightText: 2012 Mohammed Nafees <nafees.technocool@gmail.com>
4//
5
6#include "GeoDataVec2.h"
7
8#include "MarbleDebug.h"
9
10namespace Marble
11{
12
13class GeoDataVec2Private
14{
15public:
16 GeoDataVec2Private();
17
18 GeoDataVec2::Unit m_xunit;
19 GeoDataVec2::Unit m_yunit;
20
21 static GeoDataVec2::Unit parseUnits(const QString &value);
22};
23
24GeoDataVec2Private::GeoDataVec2Private()
25 : m_xunit(GeoDataVec2::Fraction)
26 , m_yunit(GeoDataVec2::Fraction)
27{
28}
29
30GeoDataVec2::GeoDataVec2()
31 : d(new GeoDataVec2Private)
32{
33}
34
35GeoDataVec2::GeoDataVec2(qreal x, qreal y, const QString &xunits, const QString &yunits)
36 : d(new GeoDataVec2Private)
37{
38 setX(x);
39 setY(y);
40 d->m_xunit = GeoDataVec2Private::parseUnits(xunits);
41 d->m_yunit = GeoDataVec2Private::parseUnits(yunits);
42}
43
44GeoDataVec2::Unit GeoDataVec2Private::parseUnits(const QString &value)
45{
46 if (value == QLatin1StringView("fraction")) {
47 return GeoDataVec2::Fraction;
48 }
49 if (value == QLatin1StringView("pixels")) {
50 return GeoDataVec2::Pixels;
51 }
52 if (value == QLatin1StringView("insetPixels")) {
53 return GeoDataVec2::InsetPixels;
54 }
55
56 mDebug() << "Warning: Unknown units value " << value << " - falling back to default 'fraction'";
57 return GeoDataVec2::Fraction;
58}
59
60GeoDataVec2::GeoDataVec2(const Marble::GeoDataVec2 &other)
61 : QPointF(other)
62 , d(new GeoDataVec2Private(*other.d))
63{
64}
65
66GeoDataVec2 &GeoDataVec2::operator=(const GeoDataVec2 &other)
67{
68 QPointF::operator=(other);
69 *d = *other.d;
70 return *this;
71}
72
73bool GeoDataVec2::operator==(const GeoDataVec2 &other) const
74{
75 return x() == other.x() && y() == other.y() && d->m_xunit == other.d->m_xunit && d->m_yunit == other.d->m_yunit;
76}
77
78bool GeoDataVec2::operator!=(const GeoDataVec2 &other) const
79{
80 return !this->operator==(other);
81}
82
83GeoDataVec2::~GeoDataVec2()
84{
85 delete d;
86}
87
88GeoDataVec2::Unit GeoDataVec2::xunit() const
89{
90 return d->m_xunit;
91}
92
93void GeoDataVec2::setXunits(Unit xunit)
94{
95 d->m_xunit = xunit;
96}
97
98GeoDataVec2::Unit GeoDataVec2::yunit() const
99{
100 return d->m_yunit;
101}
102
103void GeoDataVec2::setYunits(Unit yunit)
104{
105 d->m_yunit = yunit;
106}
107
108}
KIOCORE_EXPORT bool operator==(const UDSEntry &entry, const UDSEntry &other)
Binds a QML item to a specific geodetic location in screen coordinates.
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Dec 20 2024 11:52:13 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.