3 #include "mainwidget.hpp"
4 #include "settingsDialog.hpp"
7 // --------------------------------------------------
9 // --------------------------------------------------
10 MainWidget::MainWidget ()
14 setAttribute(Qt::WA_TranslucentBackground);
16 _light = new TrafficLight (this);
17 _label = new QLabel (this);
19 _label->setAlignment (Qt::AlignHCenter | Qt::AlignVCenter);
21 _traffic = new Traffic;
22 _regions = new RegionsTable;
23 _settings = new Settings;
25 QHBoxLayout *layout = new QHBoxLayout;
26 layout->addWidget (_light);
27 layout->addWidget (_label);
30 _light->setVisible (_settings->check (Settings::C_Light));
34 connect (_traffic, SIGNAL (updated ()), SLOT (trafficUpdated ()));
36 // every 5 minutes (TODO, make option)
37 startTimer (5*60*1000);
43 MainWidget::~MainWidget ()
54 void MainWidget::paintEvent(QPaintEvent *event)
57 p.setBrush (QColor(0, 0, 0, 128));
59 p.drawRoundedRect (rect(), 10, 10);
62 QWidget::paintEvent (event);
66 void MainWidget::timerEvent (QTimerEvent *)
73 void MainWidget::trafficUpdated ()
75 ExtendedTrafficInfo info = _traffic->lookup_ext ("1");
80 _light->setColor (info.color ());
82 if (_settings->check (Settings::C_Rank)) {
83 data.append (QString::number (info.level ()));
84 data.append (info.level () > 1 ? tr (" points") : tr (" point"));
88 if (_settings->check (Settings::C_Time)) {
91 data.append (info.localtime ());
95 if (_settings->check (Settings::C_Hint)) {
98 data.append (info.hint ());
101 _label->setText (data);
104 _light->setColor (ExtendedTrafficInfo::Unknown);
108 void MainWidget::updateData ()
110 // Here we need to check for internet connection
115 void MainWidget::settingsDialog ()
117 SettingsDialog dlg (_settings);
122 _light->setVisible (_settings->check (Settings::C_Light));
129 void MainWidget::updateSize ()
131 QSize minSize (0, 80);
133 if (_settings->check (Settings::C_Light))
134 minSize += QSize (80, 0);
135 if (_settings->check (Settings::C_Hint))
136 minSize += QSize (270, 0);
138 if (_settings->check (Settings::C_Time))
139 minSize += QSize (75, 0);
140 if (_settings->check (Settings::C_Rank))
141 minSize += QSize (75, 0);
144 setFixedSize (minSize);