Added dialogs to change home and work locations.
[ptas] / zouba / route.cpp
index 331ae54..8604208 100644 (file)
@@ -30,65 +30,102 @@ Route::~Route()
 
 void Route::getRoute()
 {
-  QUrl fullUrl( ytv );
+  qDebug() << "getting route from Ytv";
+
+  QUrl fullUrl( Ytv::Url );
 
   QStringList a;
-  a << q->fromLocation().x() << q->fromLocation().y();
+  a << q->fromLocation()->x() << q->fromLocation()->y();
   QStringList b;
-  b << q->toLocation().x() << q->toLocation().y();
+  b << q->toLocation()->x() << q->toLocation()->y();
 
   fullUrl.addQueryItem( "a", a.join(",") );
   fullUrl.addQueryItem( "b", b.join(",") );
-  fullUrl.addQueryItem( "user", username );
-  fullUrl.addQueryItem( "pass", password );
+  fullUrl.addQueryItem( "show", QString::number(Ytv::FiveResults) );
+  fullUrl.addQueryItem( "walkspeed", QString::number(Ytv::Fast) );
+  fullUrl.addQueryItem( "user", Ytv::Username );
+  fullUrl.addQueryItem( "pass", Ytv::Password );
 
   manager->get( QNetworkRequest( fullUrl ) );
+  qDebug() << "waiting for reply from Ytv";
 }
 
 void Route::replyFinished( QNetworkReply * reply )
 {
-  RouteData routeData = q->parseReply( reply->readAll() );
+  qDebug() << "have reply from Ytv";
+  QList<RouteData> routeData = q->parseReply( reply->readAll() );
 
   emit( routeReady( routeData ) );
 }
 
-void Route::setFromLocation( const Location &location )
+void Route::setFromLocation( Location *location )
 {
-  if ( location.isValid() ) {
+  qDebug() << "setting new From location";
+
+  if ( location && location->isValid() ) {
+    qDebug() << "From is valid";
     q->setFromLocation( location );
+    if ( q->toValid() ) {
+      qDebug() << "To is also valid";
+      getRoute();
+    } else {
+      qDebug() << "To not valid - waiting";
+    }
   } else {
-    Location *locationPtr = qobject_cast<Location*>(sender());
-    if ( locationPtr ) {
-      q->setFromLocation( *locationPtr );
+    qDebug() << "From is not valid";
+    qDebug() << "getting From from signal sender";
+    location = qobject_cast<Location*>(sender());
+    if ( location ) {
+      q->setFromLocation( location );
       if ( q->toValid() ) {
+        qDebug() << "To is also valid";
         getRoute();
+      } else {
+        qDebug() << "To not valid - waiting";
       }
+    } else {
+      qDebug() << "location is zero - cast didn't work";
     }
   }
 }
 
-const Location &Route::fromLocation()
+Location *Route::fromLocation() const
 {
   return q->fromLocation();
 }
 
-void Route::setToLocation( const Location &location )
+void Route::setToLocation( Location *location )
 {
-  if ( location.isValid() ) {
+  qDebug() << "setting new To location";
+
+  if ( location && location->isValid() ) {
+    qDebug() << "To is valid";
     q->setToLocation( location );
+    if ( q->fromValid() ) {
+      qDebug() << "From is also valid";
+      getRoute();
+    } else {
+      qDebug() << "From not valid - waiting";
+    }
   } else {
-    Location *locationPtr = qobject_cast<Location*>(sender());
-    if ( locationPtr ) {
-      q->setToLocation( *locationPtr );
+    qDebug() << "To is not valid";
+    qDebug() << "getting To from signal sender";
+    Location *location = qobject_cast<Location*>(sender());
+    if ( location ) {
+      q->setToLocation( location );
       if ( q->fromValid() ) {
+        qDebug() << "From is also valid";
         getRoute();
+      } else {
+        qDebug() << "From not valid - waiting";
       }
+    } else {
+      qDebug() << "location is zero; cast failed";
     }
   }
 }
 
-const Location &Route::toLocation()
+Location *Route::toLocation() const
 {
   return q->toLocation();
 }
-