KContacts

geo.h
1 /*
2  This file is part of the KContacts framework.
3  SPDX-FileCopyrightText: 2001 Cornelius Schumacher <[email protected]>
4 
5  SPDX-License-Identifier: LGPL-2.0-or-later
6 */
7 
8 #ifndef KCONTACTS_GEO_H
9 #define KCONTACTS_GEO_H
10 
11 #include "kcontacts_export.h"
12 
13 #include <QMetaType>
14 #include <QSharedDataPointer>
15 #include <QString>
16 
17 namespace KContacts
18 {
19 /**
20  * @short Geographic position
21  *
22  * This class represents a geographic position.
23  */
24 class KCONTACTS_EXPORT Geo
25 {
26  friend KCONTACTS_EXPORT QDataStream &operator<<(QDataStream &, const Geo &);
27  friend KCONTACTS_EXPORT QDataStream &operator>>(QDataStream &, Geo &);
28 
29  Q_GADGET
30  Q_PROPERTY(float latitude READ latitude WRITE setLatitude)
31  Q_PROPERTY(float longitude READ longitude WRITE setLongitude)
32  Q_PROPERTY(bool isValid READ isValid)
33 
34 public:
35  /**
36  * Creates an invalid geographics position object.
37  */
38  Geo();
39 
40  /**
41  * Creates a geographics position object.
42  *
43  * @param latitude Geographical latitude
44  * @param longitude Geographical longitude
45  */
46  Geo(float latitude, float longitude);
47 
48  /**
49  * Copy constructor.
50  */
51  Geo(const Geo &other);
52 
53  /**
54  * Destroys the geographics position object.
55  */
56  ~Geo();
57 
58  /**
59  * Sets the @p latitude.
60  *
61  * @param latitude The location's latitude coordinate
62  */
63  void setLatitude(float latitude);
64 
65  /**
66  * Returns the latitude.
67  */
68  Q_REQUIRED_RESULT float latitude() const;
69 
70  /**
71  * Sets the @p longitude.
72  *
73  * @param longitude The location's longitude coordinate
74  */
75  void setLongitude(float longitude);
76 
77  /**
78  * Returns the longitude.
79  */
80  Q_REQUIRED_RESULT float longitude() const;
81 
82  /**
83  * Returns, whether this object contains a valid geographical position.
84  */
85  Q_REQUIRED_RESULT bool isValid() const;
86 
87  /**
88  * Equality operator.
89  *
90  * @note Two invalid Geo instance will return @c true
91  */
92  Q_REQUIRED_RESULT bool operator==(const Geo &other) const;
93 
94  /**
95  * Not-Equal operator.
96  */
97  bool operator!=(const Geo &other) const;
98 
99  /**
100  * Assignment operator.
101  *
102  * @param other The Geo instance to assign to @c this
103  */
104  Geo &operator=(const Geo &other);
105 
106  /**
107  * Returns string representation of geographical position.
108  */
109  Q_REQUIRED_RESULT QString toString() const;
110 
111  /**
112  * Clears the class, marking it as invalid.
113  *
114  * @since 5.6
115  */
116  void clear();
117 
118 private:
119  class Private;
121 };
122 
123 /**
124  * Serializes the geographical position @p object into the @p stream.
125  */
126 KCONTACTS_EXPORT QDataStream &operator<<(QDataStream &stream, const Geo &object);
127 
128 /**
129  * Initializes the geographical position @p object from the @p stream.
130  */
131 KCONTACTS_EXPORT QDataStream &operator>>(QDataStream &stream, Geo &object);
132 }
133 Q_DECLARE_METATYPE(KContacts::Geo)
134 Q_DECLARE_TYPEINFO(KContacts::Geo, Q_MOVABLE_TYPE);
135 #endif
KCALENDARCORE_EXPORT QDataStream & operator<<(QDataStream &out, const KCalendarCore::Alarm::Ptr &)
KCALENDARCORE_EXPORT QDataStream & operator>>(QDataStream &in, const KCalendarCore::Alarm::Ptr &)
Geographic position.
Definition: geo.h:24
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Sun Dec 10 2023 03:49:09 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.