3 #include "messagetable.h"
7 #include <QRadioButton>
8 #include <QTableWidget>
11 #include <QButtonGroup>
12 #include <QHeaderView>
15 #include <QHBoxLayout>
16 #include <QVBoxLayout>
17 #include <QGridLayout>
18 #include <QSizePolicy>
19 #include <QInputDialog>
22 MessageTable *Ui::messageTable = 0;
26 destinationButtons(0),
28 usingFakeGps( false ),
29 messagesShown( false ),
30 fakeLocationLabel( "work" )
38 void Ui::setupUi( QMainWindow *mainWindow )
40 mainWindow->resize(800,480);
41 menu = mainWindow->menuBar()->addMenu("Settings");
43 QAction *setHomeAddressAction = new QAction("Set home address", this);
44 QAction *setWorkAddressAction = new QAction("Set work address", this);
45 toggleMessagesAction = new QAction("Show messages", this);
46 toggleFakeGpsAction = new QAction("Use fake GPS", this);
47 menu->addAction(setHomeAddressAction);
48 menu->addAction(setWorkAddressAction);
49 menu->addAction(toggleMessagesAction);
50 menu->addAction(toggleFakeGpsAction);
53 setHomeAddressAction, SIGNAL(triggered()),
54 this, SLOT(setHomeAddress())
57 setWorkAddressAction, SIGNAL(triggered()),
58 this, SLOT(setWorkAddress())
61 toggleMessagesAction, SIGNAL(triggered()),
62 this, SLOT(toggleMessages())
65 toggleFakeGpsAction, SIGNAL(triggered()),
66 this, SLOT(toggleFakeGps())
69 centralWidget = new QWidget( mainWindow );
70 mainWindow->setCentralWidget(centralWidget);
72 QRadioButton *homeButton = new QRadioButton();
73 homeButton->setObjectName( QString::fromUtf8("homeButton") );
74 homeButton->setText( "GPS->HOME" );
75 homeButton->setEnabled(false);
77 QRadioButton *workButton = new QRadioButton();
78 workButton->setObjectName( QString::fromUtf8("workButton") );
79 workButton->setText( "GPS->WORK" );
80 workButton->setEnabled(false);
82 destinationButtons = new QButtonGroup();
83 destinationButtons->addButton( homeButton, HomeButtonId );
84 destinationButtons->addButton( workButton, WorkButtonId );
85 destinationButtons->setExclusive( true );
87 routeTable = new QTableWidget( 1, 2 );
88 QStringList columnHeaders;
89 columnHeaders << "Time" << "Bus";
90 routeTable->setHorizontalHeaderLabels( columnHeaders );
91 routeTable->verticalHeader()->hide();
92 routeTable->setSelectionMode( QAbstractItemView::SingleSelection );
94 QHBoxLayout *topLayout = new QHBoxLayout();
95 topLayout->addWidget( routeTable );
97 buttonLayout = new QGridLayout();
98 buttonLayout->addWidget( homeButton, 0, 0 );
99 buttonLayout->addWidget( workButton, 0, 1 );
101 messageTable = new MessageTable();
102 messageTable->setObjectName( QString::fromUtf8("messageTable") );
103 messageTable->hide();
105 QVBoxLayout *mainLayout = new QVBoxLayout();
106 mainLayout->addLayout( topLayout );
107 mainLayout->addWidget( messageTable );
108 mainLayout->addLayout( buttonLayout );
110 centralWidget->setLayout( mainLayout );
113 void Ui::setHomeAddress()
115 setAddress( "home" );
118 void Ui::setWorkAddress()
120 setAddress( "work" );
123 void Ui::toggleMessages()
125 messagesShown = !messagesShown;
127 if ( messagesShown ) {
134 void Ui::hideMessages()
136 messageTable->hide();
137 toggleMessagesAction->setText( "Show messages" );
140 void Ui::showMessages()
142 messageTable->show();
143 toggleMessagesAction->setText( "Hide messages" );
146 void Ui::toggleFakeGps()
148 usingFakeGps = !usingFakeGps;
150 if ( usingFakeGps ) {
157 void Ui::useFakeGps()
159 emit fakeGpsPressed( fakeLocationLabel );
160 toggleFakeGpsAction->setText( "Use Live GPS" );
163 void Ui::useLiveGps()
165 emit liveGpsPressed();
166 toggleFakeGpsAction->setText( "Use Fake GPS" );
169 void Ui::setAddress( const QString &label )
171 Locations *locations=Locations::instance();
172 Location *location=locations->location( label );
175 QString address = QInputDialog::getText(
177 tr("Enter address for \""+QString(label).toLatin1()+"\""),
185 qDebug() << "new address" << address;
186 Locations *locations = Locations::instance();
187 Location *location = locations->location( label );
188 qDebug() << "location" << location;
190 location->resolveAddress( address );