mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-02 15:45:21 +00:00
fixed(bug:1568):datetime 24format error on system launch
This commit is contained in:
parent
b62061b04f
commit
7d18650ee6
@ -24,6 +24,9 @@
|
||||
#include <DDBusSender>
|
||||
#include <QLabel>
|
||||
#include <QDebug>
|
||||
#include <QDBusConnectionInterface>
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#define PLUGIN_STATE_KEY "enable"
|
||||
#define TIME_FORMAT_KEY "Use24HourFormat"
|
||||
@ -31,9 +34,8 @@
|
||||
DatetimePlugin::DatetimePlugin(QObject *parent)
|
||||
: QObject(parent)
|
||||
, m_pluginLoaded(false)
|
||||
, m_interface(nullptr)
|
||||
{
|
||||
m_interface = new QDBusInterface("com.deepin.daemon.Timedate", "/com/deepin/daemon/Timedate", "com.deepin.daemon.Timedate");
|
||||
|
||||
QDBusConnection sessionBus = QDBusConnection::sessionBus();
|
||||
sessionBus.connect("com.deepin.daemon.Timedate", "/com/deepin/daemon/Timedate", "org.freedesktop.DBus.Properties", "PropertiesChanged", this, SLOT(propertiesChanged()));
|
||||
}
|
||||
@ -198,15 +200,18 @@ void DatetimePlugin::invokedMenuItem(const QString &itemKey, const QString &menu
|
||||
.arg(QString("datetime"))
|
||||
.call();
|
||||
} else {
|
||||
const bool value = m_interface->property(TIME_FORMAT_KEY).toBool();
|
||||
m_interface->setProperty(TIME_FORMAT_KEY, !value);
|
||||
const bool value = timedateInterface()->property(TIME_FORMAT_KEY).toBool();
|
||||
timedateInterface()->setProperty(TIME_FORMAT_KEY, !value);
|
||||
m_centralWidget->set24HourFormat(!value);
|
||||
}
|
||||
}
|
||||
|
||||
void DatetimePlugin::pluginSettingsChanged()
|
||||
{
|
||||
const bool value = m_interface->property(TIME_FORMAT_KEY).toBool();
|
||||
if (!m_pluginLoaded)
|
||||
return;
|
||||
|
||||
const bool value = timedateInterface()->property(TIME_FORMAT_KEY).toBool();
|
||||
|
||||
m_proxyInter->saveValue(this, TIME_FORMAT_KEY, value);
|
||||
m_centralWidget->set24HourFormat(value);
|
||||
@ -250,3 +255,19 @@ void DatetimePlugin::propertiesChanged()
|
||||
{
|
||||
pluginSettingsChanged();
|
||||
}
|
||||
|
||||
QDBusInterface* DatetimePlugin::timedateInterface()
|
||||
{
|
||||
if (!m_interface) {
|
||||
if (QDBusConnection::sessionBus().interface()->isServiceRegistered("com.deepin.daemon.Timedate")) {
|
||||
m_interface = new QDBusInterface("com.deepin.daemon.Timedate", "/com/deepin/daemon/Timedate", "com.deepin.daemon.Timedate");
|
||||
} else {
|
||||
const QString path = QString("/com/deepin/daemon/Accounts/User%1").arg(QString::number(getuid()));
|
||||
QDBusInterface * systemInterface = new QDBusInterface("com.deepin.daemon.Accounts", path, "com.deepin.daemon.Accounts.User",
|
||||
QDBusConnection::systemBus(), this);
|
||||
return systemInterface;
|
||||
}
|
||||
}
|
||||
|
||||
return m_interface;
|
||||
}
|
||||
|
@ -68,6 +68,7 @@ private slots:
|
||||
|
||||
private:
|
||||
void loadPlugin();
|
||||
QDBusInterface *timedateInterface();
|
||||
|
||||
private:
|
||||
QPointer<DatetimeWidget> m_centralWidget;
|
||||
|
Loading…
x
Reference in New Issue
Block a user