diff --git a/configs/org.deepin.dde.dock.power.json b/configs/org.deepin.dde.dock.power.json new file mode 100644 index 000000000..1e4cde87d --- /dev/null +++ b/configs/org.deepin.dde.dock.power.json @@ -0,0 +1,46 @@ +{ + "magic": "dsg.config.meta", + "version": "1.0", + "contents": { + "control": { + "value": false, + "serial": 0, + "flags": [], + "name": "contorl", + "name[zh_CN]": "控制", + "description": "阻止鼠标事件", + "permissions": "readwrite", + "visibility": "private" + }, + "enable": { + "value": true, + "serial": 0, + "flags": [], + "name": "enable", + "name[zh_CN]": "使能", + "description": "使能电源管理模块。", + "permissions": "readwrite", + "visibility": "private" + }, + "showtimetofull":{ + "value": true, + "serial": 0, + "flags": [], + "name": "showtimetofull", + "name[zh_CN]": "显示完整时间", + "description": "是否显示电池使用时间/剩余充电时间。", + "permissions": "readwrite", + "visibility": "public" + }, + "menu-enable":{ + "value": true, + "serial": 0, + "flags": [], + "name": "menu-enable", + "name[zh_CN]": "使能菜单", + "description": "使能菜单。", + "permissions": "readwrite", + "visibility": "private" + } + } +} \ No newline at end of file diff --git a/plugins/power/powerplugin.cpp b/plugins/power/powerplugin.cpp index 9d47dc321..81cfe4ea4 100644 --- a/plugins/power/powerplugin.cpp +++ b/plugins/power/powerplugin.cpp @@ -14,16 +14,13 @@ #include #include +#include #define PLUGIN_STATE_KEY "enable" #define DELAYTIME (20 * 1000) +DCORE_USE_NAMESPACE using namespace Dock; -static QGSettings *GSettingsByApp() -{ - static QGSettings settings("com.deepin.dde.dock.module.power"); - return &settings; -} PowerPlugin::PowerPlugin(QObject *parent) : QObject(parent) @@ -33,6 +30,7 @@ PowerPlugin::PowerPlugin(QObject *parent) , m_tipsLabel(new TipsWidget) , m_systemPowerInter(nullptr) , m_powerInter(nullptr) + , m_dconfig(new DConfig(QString("org.deepin.dde.dock.power"), QString())) , m_preChargeTimer(new QTimer(this)) , m_quickPanel(nullptr) { @@ -185,7 +183,7 @@ void PowerPlugin::loadPlugin() m_systemPowerInter = new SystemPowerInter("org.deepin.dde.Power1", "/org/deepin/dde/Power1", QDBusConnection::systemBus(), this); m_systemPowerInter->setSync(true); - connect(GSettingsByApp(), &QGSettings::changed, this, &PowerPlugin::onGSettingsChanged); + connect(m_dconfig, &DConfig::valueChanged, this, &PowerPlugin::onGSettingsChanged); connect(m_systemPowerInter, &SystemPowerInter::BatteryStatusChanged, [&](uint value) { if (value == BatteryState::CHARGING) m_preChargeTimer->start(); @@ -207,10 +205,8 @@ void PowerPlugin::onGSettingsChanged(const QString &key) return; } - if (GSettingsByApp()->keys().contains("showtimetofull")) { - const bool isEnable = GSettingsByApp()->keys().contains("showtimetofull") && GSettingsByApp()->get("showtimetofull").toBool(); - m_showTimeToFull = isEnable && GSettingsByApp()->get("showtimetofull").toBool(); - } + if (m_dconfig->isValid()) + m_showTimeToFull = m_dconfig->value("showtimetofull").toBool(); refreshTipsData(); } diff --git a/plugins/power/powerplugin.h b/plugins/power/powerplugin.h index 21a5d2b83..92c607e32 100644 --- a/plugins/power/powerplugin.h +++ b/plugins/power/powerplugin.h @@ -15,6 +15,11 @@ #include using SystemPowerInter = org::deepin::dde::Power1; + +DCORE_BEGIN_NAMESPACE +class DConfig; +DCORE_END_NAMESPACE + namespace Dock { class TipsWidget; } @@ -61,6 +66,7 @@ private: SystemPowerInter *m_systemPowerInter; DBusPower *m_powerInter; + Dtk::Core::DConfig *m_dconfig; // 配置 QTimer *m_preChargeTimer; QWidget *m_quickPanel; QLabel *m_imageLabel;