X-Git-Url: http://git.maemo.org/git/?p=ptas;a=blobdiff_plain;f=src%2Fuicontroller.cpp;h=e26109ff32e862d8546ef4e7c842fae59e7fd3d0;hp=836537842e5a9afb36726d8a66cdf304030a24cb;hb=3406287d71dac0a117ba8714f2d85bb67fbbec45;hpb=15842000c65c6c7529d0fe35e13253adb4293afd diff --git a/src/uicontroller.cpp b/src/uicontroller.cpp index 8365378..e26109f 100644 --- a/src/uicontroller.cpp +++ b/src/uicontroller.cpp @@ -13,77 +13,77 @@ #include #include -UiController::UiController( Ui *ui ) : - m_routeData(), - m_destination(), - m_ui(ui), - m_currentDestination(-1), - m_currentRoute(-1) +UiController::UiController(Ui *ui) : + m_locations(new Locations), + m_routeData(), + m_destination(), + m_ui(ui), + m_currentDestination(-1), + m_currentRoute(-1) { - Locations locations; - Location *homeLocation = locations.location( "home" ); - Location *workLocation = locations.location( "work" ); - - if ( homeLocation==0 ) { - homeLocation = new Location( "home" ); - locations.addLocation( homeLocation ); - } else if ( homeLocation->isValid() ) { - setHomeButtonValid(); - } - - if ( workLocation==0 ) { - workLocation = new Location( "work" ); - locations.addLocation( workLocation ); - } else if ( workLocation->isValid() ) { - setWorkButtonValid(); - } - - connect( - homeLocation, SIGNAL( becomeValid() ), - this, SLOT( setHomeButtonValid() ) - ); - connect( - homeLocation, SIGNAL( becomeInValid() ), - this, SLOT( setHomeButtonInValid() ) - ); - connect( - homeLocation, SIGNAL( becomeValid() ), - &locations, SLOT( saveLocation() ) - ); - connect( - homeLocation, SIGNAL( busy( bool ) ), - ui, SLOT( setBusy( bool ) ) - ); - - connect( - workLocation, SIGNAL( becomeValid() ), - this, SLOT( setWorkButtonValid() ) - ); - connect( - workLocation, SIGNAL( becomeInValid() ), - this, SLOT( setWorkButtonInValid() ) - ); - connect( - workLocation, SIGNAL( becomeValid() ), - &locations, SLOT( saveLocation() ) - ); - connect( - workLocation, SIGNAL( busy( bool ) ), - ui, SLOT( setBusy( bool ) ) - ); - - m_destination.append( homeLocation ); - m_destination.append( workLocation ); - - connect( - m_ui->m_destinationButtons, SIGNAL( buttonClicked( int ) ), - this, SLOT( changeDestination( int ) ) - ); - - connect( - m_ui->m_routeButtons, SIGNAL( buttonClicked( int ) ), - this, SLOT( changeRoute( int ) ) - ); + Location *homeLocation = m_locations->location("home"); + Location *workLocation = m_locations->location("work"); + + if (homeLocation==0) { + homeLocation = new Location("home"); + m_locations->addLocation(homeLocation); + } else if (homeLocation->isValid()) { + setHomeButtonValid(); + } + + if (workLocation==0) { + workLocation = new Location("work"); + m_locations->addLocation(workLocation); + } else if (workLocation->isValid()) { + setWorkButtonValid(); + } + + connect( + homeLocation, SIGNAL(becomeValid()), + this, SLOT(setHomeButtonValid()) + ); + connect( + homeLocation, SIGNAL(becomeInValid()), + this, SLOT(setHomeButtonInValid()) + ); + connect( + homeLocation, SIGNAL(becomeValid()), + m_locations, SLOT(saveLocation()) + ); + connect( + homeLocation, SIGNAL(busy(bool)), + ui, SLOT(setBusy(bool)) + ); + + connect( + workLocation, SIGNAL(becomeValid()), + this, SLOT(setWorkButtonValid()) + ); + connect( + workLocation, SIGNAL(becomeInValid()), + this, SLOT(setWorkButtonInValid()) + ); + connect( + workLocation, SIGNAL(becomeValid()), + m_locations, SLOT(saveLocation()) + ); + connect( + workLocation, SIGNAL(busy(bool)), + ui, SLOT(setBusy(bool)) + ); + + m_destination.append(homeLocation); + m_destination.append(workLocation); + + connect( + m_ui->m_destinationButtons, SIGNAL(buttonClicked(int)), + this, SLOT(changeDestination(int)) + ); + + connect( + m_ui->m_routeButtons, SIGNAL(buttonClicked(int)), + this, SLOT(changeRoute(int)) + ); } UiController::~UiController() @@ -92,128 +92,128 @@ UiController::~UiController() void UiController::setHomeButtonInValid() { - qDebug() << "setting home button invalid"; - setButtonValid( Ui::HomeButtonId, false ); + qDebug() << "setting home button invalid"; + setButtonValid(Ui::HomeButtonId, false); } void UiController::setHomeButtonValid() { - qDebug() << "setting home button valid"; - setButtonValid( Ui::HomeButtonId, true ); + qDebug() << "setting home button valid"; + setButtonValid(Ui::HomeButtonId, true); } void UiController::setWorkButtonInValid() { - qDebug() << "setting work button invalid"; - setButtonValid( Ui::WorkButtonId, false ); + qDebug() << "setting work button invalid"; + setButtonValid(Ui::WorkButtonId, false); } void UiController::setWorkButtonValid() { - qDebug() << "setting work button valid"; - setButtonValid( Ui::WorkButtonId, true ); + qDebug() << "setting work button valid"; + setButtonValid(Ui::WorkButtonId, true); } -void UiController::setButtonValid( int id, bool isValid ) +void UiController::setButtonValid(int id, bool isValid) { - m_ui->m_destinationButtons->button( id )->setEnabled( isValid ); + m_ui->m_destinationButtons->button(id)->setEnabled(isValid); } -void UiController::changeDestination( int id ) +void UiController::changeDestination(int id) { - bool destinationHasChanged = ( m_currentDestination != id ); - qDebug() << "Destination has changed=" << destinationHasChanged; - if ( destinationHasChanged ) { - qDebug() << "Emitting destination changed (" << m_destination[id]->label() << ")"; - emit destinationChanged( m_destination[id] ); - m_currentDestination = id; - } - - // always want to emit this so that the gps position is updated - // and the user gets new information - emit buttonClicked(); + bool destinationHasChanged = (m_currentDestination != id); + qDebug() << "Destination has changed=" << destinationHasChanged; + if (destinationHasChanged) { + qDebug() << "Emitting destination changed (" << m_destination[id]->label() << ")"; + emit destinationChanged(m_destination[id]); + m_currentDestination = id; + } + + // always want to emit this so that the gps position is updated + // and the user gets new information + emit buttonClicked(); } -void UiController::changeRoute( int id ) +void UiController::changeRoute(int id) { - bool routeHasChanged = ( m_currentRoute != id ); - if ( routeHasChanged ) { - displayRouteDetail( id ); - } + bool routeHasChanged = (m_currentRoute != id); + if (routeHasChanged) { + displayRouteDetail(id); + } } -void UiController::displayRouteDetail( int id ) +void UiController::displayRouteDetail(int id) { - QTableWidget *table = m_ui->m_routeDetailTable; - - if ( id < m_routeData.count() ) { - QList &legDataList = m_routeData[ id ].m_legData; - table->setRowCount( legDataList.count() ); - - int row=0; - foreach( LegData thisLegData, legDataList ) { - QString thisHow = thisLegData.m_how; - - bool thisIsLine = ( thisHow == "LINE" ); - if ( thisIsLine ) { - thisHow = thisLegData.m_lineCode; - } - - QStringList tableStrings; - tableStrings - << thisHow - << thisLegData.m_tripTime - << thisLegData.m_tripDistance - << thisLegData.m_departureTime - << thisLegData.m_arrivalTime; - - int col=0; - foreach( QString thisString, tableStrings ) { - QTableWidgetItem *newItem = new QTableWidgetItem(); - newItem->setText( thisString ); - table->setItem( row,col, newItem ); - ++col; - } - - ++row; + QTableWidget *table = m_ui->m_routeDetailTable; + + if (id < m_routeData.count()) { + QList &legDataList = m_routeData[ id ].m_legData; + table->setRowCount(legDataList.count()); + + int row=0; + foreach(LegData thisLegData, legDataList) { + QString thisHow = thisLegData.m_how; + + bool notWalk = (thisHow != "walk"); + if (notWalk) { + thisHow = thisLegData.m_lineCode; + } + + QStringList tableStrings; + tableStrings + << thisHow + << thisLegData.m_tripTime + << thisLegData.m_tripDistance + << thisLegData.m_departureTime + << thisLegData.m_arrivalTime; + + int col=0; + foreach(QString thisString, tableStrings) { + QTableWidgetItem *newItem = new QTableWidgetItem(); + newItem->setText(thisString); + table->setItem(row,col, newItem); + ++col; + } + + ++row; + } + } else { + table->setRowCount(0); } - } else { - table->setRowCount( 0 ); - } - table->resizeColumnsToContents(); + table->resizeColumnsToContents(); } -void UiController::displayRoute( const QList &routeData ) +void UiController::displayRoute(const QList &routeData) { - m_routeData = routeData; + m_routeData = routeData; - qDebug() << "displaying route"; + qDebug() << "displaying route"; - for ( int i=0; im_routeStack->itemAt( i )->widget(); - QRadioButton *button = qobject_cast(widget); + QWidget *widget = m_ui->m_routeStack->itemAt(i)->widget(); + QRadioButton *button = qobject_cast(widget); - if ( isetEnabled( true ); - } else { - button->setEnabled( false ); - } + if (isetEnabled(true); + } else { + button->setEnabled(false); + } - if ( i==0 ) { - button->setChecked( true ); - } else { - button->setChecked( false ); - } + if (i==0) { + button->setChecked(true); + } else { + button->setChecked(false); + } - button->setText( label ); - } + button->setText(label); + } - displayRouteDetail( 0 ); + displayRouteDetail(0); }