Incorporated changes from bus project.
[ptas] / src / location.h
1 #ifndef LOCATION_H
2 #define LOCATION_H
3
4 #include "location_p.h"
5
6 #include <QString>
7 #include <QObject>
8 #include <QNetworkAccessManager>
9 #include <QNetworkReply>
10 #include <QGeoPositionInfo>
11 #include <math.h>
12
13 QTM_USE_NAMESPACE
14
15 class Location : public QObject
16 {
17     Q_OBJECT
18
19     Q_PROPERTY(QString longitude READ longitude())
20     Q_PROPERTY(QString latitude READ latitude())
21     Q_PROPERTY(QString address READ address() WRITE setAddress())
22     Q_PROPERTY(QString label READ label() WRITE setLabel())
23     Q_PROPERTY(bool valid READ isValid() WRITE setValid())
24
25     public:
26     Location(const QString &longitude, const QString &latitude, const QString &label=QString());
27     Location(const QGeoPositionInfo &positionInfo, const QString &label=QString());
28     Location(const Location &from);
29     Location &operator=(const Location &from);
30     Location(const QString &label=QString());
31
32     ~Location();
33
34     QString longitude() const;
35
36     QString latitude() const;
37
38     void setLocation(const QGeoPositionInfo &positionInfo);
39
40     void setAddress(const QString &address) const;
41     QString address() const;
42
43     void setLabel(const QString &label) const;
44     QString label() const;
45
46     void setValid(bool valid) const;
47     bool isValid() const;
48
49     public Q_SLOTS:
50     void resolveAddress(const QString &address);
51
52     Q_SIGNALS:
53     void becomeValid();
54     void becomeInValid();
55     void busy(bool busy);
56
57     private Q_SLOTS:
58     void replyFinished(QNetworkReply * reply);
59
60     private:
61
62     LocationPrivate *q;
63     QNetworkAccessManager *manager;
64 };
65
66 #endif // LOCATION_H