fix: date-time plugin enable status

Change-Id: I155423b46683393396ef07e39b28545abc3a3676
This commit is contained in:
listenerri 2018-11-20 14:45:35 +08:00
parent d1fa536406
commit 2d925fe74e
Notes: gerrit 2018-11-21 09:07:59 +08:00
Verified+1: <jenkins@deepin.com>
Code-Review+2: listenerri <listenerri@gmail.com>
Submitted-by: listenerri <listenerri@gmail.com>
Submitted-at: Wed, 21 Nov 2018 09:07:58 +0800
Reviewed-on: https://cr.deepin.io/39864
Project: dde/dde-dock
Branch: refs/heads/master
3 changed files with 21 additions and 29 deletions

View File

@ -25,6 +25,9 @@
#include <QLabel>
#include <QDebug>
#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);
}
}

View File

@ -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

View File

@ -23,7 +23,6 @@
#define DATETIMEWIDGET_H
#include <QWidget>
#include <QSettings>
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;
};