diff options
author | Javier S. Pedro <maemo@javispedro.com> | 2011-10-16 20:58:29 +0200 |
---|---|---|
committer | Javier S. Pedro <maemo@javispedro.com> | 2011-10-16 20:58:29 +0200 |
commit | 2c8f42cc6ad1c67c5ee0110393c7ee756d14044e (patch) | |
tree | e5f2d5d12c95533f17ef95909b1713a70e5559ef /harmaccuweather/harmaccuweather.cpp | |
parent | 4da9bced6a27b92d49b9fc9392946510b8519d82 (diff) | |
download | sowatch-2c8f42cc6ad1c67c5ee0110393c7ee756d14044e.tar.gz sowatch-2c8f42cc6ad1c67c5ee0110393c7ee756d14044e.zip |
Now monitoring AccuWeather's config file
Diffstat (limited to 'harmaccuweather/harmaccuweather.cpp')
-rw-r--r-- | harmaccuweather/harmaccuweather.cpp | 37 |
1 files changed, 30 insertions, 7 deletions
diff --git a/harmaccuweather/harmaccuweather.cpp b/harmaccuweather/harmaccuweather.cpp index 9d7a00d..1306b6e 100644 --- a/harmaccuweather/harmaccuweather.cpp +++ b/harmaccuweather/harmaccuweather.cpp @@ -2,14 +2,22 @@ using namespace sowatch; -HarmAccuWeather::HarmAccuWeather(int updateTime, QObject *parent) : +HarmAccuWeather::HarmAccuWeather(QObject *parent) : WeatherNotification(parent), - _updateTimer(new QTimer(this)), + _watcher(new QFileSystemWatcher(this)), + _timer(new QTimer(this)), _lastUpdate(QDateTime::fromTime_t(0)) { - connect(_updateTimer, SIGNAL(timeout()), SLOT(update())); - _updateTimer->setInterval(updateTime * 1000); - _updateTimer->start(); + // This only works on Harmattan either way, so I guess + // hardcoding the path is OK. + _watcher->addPath("/home/user/.config/AccuWeather, Inc./awxapp.conf"); + connect(_watcher, SIGNAL(fileChanged(QString)), SLOT(fileChanged(QString))); + + _timer->setInterval(2000); + _timer->setSingleShot(true); + connect(_timer, SIGNAL(timeout()), SLOT(update())); + + // Perform an initial update update(); } @@ -41,13 +49,17 @@ QString HarmAccuWeather::title() const QString HarmAccuWeather::body() const { switch (_lastWxCode) { + case 2: + return tr("Sunny"); + case 3: + return tr("Partly sunny"); case 33: return tr("Clear"); case 6: case 38: return tr("Mostly cloudy"); case 35: - return tr("Part. cloudy"); + return tr("Partly cloudy"); case 7: return tr("Cloudy"); default: @@ -58,6 +70,8 @@ QString HarmAccuWeather::body() const WeatherNotification::WeatherType HarmAccuWeather::forecast() { switch (_lastWxCode) { + case 2: + case 3: case 33: return Sunny; case 6: @@ -90,18 +104,27 @@ void HarmAccuWeather::dismiss() // Do nothing } +void HarmAccuWeather::fileChanged(const QString &path) +{ + Q_UNUSED(path); + qDebug() << "accuweather config file changed"; + _timer->start(); +} + void HarmAccuWeather::update() { QSettings* s = getAccuweatherData(); + qDebug() << "reading accuweather config file"; + QDateTime lastUpdate = s->value("LastUpdate").toDateTime(); if (lastUpdate > _lastUpdate) { - qDebug() << "updated weather info"; _lastUpdate = lastUpdate; _metric = s->value("useMetric").toBool(); _lastTemp = s->value("LastTemp").toInt(); _lastLocation = s->value("LastLocation").toString(); _lastWxCode = s->value("LastWxCode").toInt(); + qDebug() << "updated weather info" << _lastUpdate << _lastWxCode; emit changed(); } |