From 7eb7b5b8645173e1b832fddc395a5203dbb4b9f4 Mon Sep 17 00:00:00 2001 From: Bea Lam Date: Thu, 31 Aug 2017 11:43:38 +1000 Subject: [PATCH] [nemo-qml-plugin-systemsettings] Add DateTimeSettings::ready property. Contributes to JB#33755 This property indicates when the initial timed signal has been received and the other property values have been initialized. --- src/datetimesettings.cpp | 11 +++++++++++ src/datetimesettings.h | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/src/datetimesettings.cpp b/src/datetimesettings.cpp index 4419b5d..517605e 100644 --- a/src/datetimesettings.cpp +++ b/src/datetimesettings.cpp @@ -79,6 +79,11 @@ void DateTimeSettings::onGetWallClockInfoFinished(QDBusPendingCallWatcher *watch watcher->deleteLater(); } +bool DateTimeSettings::ready() const +{ + return m_timedInfoValid; +} + void DateTimeSettings::setTime(int hour, int minute) { QDate currentDate = QDate::currentDate(); @@ -195,6 +200,8 @@ bool DateTimeSettings::setTime(time_t time) void DateTimeSettings::onTimedSignal(const Maemo::Timed::WallClock::Info &info, bool time_changed) { + const bool prevReady = ready(); + m_timedInfo = info; m_timedInfoValid = true; @@ -219,4 +226,8 @@ void DateTimeSettings::onTimedSignal(const Maemo::Timed::WallClock::Info &info, m_timezone = newTimezone; emit timezoneChanged(); } + + if (prevReady != ready()) { + emit readyChanged(); + } } diff --git a/src/datetimesettings.h b/src/datetimesettings.h index 6ebecd7..dc6830e 100644 --- a/src/datetimesettings.h +++ b/src/datetimesettings.h @@ -45,6 +45,7 @@ class SYSTEMSETTINGS_EXPORT DateTimeSettings: public QObject Q_OBJECT Q_ENUMS(HourMode) + Q_PROPERTY(bool ready READ ready NOTIFY readyChanged) Q_PROPERTY(bool automaticTimeUpdate READ automaticTimeUpdate WRITE setAutomaticTimeUpdate NOTIFY automaticTimeUpdateChanged) Q_PROPERTY(bool automaticTimezoneUpdate READ automaticTimezoneUpdate WRITE setAutomaticTimezoneUpdate NOTIFY automaticTimezoneUpdateChanged) Q_PROPERTY(QString timezone READ timezone WRITE setTimezone NOTIFY timezoneChanged) @@ -61,6 +62,8 @@ class SYSTEMSETTINGS_EXPORT DateTimeSettings: public QObject Q_INVOKABLE void setTime(int hour, int minute); Q_INVOKABLE void setDate(const QDate &date); + bool ready() const; + bool automaticTimeUpdate(); void setAutomaticTimeUpdate(bool enable); @@ -73,6 +76,7 @@ class SYSTEMSETTINGS_EXPORT DateTimeSettings: public QObject Q_INVOKABLE void setHourMode(HourMode mode); signals: + void readyChanged(); void timeChanged(); void automaticTimeUpdateChanged(); void automaticTimezoneUpdateChanged();