diff options
author | Javier S. Pedro <maemo@javispedro.com> | 2012-08-25 20:18:38 +0200 |
---|---|---|
committer | Javier S. Pedro <maemo@javispedro.com> | 2012-08-25 20:18:38 +0200 |
commit | d6d10c69ba454a6e555733815680acdfc0ee5402 (patch) | |
tree | 34b354ea35801e8a4e918b9687655aa3751a6884 /libsowatch | |
parent | d2e8f4fab19d76e2f00ddbaca0c78ee1276651a6 (diff) | |
download | sowatch-d6d10c69ba454a6e555733815680acdfc0ee5402.tar.gz sowatch-d6d10c69ba454a6e555733815680acdfc0ee5402.zip |
fix meecast non-automatic C -> F conversion
Diffstat (limited to 'libsowatch')
-rw-r--r-- | libsowatch/weathernotification.cpp | 21 | ||||
-rw-r--r-- | libsowatch/weathernotification.h | 6 |
2 files changed, 27 insertions, 0 deletions
diff --git a/libsowatch/weathernotification.cpp b/libsowatch/weathernotification.cpp index fa82f3d..ddfd60b 100644 --- a/libsowatch/weathernotification.cpp +++ b/libsowatch/weathernotification.cpp @@ -6,3 +6,24 @@ WeatherNotification::WeatherNotification(QObject *parent) : Notification(parent) { } + +qreal WeatherNotification::convertTemperature(qreal temp, Unit from, Unit to) +{ + if (from == to) { + return temp; + } else if (from == Celsius && to == Fahrenheit) { + return temp * (9.0f/5.0f) + 32.0f; + } else if (from == Fahrenheit && to == Celsius) { + return (temp - 32.0f) * (5.0f/9.0f); + } +} + + +int WeatherNotification::convertTemperature(int temp, Unit from, Unit to) +{ + if (from == to) { + return temp; + } else { + return qRound(convertTemperature(static_cast<qreal>(temp), from, to)); + } +} diff --git a/libsowatch/weathernotification.h b/libsowatch/weathernotification.h index de3152a..843a844 100644 --- a/libsowatch/weathernotification.h +++ b/libsowatch/weathernotification.h @@ -32,8 +32,14 @@ public: virtual WeatherType forecast() = 0; virtual int temperature() = 0; virtual Unit temperatureUnits() = 0; + + /** Quite useful helper function. */ + static qreal convertTemperature(qreal temp, Unit from, Unit to); + static int convertTemperature(int temp, Unit from, Unit to); }; + + } #endif // WEATHERNOTIFICATION_H |