#include <QMenuBar>
#include <QHBoxLayout>
#include <QVBoxLayout>
+#include <QGridLayout>
#include <QSizePolicy>
#include <QInputDialog>
#include <QDebug>
Ui::Ui() :
centralWidget(0),
destinationButtons(0),
- routeTable(0)
+ routeTable(0),
+ usingFakeGps( false ),
+ messagesShown( false ),
+ fakeLocation()
{
+ Locations *locations = Locations::instance();
+ Location *workLocation = locations->location( "work" );
+ fakeLocation = new Location();
+ *fakeLocation = *workLocation;
+ fakeLocation->setLabel( "fakegps" );
}
Ui::~Ui()
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);
+ toggleMessagesAction = new QAction("Show messages", this);
+ toggleFakeGpsAction = new QAction("Use fake GPS", this);
menu->addAction(setHomeAddressAction);
menu->addAction(setWorkAddressAction);
- menu->addAction(showMessagesAction);
+ 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())
+ 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();
-
routeTable = new QTableWidget( 1, 2 );
QStringList columnHeaders;
columnHeaders << "Time" << "Bus";
routeTable->setHorizontalHeaderLabels( columnHeaders );
routeTable->verticalHeader()->hide();
+ routeTable->setSelectionMode( QAbstractItemView::SingleSelection );
QHBoxLayout *topLayout = new QHBoxLayout();
- topLayout->addLayout( buttonLayout );
topLayout->addWidget( routeTable );
+ buttonLayout = new QGridLayout();
+ buttonLayout->addWidget( homeButton, 0, 0 );
+ buttonLayout->addWidget( workButton, 0, 1 );
+
messageTable = new MessageTable();
messageTable->setObjectName( QString::fromUtf8("messageTable") );
messageTable->hide();
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::toggleFakeGps()
+{
+ usingFakeGps = !usingFakeGps;
+
+ if ( usingFakeGps ) {
+ useFakeGps();
+ } else {
+ useLiveGps();
+ }
+}
+
+void Ui::useFakeGps()
+{
+ emit fakeGpsPressed( fakeLocation );
+ toggleFakeGpsAction->setText( "Use Live GPS" );
+}
+
+void Ui::useLiveGps()
+{
+ emit liveGpsPressed();
+ 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();