7 #include <QNetworkAccessManager>
8 #include <QNetworkReply>
12 #include <QStringList>
14 #include <QXmlStreamReader>
19 q( new RoutePrivate( this ) ),
20 manager( new QNetworkAccessManager(this) )
22 connect( manager, SIGNAL( finished(QNetworkReply*) ), this, SLOT( replyFinished(QNetworkReply*) ) );
31 void Route::getRoute()
36 a << q->fromLocation().x() << q->fromLocation().y();
38 b << q->toLocation().x() << q->toLocation().y();
40 fullUrl.addQueryItem( "a", a.join(",") );
41 fullUrl.addQueryItem( "b", b.join(",") );
42 fullUrl.addQueryItem( "user", username );
43 fullUrl.addQueryItem( "pass", password );
45 manager->get( QNetworkRequest( fullUrl ) );
48 void Route::replyFinished( QNetworkReply * reply )
50 RouteData routeData = q->parseReply( reply->readAll() );
52 emit( routeReady( routeData ) );
55 void Route::setFromLocation( const Location &location )
57 qDebug() << __PRETTY_FUNCTION__;
58 if ( location.isValid() ) {
59 qDebug() << "from location is valid";
60 q->setFromLocation( location );
62 qDebug() << "to is also valid; getting route";
66 qDebug() << "location is NOT valid - obtaining from sender";
67 Location *locationPtr = qobject_cast<Location*>(sender());
69 q->setFromLocation( *locationPtr );
71 qDebug() << "to is also valid; getting route";
74 qDebug() << "to is NOT valid";
77 qDebug() << "locationPtr is zero - cast didn't work";
82 const Location &Route::fromLocation()
84 return q->fromLocation();
87 void Route::setToLocation( const Location &location )
89 qDebug() << __PRETTY_FUNCTION__;
90 if ( location.isValid() ) {
91 qDebug() << "to is valid";
92 q->setToLocation( location );
93 if ( q->fromValid() ) {
94 qDebug() << "from is also valid; getting route";
97 qDebug() << "from is NOT valid";
100 qDebug() << "to is not valid; getting from sender";
101 Location *locationPtr = qobject_cast<Location*>(sender());
103 q->setToLocation( *locationPtr );
104 if ( q->fromValid() ) {
105 qDebug() << "from is also valid; getting route";
108 qDebug() << "from is not valid";
111 qDebug() << "locationPtr is zero; cast failed";
116 const Location &Route::toLocation()
118 return q->toLocation();
121 void Route::toggleDirection()
123 Location oldFromLocation = fromLocation();
124 setFromLocation( toLocation() );
125 setToLocation( oldFromLocation );