7 #include <QNetworkAccessManager>
8 #include <QNetworkReply>
12 #include <QStringList>
14 #include <QXmlStreamReader>
20 q( new RoutePrivate( this ) ),
21 manager( new QNetworkAccessManager(this) )
23 connect( manager, SIGNAL( finished(QNetworkReply*) ), this, SLOT( replyFinished(QNetworkReply*) ) );
32 void Route::getRoute()
34 qDebug() << "getting route from Ytv";
36 QUrl fullUrl( Ytv::Url );
39 a << q->fromLocation()->x() << q->fromLocation()->y();
41 b << q->toLocation()->x() << q->toLocation()->y();
43 fullUrl.addQueryItem( "a", a.join(",") );
44 fullUrl.addQueryItem( "b", b.join(",") );
45 fullUrl.addQueryItem( "show", QString::number(Ytv::ShowFiveResults) );
46 fullUrl.addQueryItem( "walkspeed", QString::number(Ytv::WalkSpeedFast) );
47 fullUrl.addQueryItem( "optimize", QString::number(Ytv::OptimizeDefault) );
48 fullUrl.addQueryItem( "user", Ytv::Username );
49 fullUrl.addQueryItem( "pass", Ytv::Password );
51 manager->get( QNetworkRequest( fullUrl ) );
52 qDebug() << "getting url" << fullUrl.toEncoded();
53 qDebug() << "waiting for reply from Ytv";
57 void Route::replyFinished( QNetworkReply * reply )
59 qDebug() << "have reply from Ytv";
60 QList<RouteData> routeData = q->parseReply( reply->readAll() );
62 emit( routeReady( routeData ) );
63 emit( busy( false ) );
66 void Route::setFromLocation( Location *location )
68 qDebug() << "setting new From location (" << location->label() << ")";
69 this->setLocation(location, true);
72 void Route::searchRoute()
74 if (q->fromValid() && q->toValid())
76 qDebug() << "From and To addresses are valid.";
81 Location *Route::fromLocation() const
83 return q->fromLocation();
86 void Route::setLocation(Location *location, bool from)
90 if (location->isValid())
92 qDebug() << "Location is valid";
93 if (from) q->setFromLocation( location );
94 else q->setToLocation(location);
96 qDebug() << "Location is not valid. Try again or fix address";
97 qDebug() << "Location = " << location;
98 //location->resolveAddress(location->address());
101 qDebug() << "ERROR:Null location pointer given.";
105 void Route::setToLocation( Location *location )
107 qDebug() << "setting new To location (" << location->label() << ")";
108 this->setLocation(location, false);
111 Location *Route::toLocation() const
113 return q->toLocation();