1047cf5e05ad02de33e180064bf2ffa643ced3bb
[ptas] / zouba / route.h
1 #ifndef ROUTE_H
2 #define ROUTE_H
3
4 #include "routedata.h"
5 #include "location.h"
6
7 #include <QObject>
8 #include <QNetworkReply>
9 #include <QNetworkAccessManager>
10
11 class RoutePrivate;
12
13 class Route: public QObject
14 {
15   Q_OBJECT
16
17 public:
18   Route();
19   ~Route();
20
21   Q_PROPERTY(Location fromLocation READ fromLocation WRITE setFromLocation);
22   Q_PROPERTY(Location toLocation READ toLocation WRITE setToLocation);
23
24   /*!
25     * \brief Gets the route data from the server
26     */
27   void getRoute();
28
29   /*!
30     \brief Get the from location
31     \return The from location
32     */
33   const Location &fromLocation();
34
35   /*!
36     \brief Get the to location
37     \return The to location
38     */
39   const Location &toLocation();
40
41 public Q_SLOTS:
42
43   /*!
44     * \brief Sets the from location
45     * \param fromLocation The from location
46     */
47   void setFromLocation( const Location &location=Location() );
48
49   /*!
50     * \brief Sets the to location
51     * \param toLocation The to location
52     */
53   void setToLocation( const Location &location=Location() );
54
55   /*!
56     * \brief Toggles the route direction.
57     */
58   void toggleDirection();
59
60 Q_SIGNALS:
61   void routeReady( QList<RouteData> );
62
63 private Q_SLOTS:
64   void replyFinished( QNetworkReply* );
65
66 private:
67   RoutePrivate *q;
68   QNetworkAccessManager *manager;
69 };
70 #endif // ROUTE_H