#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 );
}