MainWidget::MainWidget ()
: QWidget ()
{
- setMinimumSize (300, 80);
#ifdef Q_WS_MAEMO_5
setAttribute(Qt::WA_TranslucentBackground);
#endif
_light = new TrafficLight (this);
_label = new QLabel (this);
+ _label->setAlignment (Qt::AlignHCenter | Qt::AlignVCenter);
+
_traffic = new Traffic;
_regions = new RegionsTable;
_settings = new Settings;
layout->addWidget (_label);
setLayout (layout);
+ _light->setVisible (_settings->check (Settings::C_Light));
+
+ updateSize ();
+
connect (_traffic, SIGNAL (updated ()), SLOT (trafficUpdated ()));
// every 5 minutes (TODO, make option)
ExtendedTrafficInfo info = _traffic->lookup_ext ("1");
if (info.valid ()) {
+ QString data;
+ bool first = true;
_light->setColor (info.color ());
- _label->setText (QString ("%1, %2\n%3")
- .arg (QString::number (info.level ()))
- .arg (info.localtime ())
- .arg (info.hint ()));
+
+ if (_settings->check (Settings::C_Rank)) {
+ data.append (QString::number (info.level ()));
+ data.append (info.level () > 1 ? tr (" points") : tr (" point"));
+ first = false;
+ }
+
+ if (_settings->check (Settings::C_Time)) {
+ if (!first)
+ data.append (", ");
+ data.append (info.localtime ());
+ first = false;
+ }
+
+ if (_settings->check (Settings::C_Hint)) {
+ if (!first)
+ data.append ("\n");
+ data.append (info.hint ());
+ }
+
+ _label->setText (data);
}
else
_light->setColor (ExtendedTrafficInfo::Unknown);
void MainWidget::settingsDialog ()
{
- SettingsDialog dlg (this, _settings);
+ SettingsDialog dlg (_settings);
dlg.exec ();
+
+ // Handle settings
+ _light->setVisible (_settings->check (Settings::C_Light));
+
+ updateSize ();
+ trafficUpdated ();
+}
+
+
+void MainWidget::updateSize ()
+{
+ QSize minSize (0, 80);
+
+ if (_settings->check (Settings::C_Light))
+ minSize += QSize (80, 0);
+ if (_settings->check (Settings::C_Hint))
+ minSize += QSize (270, 0);
+ else {
+ if (_settings->check (Settings::C_Time))
+ minSize += QSize (75, 0);
+ if (_settings->check (Settings::C_Rank))
+ minSize += QSize (75, 0);
+ }
+
+ setFixedSize (minSize);
}