Changes: fixed buttons and table
[ptas] / zouba / uicontroller.cpp
index 3a0fd65..d2c1c71 100644 (file)
@@ -1,48 +1,83 @@
 #include "uicontroller.h"
 #include "route.h"
-#include "ui_zouba.h"
+#include "ui.h"
+#include "ytv.h"
+#include "location.h"
 
-UiController::UiController( Ui::MainWindow *ui ) :
-  ui(ui),
-  route( HomeToWork )
+#include <QObject>
+#include <QTableWidgetItem>
+#include <QPushButton>
+#include <QDebug>
+#include <QButtonGroup>
+
+UiController::UiController( Ui *ui ) :
+  ui(ui)
 {
-  connect( ui->sethomeaddress, SIGNAL( pressed() ), this, SLOT( setHomeAddress() ) );
-  connect( ui->setworkaddress, SIGNAL( pressed() ), this, SLOT( setWorkAddress() ) );
-  connect( ui->route, SIGNAL( pressed() ), this, SLOT( toggleRoute() ) );
+  Location *homeLocation = new Location();
+  Location *workLocation = new Location();
+
+  connect(
+      homeLocation, SIGNAL( becomeValid() ),
+      this, SLOT( setHomeButtonValid() )
+  );
+  connect(
+      workLocation, SIGNAL( becomeValid() ),
+      this, SLOT( setWorkButtonValid() )
+  );
+
+  homeLocation->resolveAddress( home );
+  workLocation->resolveAddress( work );
+
+  destination.append( homeLocation );
+  destination.append( workLocation );
+
+  connect(
+      ui->destinationButtons, SIGNAL( buttonClicked( int ) ),
+      this, SLOT( changeDestination( int ) )
+  );
+
 }
 
 UiController::~UiController()
 {
 }
 
-void UiController::setHomeAddress()
+void UiController::setHomeButtonValid()
 {
-  emit homeAddressChanged( ui->homeaddress->text() );
+  setButtonValid( Ui::HomeButtonId );
 }
 
-void UiController::setWorkAddress()
+void UiController::setWorkButtonValid()
 {
-  emit workAddressChanged( ui->workaddress->text() );
+  setButtonValid( Ui::WorkButtonId );
 }
 
-void UiController::toggleRoute()
+void UiController::setButtonValid( int id )
 {
-  if ( route == HomeToWork ) {
-    route = WorkToHome;
-    ui->route->setText( "Home<-Work" );
-  } else {
-    route = HomeToWork;
-    ui->route->setText( "Home->Work" );
-  }
+  ui->destinationButtons->button( id )->setEnabled(true);
+}
 
-  ui->busnodisplay->setText( "working" );
-  ui->timedisplay->setText( "working" );
+void UiController::changeDestination( int id )
+{
+  bool destinationHasChanged = ( currentDestination != id );
+  if ( destinationHasChanged ) {
+    emit destinationChanged( *(destination[id]) );
+  }
 
-  emit directionChanged();
+  // always want to emit this so that the gps position is update
+  // and the user gets new information
+  emit buttonClicked();
 }
 
 void UiController::displayRoute( const RouteData &routeData )
 {
-  ui->busnodisplay->setText( routeData.lineCode );
-  ui->timedisplay->setText( routeData.arrivalTime );
+  qDebug() << __PRETTY_FUNCTION__;
+  qDebug() << "routeData.arrivalTime" << routeData.arrivalTime;
+  qDebug() << "routeData.lineCode" << routeData.lineCode;
+
+  QTableWidgetItem *timeItem = new QTableWidgetItem( routeData.arrivalTime );
+  ui->table->setItem( 0, 0, timeItem );
+
+  QTableWidgetItem *lineItem = new QTableWidgetItem( routeData.lineCode );
+  ui->table->setItem( 0, 1, lineItem );
 }