1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#ifndef SOWATCH_WEATHERNOTIFICATION_H
#define SOWATCH_WEATHERNOTIFICATION_H
#include "notification.h"
namespace sowatch
{
class WeatherNotification : public Notification
{
Q_OBJECT
Q_ENUMS(WeatherType Unit)
Q_PROPERTY(WeatherType forecast READ forecast NOTIFY forecastChanged)
Q_PROPERTY(int temperature READ temperature NOTIFY temperatureChanged)
Q_PROPERTY(Unit temperatureUnits READ temperatureUnits NOTIFY temperatureUnitsChanged)
public:
explicit WeatherNotification(QObject *parent = 0);
enum WeatherType {
UnknownWeather = 0,
Sunny,
PartlyCloudy,
Cloudy,
Fog,
Rain,
Snow,
Thunderstorm
};
enum Unit {
UnknownUnit = 0,
Celsius,
Fahrenheit
};
Priority priority() const;
virtual WeatherType forecast() const = 0;
virtual int temperature() const = 0;
virtual Unit temperatureUnits() const = 0;
signals:
void forecastChanged();
void temperatureChanged();
void temperatureUnitsChanged();
protected:
/** Useful helper functions. */
static qreal convertTemperature(qreal temp, Unit from, Unit to);
static int convertTemperature(int temp, Unit from, Unit to);
};
}
QML_DECLARE_TYPE(sowatch::WeatherNotification)
QML_DECLARE_TYPE(sowatch::WeatherNotification::WeatherType)
QML_DECLARE_TYPE(sowatch::WeatherNotification::Unit)
#endif // WEATHERNOTIFICATION_H
|