bffb368ea9403dbe616ec6d7205df1be13a5a087
[apps/thermostat-demo.git] / weatherwidget.h
1 #ifndef WEATHERWIDGET_H\r
2 #define WEATHERWIDGET_H\r
3 \r
4 #include <QtGui>\r
5 \r
6 #include <QtSvg/QSvgWidget>\r
7 \r
8 class QLabel;\r
9 class WeatherData;\r
10 class WeatherDataWidget;\r
11 class ForecastDataWidget;\r
12 class GlobalSettings;\r
13 \r
14 class WeatherWidget : public QWidget\r
15 {\r
16     Q_OBJECT\r
17 public:\r
18     explicit WeatherWidget(QWidget *parent = 0);\r
19     void setCity(QString);\r
20     void setClock(QTime);\r
21 \r
22     void setWeatherData(WeatherData* weatherData);\r
23     WeatherData* weatherData();\r
24 \r
25     enum CurrentStatus { Updating, UpdateSuccess, UpdateFailed };\r
26 \r
27     QVariantHash getCurrentData();\r
28 \r
29 signals:\r
30     void valueChanged();\r
31     void webReloadRequested();\r
32 \r
33 public slots:\r
34     void setStatusUpdated();\r
35     void setStatusUpdating();\r
36     void setStatusFailed();\r
37 \r
38     void updateData();\r
39 \r
40     void mousePressEvent(QMouseEvent *);\r
41 \r
42     void advanceStatusWidget();\r
43 \r
44 \r
45 \r
46 \r
47 protected:\r
48 \r
49 private:\r
50     QString weatherStyleSheet;\r
51     QTime *clock;\r
52     QLabel *statusLabel;\r
53     QLabel *statusLabel2;\r
54     QLabel *statusMovieLabel;\r
55     QMovie *statusMovie;\r
56     QStackedWidget *statusStackedWidget;\r
57     WeatherDataWidget* weatherDataWidget;\r
58     ForecastDataWidget* forecastDataWidget;\r
59     WeatherData* m_weatherData;\r
60 \r
61     GlobalSettings *m_globalSettings;\r
62 \r
63     CurrentStatus m_currentStatus;\r
64     QTimer statusMessageTimer;\r
65 \r
66     //layout related functions\r
67     void buildStatusWidget();\r
68 };\r
69 \r
70 #endif // WEATHERWIDGET_H\r