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 QUrl fullUrl( Ytv::Url );
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( "show", QString::number(Ytv::FiveResults) );
43 fullUrl.addQueryItem( "walkspeed", QString::number(Ytv::Fast) );
44 fullUrl.addQueryItem( "user", Ytv::Username );
45 fullUrl.addQueryItem( "pass", Ytv::Password );
47 manager->get( QNetworkRequest( fullUrl ) );
50 void Route::replyFinished( QNetworkReply * reply )
52 QList<RouteData> routeData = q->parseReply( reply->readAll() );
54 emit( routeReady( routeData ) );
57 void Route::setFromLocation( const Location &location )
59 if ( location.isValid() ) {
60 q->setFromLocation( location );
65 Location *locationPtr = qobject_cast<Location*>(sender());
67 q->setFromLocation( *locationPtr );
72 qDebug() << "locationPtr is zero - cast didn't work";
77 const Location &Route::fromLocation()
79 return q->fromLocation();
82 void Route::setToLocation( const Location &location )
84 if ( location.isValid() ) {
85 q->setToLocation( location );
86 if ( q->fromValid() ) {
90 Location *locationPtr = qobject_cast<Location*>(sender());
92 q->setToLocation( *locationPtr );
93 if ( q->fromValid() ) {
97 qDebug() << "locationPtr is zero; cast failed";
102 const Location &Route::toLocation()
104 return q->toLocation();
107 void Route::toggleDirection()
109 Location oldFromLocation = fromLocation();
110 setFromLocation( toLocation() );
111 setToLocation( oldFromLocation );