diff options
author | Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org> | 2010-05-29 21:08:09 -0300 |
---|---|---|
committer | Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org> | 2010-05-30 11:04:33 -0300 |
commit | 75400545f25b394b9c6925ab80ab9fd48e2920e2 (patch) | |
tree | 192b41c59d8e37dff0d486087210a19f37142283 /weather/src/forecastprovider.cpp | |
parent | 4d86ebb587dc4f822569ecab3d4d25a5b3ca3939 (diff) |
weather: code moved to src/
Signed-off-by: Anselmo Lacerda S. de Melo <anselmo.melo@openbossa.org>
Diffstat (limited to 'weather/src/forecastprovider.cpp')
-rw-r--r-- | weather/src/forecastprovider.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/weather/src/forecastprovider.cpp b/weather/src/forecastprovider.cpp new file mode 100644 index 0000000..5bda3fe --- /dev/null +++ b/weather/src/forecastprovider.cpp @@ -0,0 +1,54 @@ +#include "forecastprovider.h" +#include <QTime> +#include <QTimer> + +#include "forecast.h" + +ForecastProvider::ForecastProvider() + : m_source(0) +{ +} + +ForecastProvider::~ForecastProvider() +{ +} + +int ForecastProvider::getForecast(const QString &key, bool locationId) +{ + ForecastProvider *obj = instance(); + if (obj->m_source) + return obj->m_source->getForecast(key, locationId); + return -1; +} + +ForecastProvider *ForecastProvider::instance() +{ + static ForecastProvider * const result(new ForecastProvider()); + return result; +} + + +void ForecastProvider::setForecastSource(ForecastSource *source) +{ + ForecastProvider *obj = instance(); + if (obj->m_source) { + disconnect(obj->m_source, SIGNAL(forecastReceived(int, ForecastData)), + obj, SIGNAL(forecastResponse(int, ForecastData))); + obj->m_source->deleteLater(); + } + obj->m_source = source; + if (obj->m_source) + connect(obj->m_source, SIGNAL(forecastReceived(int, ForecastData)), + obj, SIGNAL(forecastResponse(int, ForecastData)), Qt::QueuedConnection); +} + +void ForecastProvider::connectToResponseSignal(QObject *receiver, const char *method) +{ + QObject::connect(instance(), SIGNAL(forecastResponse(int, ForecastData)), + receiver, method, Qt::QueuedConnection); +} + +void ForecastProvider::disconnectReceiver(QObject *receiver) +{ + instance()->disconnect(receiver); +} |