Log connection state transitions.
[yandex-traffic] / mainwidget.hpp
index eac62a9..20e86be 100644 (file)
@@ -3,47 +3,45 @@
 
 #include <QtGui>
 
-#include <settings.hpp>
-#include <regions.hpp>
+#include "traffic.hpp"
+#include "settings.hpp"
+#include "regions.hpp"
+#include "light.hpp"
 
 
-class MainWidget : public QLabel
+class MainWidget : public QWidget
 {
     Q_OBJECT
 private:
-    RegionsTable _regions;
-    Settings _settings;
+    Traffic* _traffic;
+    RegionsTable* _regions;
+    Settings* _settings;
 
-public:
-    MainWidget ()
-        : QLabel ()
-    {
-        const RegionInfo *ri;
-
-        setAlignment(Qt::AlignCenter);
-        setAttribute(Qt::WA_TranslucentBackground);
+    // Widgets
+    TrafficLight* _light;
+    QLabel* _label;
 
-        ri = _regions.lookup (_settings.regions ()[0]);
+    // Other stuff
+    QTimer *_timer;
 
-        setText (_settings.regions ().join (", ") + ", " + QString (ri ? ri->name () : ""));
-    }
+public:
+    MainWidget ();
+    virtual ~MainWidget ();
 
-    QSize sizeHint() const
-    {
-        return 2 * QLabel::sizeHint();
-    }
+public slots:
+    void settingsDialog ();
+    void updateData ();
 
 protected:
-    void paintEvent(QPaintEvent *event)
-    {
-        QPainter p(this);
-        p.setBrush(QColor(0, 0, 0, 128));
-        p.setPen(Qt::NoPen);
-        p.drawRoundedRect(rect(), 25, 25);
-        p.end();
-
-        QLabel::paintEvent(event);
-    }
+    bool event (QEvent *event);
+    void paintEvent (QPaintEvent *event);
+
+    void updateSize ();
+    void applySettings ();
+
+protected slots:
+    void trafficUpdated ();
+    void deviceLockChanged (bool locked);
 };
 
 #endif /* __MAINWIDGET_H__ */