From 2d925fe74ed1fb2a62b5a857a1a5c6d472320bf8 Mon Sep 17 00:00:00 2001 From: listenerri Date: Tue, 20 Nov 2018 14:45:35 +0800 Subject: [PATCH] fix: date-time plugin enable status Change-Id: I155423b46683393396ef07e39b28545abc3a3676 --- plugins/datetime/datetimeplugin.cpp | 16 +++++++++++----- plugins/datetime/datetimewidget.cpp | 28 +++++++++------------------- plugins/datetime/datetimewidget.h | 6 +----- 3 files changed, 21 insertions(+), 29 deletions(-) diff --git a/plugins/datetime/datetimeplugin.cpp b/plugins/datetime/datetimeplugin.cpp index 373754fe4..0554241ac 100644 --- a/plugins/datetime/datetimeplugin.cpp +++ b/plugins/datetime/datetimeplugin.cpp @@ -25,6 +25,9 @@ #include #include +#define PLUGIN_STATE_KEY "enable" +#define TIME_FORMAT_KEY "24HourFormat" + DatetimePlugin::DatetimePlugin(QObject *parent) : QObject(parent), @@ -58,6 +61,7 @@ const QString DatetimePlugin::pluginDisplayName() const void DatetimePlugin::init(PluginProxyInterface *proxyInter) { m_proxyInter = proxyInter; + m_centralWidget->set24HourFormat(m_proxyInter->getValue(this, TIME_FORMAT_KEY, true).toBool()); // transfer config QSettings settings("deepin", "dde-dock-datetime"); @@ -68,15 +72,15 @@ void DatetimePlugin::init(PluginProxyInterface *proxyInter) QFile::remove(settings.fileName()); } - if (m_centralWidget->enabled()) + if (!pluginIsDisable()) m_proxyInter->itemAdded(this, QString()); } void DatetimePlugin::pluginStateSwitched() { - m_centralWidget->setEnabled(!m_centralWidget->enabled()); + m_proxyInter->saveValue(this, PLUGIN_STATE_KEY, pluginIsDisable()); - if (m_centralWidget->enabled()) + if (!pluginIsDisable()) m_proxyInter->itemAdded(this, QString()); else m_proxyInter->itemRemoved(this, QString()); @@ -84,7 +88,7 @@ void DatetimePlugin::pluginStateSwitched() bool DatetimePlugin::pluginIsDisable() { - return !m_centralWidget->enabled(); + return !(m_proxyInter->getValue(this, PLUGIN_STATE_KEY, true).toBool()); } int DatetimePlugin::itemSortKey(const QString &itemKey) @@ -174,7 +178,9 @@ void DatetimePlugin::invokedMenuItem(const QString &itemKey, const QString &menu .arg(QString("datetime")) .call(); } else { - m_centralWidget->toggleHourFormat(); + const bool value = m_proxyInter->getValue(this, TIME_FORMAT_KEY, true).toBool(); + m_proxyInter->saveValue(this, TIME_FORMAT_KEY, !value); + m_centralWidget->set24HourFormat(!value); } } diff --git a/plugins/datetime/datetimewidget.cpp b/plugins/datetime/datetimewidget.cpp index e122e2c65..66a44bd08 100644 --- a/plugins/datetime/datetimewidget.cpp +++ b/plugins/datetime/datetimewidget.cpp @@ -31,35 +31,25 @@ #define PLUGIN_STATE_KEY "enable" DatetimeWidget::DatetimeWidget(QWidget *parent) - : QWidget(parent), - - m_settings("deepin", "dde-dock-datetime"), - - m_24HourFormat(m_settings.value("24HourFormat", true).toBool()) + : QWidget(parent) { } -bool DatetimeWidget::enabled() +void DatetimeWidget::set24HourFormat(const bool value) { - return m_settings.value(PLUGIN_STATE_KEY, true).toBool(); -} + if (m_24HourFormat == value) { + return; + } -void DatetimeWidget::setEnabled(const bool b) -{ - m_settings.setValue(PLUGIN_STATE_KEY, b); -} - -void DatetimeWidget::toggleHourFormat() -{ - m_24HourFormat = !m_24HourFormat; - - m_settings.setValue("24HourFormat", m_24HourFormat); + m_24HourFormat = value; m_cachedTime.clear(); update(); - emit requestUpdateGeometry(); + if (isVisible()) { + emit requestUpdateGeometry(); + } } QSize DatetimeWidget::sizeHint() const diff --git a/plugins/datetime/datetimewidget.h b/plugins/datetime/datetimewidget.h index 48a2edfa2..46006afa0 100644 --- a/plugins/datetime/datetimewidget.h +++ b/plugins/datetime/datetimewidget.h @@ -23,7 +23,6 @@ #define DATETIMEWIDGET_H #include -#include class DatetimeWidget : public QWidget { @@ -33,15 +32,13 @@ public: explicit DatetimeWidget(QWidget *parent = 0); bool is24HourFormat() const { return m_24HourFormat; } - bool enabled(); - void setEnabled(const bool b); signals: void requestUpdateGeometry() const; void requestContextMenu() const; public slots: - void toggleHourFormat(); + void set24HourFormat(const bool value); private: QSize sizeHint() const; @@ -54,7 +51,6 @@ private: private: QPixmap m_cachedIcon; QString m_cachedTime; - QSettings m_settings; bool m_24HourFormat; };