3 #include "mainwidget.hpp"
4 #include "settingsDialog.hpp"
5 #include "connection.hpp"
8 // --------------------------------------------------
10 // --------------------------------------------------
11 MainWidget::MainWidget ()
15 setAttribute(Qt::WA_TranslucentBackground);
17 _light = new TrafficLight (this);
18 _label = new QLabel (this);
19 _timer = new QTimer (this);
21 _label->setAlignment (Qt::AlignHCenter | Qt::AlignVCenter);
23 _traffic = new Traffic;
24 _regions = new RegionsTable;
25 _settings = new Settings;
27 QHBoxLayout *layout = new QHBoxLayout;
28 layout->addWidget (_light);
29 layout->addWidget (_label);
34 connect (_traffic, SIGNAL (updated ()), SLOT (trafficUpdated ()));
35 connect (_timer, SIGNAL (timeout ()), SLOT (updateDate ()));
41 MainWidget::~MainWidget ()
52 void MainWidget::paintEvent(QPaintEvent *event)
55 p.setBrush (QColor(0, 0, 0, 128));
57 p.drawRoundedRect (rect(), 10, 10);
60 QWidget::paintEvent (event);
65 void MainWidget::trafficUpdated ()
67 ExtendedTrafficInfo info = _traffic->lookup_ext (_settings->regionID ());
72 _light->setColor (info.color ());
74 if (_settings->check (Settings::C_ShowRank)) {
75 data.append (QString::number (info.level ()));
76 data.append (info.level () > 1 ? tr (" points") : tr (" point"));
80 if (_settings->check (Settings::C_ShowTime)) {
83 data.append (info.localtime ());
87 if (_settings->check (Settings::C_ShowHint)) {
90 data.append (info.hint ());
93 _label->setText (data);
96 _light->setColor (ExtendedTrafficInfo::Unknown);
97 _label->setText (tr ("No data"));
102 void MainWidget::updateData ()
106 #if CHECK_FOR_CONNECTION
107 update = ConnectionChecker::instance ()->checkConnection (_settings->check (Settings::C_UpdateOnGSM),
108 _settings->check (Settings::C_UpdateOnWiFi));
109 if (!_settings->check (Settings::C_UpdateWhenLocked))
110 update &= !DeviceState::instance ()->locked ();
118 void MainWidget::settingsDialog ()
120 SettingsDialog dlg (_settings);
129 void MainWidget::updateSize ()
131 QSize minSize (0, 80);
133 if (_settings->check (Settings::C_ShowLight))
134 minSize += QSize (80, 0);
135 if (_settings->check (Settings::C_ShowHint))
136 minSize += QSize (270, 0);
138 if (_settings->check (Settings::C_ShowTime))
139 minSize += QSize (75, 0);
140 if (_settings->check (Settings::C_ShowRank))
141 minSize += QSize (75, 0);
144 setFixedSize (minSize);
149 void MainWidget::applySettings ()
151 _light->setVisible (_settings->check (Settings::C_ShowLight));
155 if (_settings->updateInterval () < 0)
158 _timer->setInterval (1000 * 60 * _settings->updateInterval ());
162 void MainWidget::mousePressEvent (QMouseEvent *event)
165 QAction *settingsAction, *updateAction, *todo;
167 settingsAction = menu.addAction (tr ("Settings"));
168 updateAction = menu.addAction (tr ("Update"));
170 todo = menu.exec (event->pos ());
174 if (todo == settingsAction)
176 if (todo == updateAction)