#include <QtNetwork>
#include "http_fetcher.hpp"
-#include "connection.hpp"
-#include "globals.hpp"
// --------------------------------------------------
// HttpFetcher
{
QUrl u (url);
- if (!CHECK_FOR_CONNECTION || ConnectionChecker::instance ()->isConnected ())
- if (u.isValid ()) {
- _http.setHost (u.host ());
- _http.get (u.encodedPath (), &_buffer);
- }
+ if (u.isValid ()) {
+ _http.setHost (u.host ());
+ _http.get (u.encodedPath (), &_buffer);
+ }
}
#include "mainwidget.hpp"
#include "settingsDialog.hpp"
+#include "connection.hpp"
// --------------------------------------------------
#endif
_light = new TrafficLight (this);
_label = new QLabel (this);
+ _timer = new QTimer (this);
_label->setAlignment (Qt::AlignHCenter | Qt::AlignVCenter);
layout->addWidget (_label);
setLayout (layout);
- _light->setVisible (_settings->check (Settings::C_ShowLight));
-
- updateSize ();
+ applySettings ();
connect (_traffic, SIGNAL (updated ()), SLOT (trafficUpdated ()));
-
- // every 5 minutes (TODO, make option)
- startTimer (5*60*1000);
+ connect (_timer, SIGNAL (timeout ()), SLOT (updateDate ()));
updateData ();
}
}
-void MainWidget::timerEvent (QTimerEvent *)
-{
- updateData ();
-}
-
-
void MainWidget::trafficUpdated ()
{
void MainWidget::updateData ()
{
- // Here we need to check for internet connection
- _traffic->update ();
+ bool update = true;
+
+#if CHECK_FOR_CONNECTION
+ update = ConnectionChecker::instance ()->checkConnection (_settings->check (Settings::C_UpdateOnGSM),
+ _settings->check (Settings::C_UpdateOnWiFi));
+#endif
+
+ if (update)
+ _traffic->update ();
}
dlg.exec ();
- // Handle settings
- _light->setVisible (_settings->check (Settings::C_ShowLight));
-
- updateSize ();
+ applySettings ();
trafficUpdated ();
}
setFixedSize (minSize);
}
+
+
+
+void MainWidget::applySettings ()
+{
+ _light->setVisible (_settings->check (Settings::C_ShowLight));
+
+ updateSize ();
+
+ if (_settings->updateInterval () < 0)
+ _timer->stop ();
+ else
+ _timer->setInterval (1000 * 60 * _settings->updateInterval ());
+}