3 #include "messagetable.h"
7 #include <QRadioButton>
8 #include <QTableWidget>
11 #include <QButtonGroup>
12 #include <QHeaderView>
15 #include <QHBoxLayout>
16 #include <QVBoxLayout>
17 #include <QSizePolicy>
18 #include <QInputDialog>
21 MessageTable *Ui::messageTable = 0;
25 destinationButtons(0),
34 void Ui::setupUi( QMainWindow *mainWindow )
36 mainWindow->resize(800,480);
37 menu = mainWindow->menuBar()->addMenu("Settings");
39 QAction *setHomeAddressAction = new QAction("Set home address", this);
40 QAction *setWorkAddressAction = new QAction("Set work address", this);
41 hideMessagesAction = new QAction("Hide messages", this);
42 showMessagesAction = new QAction("Show messages", this);
43 useFakeGpsAction = new QAction("Use fake GPS", this);
44 useLiveGpsAction = new QAction("Use live GPS", this);
45 menu->addAction(setHomeAddressAction);
46 menu->addAction(setWorkAddressAction);
47 menu->addAction(showMessagesAction);
48 menu->addAction(useFakeGpsAction);
51 setHomeAddressAction, SIGNAL(triggered()),
52 this, SLOT(setHomeAddress())
55 setWorkAddressAction, SIGNAL(triggered()),
56 this, SLOT(setWorkAddress())
59 hideMessagesAction, SIGNAL(triggered()),
60 this, SLOT(hideMessages())
63 showMessagesAction, SIGNAL(triggered()),
64 this, SLOT(showMessages())
67 useFakeGpsAction, SIGNAL(triggered()),
68 this, SLOT(useFakeGps())
71 useLiveGpsAction, SIGNAL(triggered()),
72 this, SLOT(useLiveGps())
75 centralWidget = new QWidget( mainWindow );
76 mainWindow->setCentralWidget(centralWidget);
78 QRadioButton *homeButton = new QRadioButton();
79 homeButton->setObjectName( QString::fromUtf8("homeButton") );
80 homeButton->setText( "GPS->HOME" );
81 homeButton->setEnabled(false);
82 homeButton->setFixedSize( QSize( ButtonWidth, ButtonHeight ) );
84 QRadioButton *workButton = new QRadioButton();
85 workButton->setObjectName( QString::fromUtf8("workButton") );
86 workButton->setText( "GPS->WORK" );
87 workButton->setEnabled(false);
89 destinationButtons = new QButtonGroup();
90 destinationButtons->addButton( homeButton, HomeButtonId );
91 destinationButtons->addButton( workButton, WorkButtonId );
92 destinationButtons->setExclusive( true );
94 buttonLayout = new QVBoxLayout();
95 buttonLayout->addWidget( homeButton );
96 buttonLayout->addWidget( workButton );
97 buttonLayout->addStretch();
99 routeTable = new QTableWidget( 1, 2 );
100 QStringList columnHeaders;
101 columnHeaders << "Time" << "Bus";
102 routeTable->setHorizontalHeaderLabels( columnHeaders );
103 routeTable->verticalHeader()->hide();
105 QHBoxLayout *topLayout = new QHBoxLayout();
106 topLayout->addLayout( buttonLayout );
107 topLayout->addWidget( routeTable );
109 messageTable = new MessageTable();
110 messageTable->setObjectName( QString::fromUtf8("messageTable") );
111 messageTable->hide();
113 QVBoxLayout *mainLayout = new QVBoxLayout();
114 mainLayout->addLayout( topLayout );
115 mainLayout->addWidget( messageTable );
117 centralWidget->setLayout( mainLayout );
120 void Ui::setHomeAddress()
122 setAddress( "home" );
125 void Ui::setWorkAddress()
127 setAddress( "work" );
130 void Ui::hideMessages()
132 messageTable->hide();
133 menu->removeAction( hideMessagesAction );
134 menu->addAction( showMessagesAction );
137 void Ui::showMessages()
139 messageTable->show();
140 menu->removeAction( showMessagesAction );
141 menu->addAction( hideMessagesAction );
144 void Ui::useFakeGps()
146 // really want a dialog here
147 Locations *locations = Locations::instance();
148 Location *fakeLocation = locations->location( "work" );
150 emit fakeGpsPressed( fakeLocation );
151 menu->removeAction( useFakeGpsAction );
152 menu->addAction( useLiveGpsAction );
155 void Ui::useLiveGps()
157 emit liveGpsPressed();
158 menu->removeAction( useLiveGpsAction );
159 menu->addAction( useFakeGpsAction );
162 void Ui::setAddress( const QString &label )
164 Locations *locations=Locations::instance();
165 Location *location=locations->location( label );
168 QString address = QInputDialog::getText(
170 tr("Enter address for \""+QString(label).toLatin1()+"\""),
177 qDebug() << "ok=" << ok;
180 qDebug() << "new address" << address;
181 Locations *locations = Locations::instance();
182 Location *location = locations->location( label );
183 qDebug() << "location" << location;
185 location->resolveAddress( address );