#include "ui.h"
-#include "messagetable.h"
#include "locations.h"
+#include "ytv.h"
#include <QMainWindow>
#include <QRadioButton>
#include <QMenuBar>
#include <QHBoxLayout>
#include <QVBoxLayout>
+#include <QGridLayout>
#include <QSizePolicy>
#include <QInputDialog>
#include <QDebug>
-MessageTable *Ui::messageTable = 0;
-
Ui::Ui() :
- centralWidget(0),
- destinationButtons(0),
- routeTable(0)
+ m_centralWidget(0),
+ m_destinationButtons(0),
+ m_routeStack(0),
+ m_usingFakeGps( false ),
+ m_fakeLocationLabel( "work" )
{
}
void Ui::setupUi( QMainWindow *mainWindow )
{
- mainWindow->resize(800,480);
- menu = mainWindow->menuBar()->addMenu("Settings");
+ m_mainWindow = mainWindow;
+ m_mainWindow->resize(800,480);
+
+ m_menu = mainWindow->menuBar()->addMenu("Settings");
QAction *setHomeAddressAction = new QAction("Set home address", this);
QAction *setWorkAddressAction = new QAction("Set work address", this);
- hideMessagesAction = new QAction("Hide messages", this);
- showMessagesAction = new QAction("Show messages", this);
- useFakeGpsAction = new QAction("Use fake GPS", this);
- useLiveGpsAction = new QAction("Use live GPS", this);
- menu->addAction(setHomeAddressAction);
- menu->addAction(setWorkAddressAction);
- menu->addAction(showMessagesAction);
- menu->addAction(useFakeGpsAction);
+ m_toggleFakeGpsAction = new QAction("Use fake GPS", this);
+ m_menu->addAction(setHomeAddressAction);
+ m_menu->addAction(setWorkAddressAction);
+ m_menu->addAction(m_toggleFakeGpsAction);
connect(
setHomeAddressAction, SIGNAL(triggered()),
this, SLOT(setWorkAddress())
);
connect(
- hideMessagesAction, SIGNAL(triggered()),
- this, SLOT(hideMessages())
- );
- connect(
- showMessagesAction, SIGNAL(triggered()),
- this, SLOT(showMessages())
- );
- connect(
- useFakeGpsAction, SIGNAL(triggered()),
- this, SLOT(useFakeGps())
- );
- connect(
- useLiveGpsAction, SIGNAL(triggered()),
- this, SLOT(useLiveGps())
+ m_toggleFakeGpsAction, SIGNAL(triggered()),
+ this, SLOT(toggleFakeGps())
);
- centralWidget = new QWidget( mainWindow );
- mainWindow->setCentralWidget(centralWidget);
+ m_centralWidget = new QWidget( m_mainWindow );
+ m_mainWindow->setCentralWidget( m_centralWidget);
QRadioButton *homeButton = new QRadioButton();
homeButton->setObjectName( QString::fromUtf8("homeButton") );
homeButton->setText( "GPS->HOME" );
homeButton->setEnabled(false);
- homeButton->setFixedSize( QSize( ButtonWidth, ButtonHeight ) );
QRadioButton *workButton = new QRadioButton();
workButton->setObjectName( QString::fromUtf8("workButton") );
workButton->setText( "GPS->WORK" );
workButton->setEnabled(false);
- destinationButtons = new QButtonGroup();
- destinationButtons->addButton( homeButton, HomeButtonId );
- destinationButtons->addButton( workButton, WorkButtonId );
- destinationButtons->setExclusive( true );
-
- buttonLayout = new QVBoxLayout();
- buttonLayout->addWidget( homeButton );
- buttonLayout->addWidget( workButton );
- buttonLayout->addStretch();
+ m_destinationButtons = new QButtonGroup();
+ m_destinationButtons->addButton( homeButton, HomeButtonId );
+ m_destinationButtons->addButton( workButton, WorkButtonId );
+ m_destinationButtons->setExclusive( true );
+
+ m_routeButtons = new QButtonGroup();
+ m_routeButtons->setExclusive( true );
+ m_routeStack = new QVBoxLayout();
+ for ( int i=0; i<Ytv::ShowFiveResults; ++i ) {
+ QRadioButton *button = new QRadioButton();
+ button->setObjectName( "routeButton"+i );
+ button->setEnabled( false );
+
+ m_routeStack->addWidget( button, i );
+ m_routeButtons->addButton( button, i );
+ }
+ m_routeStack->addStretch();
- routeTable = new QTableWidget( 1, 2 );
- QStringList columnHeaders;
- columnHeaders << "Time" << "Bus";
- routeTable->setHorizontalHeaderLabels( columnHeaders );
- routeTable->verticalHeader()->hide();
+ m_routeDetailTable = new QTableWidget();
+ m_routeDetailTable->setColumnCount(6);
+ m_routeDetailTable->setHorizontalHeaderLabels(
+ QStringList() << "How" << "Time" << "Dist" << "Dep" << "Arr" << "Line"
+ );
+ m_routeDetailTable->resizeColumnsToContents();
QHBoxLayout *topLayout = new QHBoxLayout();
- topLayout->addLayout( buttonLayout );
- topLayout->addWidget( routeTable );
+ topLayout->addLayout( m_routeStack );
+ topLayout->addWidget( m_routeDetailTable );
- messageTable = new MessageTable();
- messageTable->setObjectName( QString::fromUtf8("messageTable") );
- messageTable->hide();
+ m_buttonLayout = new QGridLayout();
+ m_buttonLayout->addWidget( homeButton, 0, 0 );
+ m_buttonLayout->addWidget( workButton, 0, 1 );
- QVBoxLayout *mainLayout = new QVBoxLayout();
- mainLayout->addLayout( topLayout );
- mainLayout->addWidget( messageTable );
+ m_mainLayout = new QVBoxLayout();
+ m_mainLayout->addLayout( topLayout );
+ m_mainLayout->addLayout( m_buttonLayout );
- centralWidget->setLayout( mainLayout );
+ m_centralWidget->setLayout( m_mainLayout );
}
void Ui::setHomeAddress()
setAddress( "work" );
}
-void Ui::hideMessages()
+void Ui::toggleFakeGps()
{
- messageTable->hide();
- menu->removeAction( hideMessagesAction );
- menu->addAction( showMessagesAction );
-}
+ m_usingFakeGps = !m_usingFakeGps;
-void Ui::showMessages()
-{
- messageTable->show();
- menu->removeAction( showMessagesAction );
- menu->addAction( hideMessagesAction );
+ if ( m_usingFakeGps ) {
+ useFakeGps();
+ } else {
+ useLiveGps();
+ }
}
void Ui::useFakeGps()
{
- // really want a dialog here
- Locations *locations = Locations::instance();
- Location *fakeLocation = locations->location( "work" );
-
- emit fakeGpsPressed( fakeLocation );
- menu->removeAction( useFakeGpsAction );
- menu->addAction( useLiveGpsAction );
+ emit fakeGpsPressed( m_fakeLocationLabel );
+ m_toggleFakeGpsAction->setText( "Use Live GPS" );
}
void Ui::useLiveGps()
{
emit liveGpsPressed();
- menu->removeAction( useLiveGpsAction );
- menu->addAction( useFakeGpsAction );
+ m_toggleFakeGpsAction->setText( "Use Fake GPS" );
}
void Ui::setAddress( const QString &label )
bool ok;
QString address = QInputDialog::getText(
- centralWidget,
+ m_centralWidget,
tr("Enter address for \""+QString(label).toLatin1()+"\""),
tr("Address"),
QLineEdit::Normal,
&ok
);
- qDebug() << "ok=" << ok;
-
if ( ok ) {
qDebug() << "new address" << address;
Locations *locations = Locations::instance();
}
}
}
+
+void Ui::setBusy( bool busy )
+{
+ m_mainWindow->setAttribute(Qt::WA_Maemo5ShowProgressIndicator, busy);
+}