From 2b07df7ed14334dc215df81de05bcacde5361079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Sun, 28 Jun 2015 22:23:35 +0200 Subject: [PATCH] fix dateTime init --- plugins/deviceplugins/datetime/alarm.cpp | 10 ++-- .../datetime/deviceplugindatetime.cpp | 53 +++++++++++++------ 2 files changed, 42 insertions(+), 21 deletions(-) diff --git a/plugins/deviceplugins/datetime/alarm.cpp b/plugins/deviceplugins/datetime/alarm.cpp index 0eeb87d1..552b5cc2 100644 --- a/plugins/deviceplugins/datetime/alarm.cpp +++ b/plugins/deviceplugins/datetime/alarm.cpp @@ -23,11 +23,11 @@ Alarm::Alarm(QObject *parent) : QObject(parent), - m_duskOffset(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))), - m_sunriseOffset(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))), - m_noonOffset(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))), - m_sunsetOffset(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))), - m_dawnOffset(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))) + m_duskOffset(QDateTime()), + m_sunriseOffset(QDateTime()), + m_noonOffset(QDateTime()), + m_sunsetOffset(QDateTime()), + m_dawnOffset(QDateTime()) { } diff --git a/plugins/deviceplugins/datetime/deviceplugindatetime.cpp b/plugins/deviceplugins/datetime/deviceplugindatetime.cpp index cc4760d7..076f3558 100644 --- a/plugins/deviceplugins/datetime/deviceplugindatetime.cpp +++ b/plugins/deviceplugins/datetime/deviceplugindatetime.cpp @@ -91,11 +91,11 @@ DevicePluginDateTime::DevicePluginDateTime() : m_timer(0), m_todayDevice(0), m_timeZone(QTimeZone("Europe/Vienna")), - m_dusk(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))), - m_sunrise(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))), - m_noon(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))), - m_sunset(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))), - m_dawn(QDateTime(QDate(1970, 1, 1), QTime(0,0,0))) + m_dusk(QDateTime()), + m_sunrise(QDateTime()), + m_noon(QDateTime()), + m_sunset(QDateTime()), + m_dawn(QDateTime()) { m_timer = new QTimer(this); m_timer->setInterval(1000); @@ -190,12 +190,13 @@ DeviceManager::DeviceSetupStatus DevicePluginDateTime::setupDevice(Device *devic void DevicePluginDateTime::postSetupDevice(Device *device) { - Q_UNUSED(device) - QDateTime zoneTime = QDateTime::currentDateTime().toTimeZone(m_timeZone); - updateTimes(); - onMinuteChanged(zoneTime); - onHourChanged(zoneTime); - onDayChanged(zoneTime); + if (device->deviceClassId() == todayDeviceClassId) { + QDateTime zoneTime = QDateTime::currentDateTime().toTimeZone(m_timeZone); + updateTimes(); + onMinuteChanged(zoneTime); + onHourChanged(zoneTime); + onDayChanged(zoneTime); + } } void DevicePluginDateTime::deviceRemoved(Device *device) @@ -489,11 +490,31 @@ void DevicePluginDateTime::updateTimes() if (m_todayDevice == 0) return; - m_todayDevice->setStateValue(duskStateTypeId, m_dusk.toTime_t()); - m_todayDevice->setStateValue(sunriseStateTypeId, m_sunrise.toTime_t()); - m_todayDevice->setStateValue(noonStateTypeId, m_noon.toTime_t()); - m_todayDevice->setStateValue(dawnStateTypeId, m_dawn.toTime_t()); - m_todayDevice->setStateValue(sunsetStateTypeId, m_sunset.toTime_t()); + if (m_dusk.isValid()) { + m_todayDevice->setStateValue(duskStateTypeId, m_dusk.toTime_t()); + } else { + m_todayDevice->setStateValue(duskStateTypeId, 0); + } + if (m_dusk.isValid()) { + m_todayDevice->setStateValue(sunriseStateTypeId, m_sunrise.toTime_t()); + } else { + m_todayDevice->setStateValue(sunriseStateTypeId, 0); + } + if (m_dusk.isValid()) { + m_todayDevice->setStateValue(noonStateTypeId, m_noon.toTime_t()); + } else { + m_todayDevice->setStateValue(noonStateTypeId, 0); + } + if (m_dusk.isValid()) { + m_todayDevice->setStateValue(sunsetStateTypeId, m_sunset.toTime_t()); + } else { + m_todayDevice->setStateValue(sunsetStateTypeId, 0); + } + if (m_dusk.isValid()) { + m_todayDevice->setStateValue(dawnStateTypeId, m_dawn.toTime_t()); + } else { + m_todayDevice->setStateValue(dawnStateTypeId, 0); + } } void DevicePluginDateTime::onConfigValueChanged(const QString ¶mName, const QVariant &value)