#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>
Ui::Ui() :
centralWidget(0),
destinationButtons(0),
- routeTable(0)
+ routeStack(0),
+ usingFakeGps( false ),
+ messagesShown( false ),
+ fakeLocationLabel( "work" )
{
}
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);
+ toggleMessagesAction = new QAction("Show messages", this);
+ toggleFakeGpsAction = new QAction("Use fake GPS", this);
menu->addAction(setHomeAddressAction);
menu->addAction(setWorkAddressAction);
- menu->addAction(showMessagesAction);
- menu->addAction(useFakeGpsAction);
+ menu->addAction(toggleMessagesAction);
+ menu->addAction(toggleFakeGpsAction);
connect(
setHomeAddressAction, SIGNAL(triggered()),
this, SLOT(setWorkAddress())
);
connect(
- hideMessagesAction, SIGNAL(triggered()),
- this, SLOT(hideMessages())
+ toggleMessagesAction, SIGNAL(triggered()),
+ this, SLOT(toggleMessages())
);
connect(
- showMessagesAction, SIGNAL(triggered()),
- this, SLOT(showMessages())
- );
- connect(
- useFakeGpsAction, SIGNAL(triggered()),
- this, SLOT(useFakeGps())
- );
- connect(
- useLiveGpsAction, SIGNAL(triggered()),
- this, SLOT(useLiveGps())
+ toggleFakeGpsAction, SIGNAL(triggered()),
+ this, SLOT(toggleFakeGps())
);
centralWidget = new QWidget( mainWindow );
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") );
destinationButtons->addButton( workButton, WorkButtonId );
destinationButtons->setExclusive( true );
- buttonLayout = new QVBoxLayout();
- buttonLayout->addWidget( homeButton );
- buttonLayout->addWidget( workButton );
- buttonLayout->addStretch();
+ routeStack = new QVBoxLayout();
+ for ( int i=0; i<Ytv::ShowFiveResults; ++i ) {
+ QRadioButton *button = new QRadioButton();
+ button->setObjectName( "routeButton"+i );
+ button->setEnabled( false );
- routeTable = new QTableWidget( 1, 2 );
- QStringList columnHeaders;
- columnHeaders << "Time" << "Bus";
- routeTable->setHorizontalHeaderLabels( columnHeaders );
- routeTable->verticalHeader()->hide();
+ routeStack->addWidget( button, i );
+ }
+ routeStack->addStretch();
QHBoxLayout *topLayout = new QHBoxLayout();
- topLayout->addLayout( buttonLayout );
- topLayout->addWidget( routeTable );
+ topLayout->addLayout( routeStack );
+ topLayout->addStretch();
+
+ buttonLayout = new QGridLayout();
+ buttonLayout->addWidget( homeButton, 0, 0 );
+ buttonLayout->addWidget( workButton, 0, 1 );
messageTable = new MessageTable();
messageTable->setObjectName( QString::fromUtf8("messageTable") );
QVBoxLayout *mainLayout = new QVBoxLayout();
mainLayout->addLayout( topLayout );
mainLayout->addWidget( messageTable );
+ mainLayout->addLayout( buttonLayout );
centralWidget->setLayout( mainLayout );
}
setAddress( "work" );
}
+void Ui::toggleMessages()
+{
+ messagesShown = !messagesShown;
+
+ if ( messagesShown ) {
+ showMessages();
+ } else {
+ hideMessages();
+ }
+}
+
void Ui::hideMessages()
{
messageTable->hide();
- menu->removeAction( hideMessagesAction );
- menu->addAction( showMessagesAction );
+ toggleMessagesAction->setText( "Show messages" );
}
void Ui::showMessages()
{
messageTable->show();
- menu->removeAction( showMessagesAction );
- menu->addAction( hideMessagesAction );
+ toggleMessagesAction->setText( "Hide messages" );
}
-void Ui::useFakeGps()
+void Ui::toggleFakeGps()
{
- // really want a dialog here
- Locations *locations = Locations::instance();
- Location *fakeLocation = locations->location( "work" );
+ usingFakeGps = !usingFakeGps;
- emit fakeGpsPressed( fakeLocation );
- menu->removeAction( useFakeGpsAction );
- menu->addAction( useLiveGpsAction );
+ if ( usingFakeGps ) {
+ useFakeGps();
+ } else {
+ useLiveGps();
+ }
+}
+
+void Ui::useFakeGps()
+{
+ emit fakeGpsPressed( fakeLocationLabel );
+ toggleFakeGpsAction->setText( "Use Live GPS" );
}
void Ui::useLiveGps()
{
emit liveGpsPressed();
- menu->removeAction( useLiveGpsAction );
- menu->addAction( useFakeGpsAction );
+ toggleFakeGpsAction->setText( "Use Fake GPS" );
}
void Ui::setAddress( const QString &label )
&ok
);
- qDebug() << "ok=" << ok;
-
if ( ok ) {
qDebug() << "new address" << address;
Locations *locations = Locations::instance();