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()
33 qDebug() << __PRETTY_FUNCTION__;
37 a << q->fromLocation().x() << q->fromLocation().y();
39 b << q->toLocation().x() << q->toLocation().y();
41 fullUrl.addQueryItem( "a", a.join(",") );
42 fullUrl.addQueryItem( "b", b.join(",") );
43 fullUrl.addQueryItem( "show", "1" );
44 fullUrl.addQueryItem( "walkspeed", "3" );
45 fullUrl.addQueryItem( "user", username );
46 fullUrl.addQueryItem( "pass", password );
48 manager->get( QNetworkRequest( fullUrl ) );
51 void Route::replyFinished( QNetworkReply * reply )
53 qDebug() << __PRETTY_FUNCTION__;
54 RouteData routeData = q->parseReply( reply->readAll() );
56 emit( routeReady( routeData ) );
59 void Route::setFromLocation( const Location &location )
61 qDebug() << __PRETTY_FUNCTION__;
62 if ( location.isValid() ) {
63 qDebug() << "from location is valid";
64 q->setFromLocation( location );
66 qDebug() << "to is also valid; getting route";
70 qDebug() << "location is NOT valid - obtaining from sender";
71 Location *locationPtr = qobject_cast<Location*>(sender());
73 q->setFromLocation( *locationPtr );
75 qDebug() << "to is also valid; getting route";
78 qDebug() << "to is NOT valid";
81 qDebug() << "locationPtr is zero - cast didn't work";
86 const Location &Route::fromLocation()
88 return q->fromLocation();
91 void Route::setToLocation( const Location &location )
93 qDebug() << __PRETTY_FUNCTION__;
94 if ( location.isValid() ) {
95 qDebug() << "to is valid";
96 q->setToLocation( location );
97 if ( q->fromValid() ) {
98 qDebug() << "from is also valid; getting route";
101 qDebug() << "from is NOT valid";
104 qDebug() << "to is not valid; getting from sender";
105 Location *locationPtr = qobject_cast<Location*>(sender());
107 q->setToLocation( *locationPtr );
108 if ( q->fromValid() ) {
109 qDebug() << "from is also valid; getting route";
112 qDebug() << "from is not valid";
115 qDebug() << "locationPtr is zero; cast failed";
120 const Location &Route::toLocation()
122 return q->toLocation();
125 void Route::toggleDirection()
127 Location oldFromLocation = fromLocation();
128 setFromLocation( toLocation() );
129 setToLocation( oldFromLocation );