From 1f84161ef1d6e37b5575d0fd9423cf537f65f197 Mon Sep 17 00:00:00 2001 From: zhangkun Date: Thu, 12 Sep 2024 15:40:19 +0800 Subject: [PATCH] feat: Optimize the power module - Replace Chinese with English for easy translation - Add the function of configuring scales for Slider - Some submodules will be named using their original names - update icon resource Log: As title Task: https://pms.uniontech.com/task-view-362041.html --- .../org.deepin.dde.control-center.power.json | 73 ++++++ src/plugin-power/operation/powerinterface.cpp | 62 +++++ src/plugin-power/operation/powerinterface.h | 12 +- src/plugin-power/operation/powermodel.cpp | 56 ++++- src/plugin-power/operation/powermodel.h | 44 +++- .../operation/poweroperatormodel.cpp | 26 +- .../operation/poweroperatormodel.h | 21 +- src/plugin-power/operation/powerworker.cpp | 175 ++++++++------ src/plugin-power/operation/powerworker.h | 37 +-- .../qrc/icons/balance_performance.dci | Bin 0 -> 873 bytes .../operation/qrc/icons/balanced.dci | Bin 0 -> 989 bytes .../operation/qrc/icons/general.dci | Bin 0 -> 3045 bytes .../operation/qrc/icons/high_performance.dci | Bin 0 -> 1079 bytes .../operation/qrc/icons/on_battery.dci | Bin 0 -> 2821 bytes .../operation/qrc/icons/plugged_in.dci | Bin 0 -> 3283 bytes .../operation/qrc/icons/power_performance.dci | Bin 0 -> 1001 bytes src/plugin-power/operation/qrc/power.qrc | 9 + src/plugin-power/operation/utils.h | 41 ---- src/plugin-power/qml/BatteryPage.qml | 225 ++++++++---------- src/plugin-power/qml/CustomComboBox.qml | 3 +- src/plugin-power/qml/CustomTipsSlider.qml | 27 +++ .../qml/{CommonPage.qml => GeneralPage.qml} | 151 +++++------- src/plugin-power/qml/PowerPage.qml | 129 ++++------ ...odeListview.qml => PowerPlansListview.qml} | 27 ++- src/plugin-power/qml/main.qml | 30 ++- src/plugin-power/qml/power.qml | 2 +- 26 files changed, 660 insertions(+), 490 deletions(-) create mode 100644 misc/configs/org.deepin.dde.control-center.power.json create mode 100644 src/plugin-power/operation/qrc/icons/balance_performance.dci create mode 100644 src/plugin-power/operation/qrc/icons/balanced.dci create mode 100644 src/plugin-power/operation/qrc/icons/general.dci create mode 100644 src/plugin-power/operation/qrc/icons/high_performance.dci create mode 100644 src/plugin-power/operation/qrc/icons/on_battery.dci create mode 100644 src/plugin-power/operation/qrc/icons/plugged_in.dci create mode 100644 src/plugin-power/operation/qrc/icons/power_performance.dci create mode 100644 src/plugin-power/qml/CustomTipsSlider.qml rename src/plugin-power/qml/{CommonPage.qml => GeneralPage.qml} (72%) rename src/plugin-power/qml/{PowerModeListview.qml => PowerPlansListview.qml} (78%) diff --git a/misc/configs/org.deepin.dde.control-center.power.json b/misc/configs/org.deepin.dde.control-center.power.json new file mode 100644 index 0000000000..92199d6630 --- /dev/null +++ b/misc/configs/org.deepin.dde.control-center.power.json @@ -0,0 +1,73 @@ +{ + "magic": "dsg.config.meta", + "version": "1.0", + "contents": { + "linePowerScreenBlackDelay": { + "value": ["1m","5m","10m","15m","30m","1h"], + "serial": 0, + "flags": [], + "name": "Control-center_LinePowerScreenBlackDelay", + "name[zh_CN]": "使用电源-关闭显示器", + "description[zh_CN]": "此配置用于设置插入电源关闭显示器的时间", + "description": "", + "permissions": "readwrite", + "visibility": "private" + }, + "linePowerSleepDelay": { + "value": ["10m","15m","30m","1h","2h","3h"], + "serial": 0, + "flags": [], + "name": "Control-center_LinePowerSleepDelay", + "name[zh_CN]": "使用电源-进入待机时间", + "description[zh_CN]": "此配置用于设置插入电源进入待机的时间", + "description": "", + "permissions": "readwrite", + "visibility": "private" + }, + "linePowerLockDelay": { + "value": ["10m","15m","30m","1h","2h","3h"], + "serial": 0, + "flags": [], + "name": "Control-center_LinePowerLockDelay", + "name[zh_CN]": "使用电源-自动锁屏时间", + "description[zh_CN]": "此配置用于设置插入电源自动锁屏的时间", + "description": "", + "permissions": "readwrite", + "visibility": "private" + }, + "batteryScreenBlackDelay": { + "value": ["1m","5m","10m","15m","30m","1h"], + "serial": 0, + "flags": [], + "name": "Control-center_BatteryScreenBlackDelay", + "name[zh_CN]": "使用电池-关闭显示器", + "description[zh_CN]": "此配置用于设置使用电池关闭显示器的时间", + "description": "", + "permissions": "readwrite", + "visibility": "private" + }, + "batterySleepDelay": { + "value": ["10m","15m","30m","1h","2h","3h"], + "serial": 0, + "flags": [], + "name": "Control-center_BatterySleepDelay", + "name[zh_CN]": "使用电池-进入待机时间", + "description[zh_CN]": "此配置用于设置使用电池进入待机的时间", + "description": "", + "permissions": "readwrite", + "visibility": "private" + }, + "batteryLockDelay": { + "value": ["1m","5m","10m","15m","30m","1h"], + "serial": 0, + "flags": [], + "name": "Control-center_BatteryLockDelay", + "name[zh_CN]": "使用电池-自动锁屏时间", + "description[zh_CN]": "此配置用于设置使用电池自动锁屏的时间", + "description": "", + "permissions": "readwrite", + "visibility": "private" + } + } +} + diff --git a/src/plugin-power/operation/powerinterface.cpp b/src/plugin-power/operation/powerinterface.cpp index e76c73f83b..1856624f7d 100644 --- a/src/plugin-power/operation/powerinterface.cpp +++ b/src/plugin-power/operation/powerinterface.cpp @@ -19,6 +19,68 @@ PowerInterface::PowerInterface(QObject *parent) m_model->setSuspend(!IsServerSystem && true); m_model->setHibernate(!IsServerSystem && true); m_model->setShutdown(true); + + m_powerLidClosedOperatorModel->setVisible(POT_ShutDown, false); + m_batteryLidClosedOperatorModel->setVisible(POT_ShutDown, false); + + connect(m_model, &PowerModel::hibernateChanged, this, [this](bool value){ + m_powerLidClosedOperatorModel->setVisible(POT_Hibernate, value); + m_powerPressedOperatorModel->setVisible(POT_Hibernate, value); + m_batteryLidClosedOperatorModel->setVisible(POT_Hibernate, value); + m_batteryPressedOperatorModel->setVisible(POT_Hibernate, value); + }); + connect(m_model, &PowerModel::suspendChanged, this, [this](bool value){ + m_powerLidClosedOperatorModel->setVisible(POT_Suspend, value); + m_powerPressedOperatorModel->setVisible(POT_Suspend, value); + m_batteryLidClosedOperatorModel->setVisible(POT_Suspend, value); + m_batteryPressedOperatorModel->setVisible(POT_Suspend, value); + }); + connect(m_model, &PowerModel::shutdownChanged, this, [this](bool value){ + m_powerPressedOperatorModel->setVisible(POT_ShutDown, value); + m_batteryPressedOperatorModel->setVisible(POT_ShutDown, value); + }); +} + +int PowerInterface::indexByValueOnModel(QAbstractListModel *model, int targetValue) +{ + if (!model) return -1; + + QHash roles = model->roleNames(); + int valueRole = -1; + + for (auto it = roles.constBegin(); it != roles.constEnd(); ++it) { + if (it.value() == "value") { + valueRole = it.key(); + break; + } + } + + if (valueRole == -1) { + return -1; + } + + for (int i = 0; i < model->rowCount(); i++) { + QModelIndex index = model->index(i, 0); + QVariant value = model->data(index, valueRole); + + if (value.toInt() == targetValue) { + return i; + } + } + + return -1; +} + +int PowerInterface::indexByValueOnMap(const QVariantList& dataMap, int targetValue) +{ + for (int i = 0; i < dataMap.size(); i++) { + QVariantMap map = dataMap.at(i).toMap(); + if (map.value("value").toInt() == targetValue) { + return i; + } + } + + return -1; } DCC_FACTORY_CLASS(PowerInterface) diff --git a/src/plugin-power/operation/powerinterface.h b/src/plugin-power/operation/powerinterface.h index 541dfee0f0..250989ee4b 100644 --- a/src/plugin-power/operation/powerinterface.h +++ b/src/plugin-power/operation/powerinterface.h @@ -14,14 +14,18 @@ class PowerInterface : public QObject Q_PROPERTY(PowerModel *model READ getModel NOTIFY powerModelChanged) Q_PROPERTY(PowerWorker *worker READ getWorker NOTIFY powerWorkerChanged) - Q_PROPERTY(PowerOperatorModel *powerLidModel MEMBER m_powerLidClosedOperatorModel) - Q_PROPERTY(PowerOperatorModel *powerPressModel MEMBER m_powerPressedOperatorModel) - Q_PROPERTY(PowerOperatorModel *batteryLidModel MEMBER m_batteryLidClosedOperatorModel) - Q_PROPERTY(PowerOperatorModel *batteryPressModel MEMBER m_batteryPressedOperatorModel) + Q_PROPERTY(PowerOperatorModel *powerLidModel MEMBER m_powerLidClosedOperatorModel CONSTANT) + Q_PROPERTY(PowerOperatorModel *powerPressModel MEMBER m_powerPressedOperatorModel CONSTANT) + Q_PROPERTY(PowerOperatorModel *batteryLidModel MEMBER m_batteryLidClosedOperatorModel CONSTANT) + Q_PROPERTY(PowerOperatorModel *batteryPressModel MEMBER m_batteryPressedOperatorModel CONSTANT) public: explicit PowerInterface(QObject *parent = nullptr); PowerModel *getModel() const { return m_model; }; PowerWorker *getWorker() const { return m_worker; }; + + Q_INVOKABLE int indexByValueOnModel(QAbstractListModel *model, int targetValue); + Q_INVOKABLE int indexByValueOnMap(const QVariantList& dataMap, int targetValue); + signals: void powerModelChanged(PowerModel *model); void powerWorkerChanged(PowerWorker *worker); diff --git a/src/plugin-power/operation/powermodel.cpp b/src/plugin-power/operation/powermodel.cpp index 8645aabde5..63514d7ad1 100644 --- a/src/plugin-power/operation/powermodel.cpp +++ b/src/plugin-power/operation/powermodel.cpp @@ -381,4 +381,58 @@ void PowerModel::setShowBatteryTimeToFull(bool value) Q_EMIT showBatteryTimeToFullChanged(value); } -} \ No newline at end of file +} + +void PowerModel::setBatteryLockDelayModel(const QVariantList &value) +{ + if (m_batteryLockDelayModel != value) { + m_batteryLockDelayModel = value; + + Q_EMIT batteryLockDelayModelChanged(value); + } +} + +void PowerModel::setBatteryScreenBlackDelayModel(const QVariantList &value) +{ + if (m_batteryScreenBlackDelayModel != value) { + m_batteryScreenBlackDelayModel = value; + + Q_EMIT batteryScreenBlackDelayModelChanged(value); + } +} + +void PowerModel::setBatterySleepDelayModel(const QVariantList &value) +{ + if (m_batterySleepDelayModel != value) { + m_batterySleepDelayModel = value; + + Q_EMIT batterySleepDelayModelChanged(value); + } +} + +void PowerModel::setLinePowerLockDelayModel(const QVariantList &value) +{ + if (m_linePowerLockDelayModel != value) { + m_linePowerLockDelayModel = value; + + Q_EMIT linePowerLockDelayModelChanged(value); + } +} + +void PowerModel::setLinePowerScreenBlackDelayModel(const QVariantList &value) +{ + if (m_linePowerScreenBlackDelayModel != value) { + m_linePowerScreenBlackDelayModel = value; + + Q_EMIT linePowerScreenBlackDelayModelChanged(value); + } +} + +void PowerModel::setLinePowerSleepDelayModel(const QVariantList &value) +{ + if (m_linePowerSleepDelayModel != value) { + m_linePowerSleepDelayModel = value; + + Q_EMIT linePowerSleepDelayModelChanged(value); + } +} diff --git a/src/plugin-power/operation/powermodel.h b/src/plugin-power/operation/powermodel.h index d79a30f950..b8fd36d918 100644 --- a/src/plugin-power/operation/powermodel.h +++ b/src/plugin-power/operation/powermodel.h @@ -50,6 +50,13 @@ class PowerModel : public QObject Q_PROPERTY(double batteryCapacity READ batteryCapacity WRITE setBatteryCapacity NOTIFY batteryCapacityChanged) Q_PROPERTY(bool showBatteryTimeToFull READ showBatteryTimeToFull WRITE setShowBatteryTimeToFull NOTIFY showBatteryTimeToFullChanged) + Q_PROPERTY(QVariantList batteryLockDelayModel READ batteryLockDelayModel WRITE setBatteryLockDelayModel NOTIFY batteryLockDelayModelChanged) + Q_PROPERTY(QVariantList batteryScreenBlackDelayModel READ batteryScreenBlackDelayModel WRITE setBatteryScreenBlackDelayModel NOTIFY batteryScreenBlackDelayModelChanged) + Q_PROPERTY(QVariantList batterySleepDelayModel READ batterySleepDelayModel WRITE setBatterySleepDelayModel NOTIFY batterySleepDelayModelChanged) + Q_PROPERTY(QVariantList linePowerLockDelayModel READ linePowerLockDelayModel WRITE setLinePowerLockDelayModel NOTIFY linePowerLockDelayModelChanged) + Q_PROPERTY(QVariantList linePowerScreenBlackDelayModel READ linePowerScreenBlackDelayModel WRITE setLinePowerScreenBlackDelayModel NOTIFY linePowerScreenBlackDelayModelChanged) + Q_PROPERTY(QVariantList linePowerSleepDelayModel READ linePowerSleepDelayModel WRITE setLinePowerSleepDelayModel NOTIFY linePowerSleepDelayModelChanged) + QML_NAMED_ELEMENT(PowerModel) QML_SINGLETON @@ -94,10 +101,7 @@ class PowerModel : public QObject inline int getPowerLockScreenDelay() const { return m_powerLockScreenDelay; } void setPowerLockScreenDelay(const int value); - inline bool autoPowerSaveMode() const - { - return m_autoPowerSaveMode; - } + inline bool autoPowerSaveMode() const { return m_autoPowerSaveMode; } void setAutoPowerSaveMode(bool autoPowerSavingMode); inline bool powerSaveMode() const { return m_powerSaveMode; } @@ -178,6 +182,24 @@ class PowerModel : public QObject inline bool showBatteryTimeToFull() const { return m_showBatteryTimeToFull; } void setShowBatteryTimeToFull(bool showBatteryTimeToFull); + inline QVariantList batteryLockDelayModel() const { return m_batteryLockDelayModel; }; + void setBatteryLockDelayModel(const QVariantList &value); + + inline QVariantList batteryScreenBlackDelayModel() const { return m_batteryScreenBlackDelayModel; }; + void setBatteryScreenBlackDelayModel(const QVariantList& value); + + inline QVariantList batterySleepDelayModel() const { return m_batterySleepDelayModel; }; + void setBatterySleepDelayModel(const QVariantList &value); + + inline QVariantList linePowerLockDelayModel() const { return m_linePowerScreenBlackDelayModel; }; + void setLinePowerLockDelayModel(const QVariantList &value); + + inline QVariantList linePowerScreenBlackDelayModel() const { return m_linePowerScreenBlackDelayModel; }; + void setLinePowerScreenBlackDelayModel(const QVariantList &value); + + inline QVariantList linePowerSleepDelayModel() const { return m_linePowerSleepDelayModel; }; + void setLinePowerSleepDelayModel(const QVariantList &value); + Q_SIGNALS: void sleepLockChanged(const bool sleepLock); void canSleepChanged(const bool canSleep); @@ -224,6 +246,13 @@ class PowerModel : public QObject void batteryCapacityChanged(double value); void showBatteryTimeToFullChanged(bool value); + void batteryLockDelayModelChanged(const QVariantList &value); + void batteryScreenBlackDelayModelChanged(const QVariantList &value); + void batterySleepDelayModelChanged(const QVariantList &value); + void linePowerLockDelayModelChanged(const QVariantList &value); + void linePowerScreenBlackDelayModelChanged(const QVariantList &value); + void linePowerSleepDelayModelChanged(const QVariantList &value); + private: bool m_lidPresent; //以此判断是否为笔记本 bool m_sleepOnLidOnPowerClose; @@ -270,6 +299,13 @@ class PowerModel : public QObject double m_batteryCapacity; bool m_showBatteryTimeToFull; + + QVariantList m_batteryLockDelayModel; + QVariantList m_batteryScreenBlackDelayModel; + QVariantList m_batterySleepDelayModel; + QVariantList m_linePowerLockDelayModel; + QVariantList m_linePowerScreenBlackDelayModel; + QVariantList m_linePowerSleepDelayModel; }; #endif // POWERMODEL_H diff --git a/src/plugin-power/operation/poweroperatormodel.cpp b/src/plugin-power/operation/poweroperatormodel.cpp index 3d3a3a1711..00a4b2d6a3 100644 --- a/src/plugin-power/operation/poweroperatormodel.cpp +++ b/src/plugin-power/operation/poweroperatormodel.cpp @@ -6,12 +6,12 @@ PowerOperatorModel::PowerOperatorModel(QObject *parent) : QAbstractListModel(parent) { - appendRow(new PowerOperator(0, "关机", true, true)); - appendRow(new PowerOperator(1, "待机", true, true)); - appendRow(new PowerOperator(2, "休眠", true, true)); - appendRow(new PowerOperator(3, "关闭显示器", true, true)); - appendRow(new PowerOperator(4, "进入关机界面", true, true)); - appendRow(new PowerOperator(5, "无任何操作", true, true)); + appendRow(new PowerOperator(0, tr("Shut down"), true, true)); + appendRow(new PowerOperator(1, tr("Suspend"), true, true)); + appendRow(new PowerOperator(2, tr("Hibernate"), true, true)); + appendRow(new PowerOperator(3, tr("Turn off the monitor"), true, true)); + appendRow(new PowerOperator(4, tr("Show the shutdown Interface"), true, true)); + appendRow(new PowerOperator(5, tr("Do nothing"), true, true)); } PowerOperatorModel::~PowerOperatorModel() @@ -34,8 +34,8 @@ QVariant PowerOperatorModel::data(const QModelIndex &index, int role) const return {}; const auto operatorItem = m_powerOperatorList[index.row()]; switch (role) { - case ValueRole: - return operatorItem->value; + case KeyRole: + return operatorItem->key; case TextRole: return operatorItem->text; case EnableRole: @@ -56,7 +56,7 @@ void PowerOperatorModel::appendRow(PowerOperator *powerOperator) void PowerOperatorModel::setEnable(int index, bool enable) { - if (index > 0 && index < m_powerOperatorList.size()) { + if (index >= 0 && index < m_powerOperatorList.size()) { m_powerOperatorList[index]->enable = enable; emit dataChanged(PowerOperatorModel::index(index, 0), PowerOperatorModel::index(index, 0)); } @@ -64,7 +64,7 @@ void PowerOperatorModel::setEnable(int index, bool enable) void PowerOperatorModel::setVisible(int index, bool visible) { - if (index > 0 && index < m_powerOperatorList.size()) { + if (index >= 0 && index < m_powerOperatorList.size()) { m_powerOperatorList[index]->visible = visible; emit dataChanged(PowerOperatorModel::index(index, 0), PowerOperatorModel::index(index, 0)); } @@ -73,7 +73,7 @@ void PowerOperatorModel::setVisible(int index, bool visible) QHash PowerOperatorModel::roleNames() const { QHash roles; - roles[ValueRole] = "value"; + roles[KeyRole] = "key"; roles[TextRole] = "text"; roles[EnableRole] = "enable"; roles[VisibleRole] = "visible"; @@ -85,13 +85,13 @@ quint8 PowerOperatorModel::keyOfIndex(int rowIndex) const if (rowIndex < 0 || rowIndex >= m_powerOperatorList.size()) { return -1; } - return m_powerOperatorList[rowIndex]->value; + return m_powerOperatorList[rowIndex]->key; } int PowerOperatorModel::indexOfKey(quint8 key) const { for (int i = 0; i < m_powerOperatorList.size(); i++) { - if (m_powerOperatorList[i]->value == key) { + if (m_powerOperatorList[i]->key == key) { return i; } } diff --git a/src/plugin-power/operation/poweroperatormodel.h b/src/plugin-power/operation/poweroperatormodel.h index e8ae5da4cf..d72087f22f 100644 --- a/src/plugin-power/operation/poweroperatormodel.h +++ b/src/plugin-power/operation/poweroperatormodel.h @@ -7,14 +7,23 @@ #include #include +enum PowerOperatorType{ + POT_ShutDown = 0, + POT_Suspend, + POT_Hibernate, + POT_TurnOffMonitor, + POT_ShowShutDownInter, + POT_DoNoting +}; + struct PowerOperator { - quint8 value; + quint8 key; QString text; bool visible; bool enable; - PowerOperator(quint8 value, QString text, bool visible = true, bool enable = true) - : value(value), text(text), visible(visible), enable(enable) {} + PowerOperator(quint8 key, QString text, bool visible = true, bool enable = true) + : key(key), text(text), visible(visible), enable(enable) {} }; class PowerOperatorModel : public QAbstractListModel @@ -25,7 +34,7 @@ class PowerOperatorModel : public QAbstractListModel enum PowerOperatorRole { - ValueRole = Qt::UserRole + 1, + KeyRole = Qt::UserRole + 1, TextRole, VisibleRole, EnableRole, @@ -35,7 +44,6 @@ class PowerOperatorModel : public QAbstractListModel PowerOperatorModel(QObject *parent = nullptr); ~PowerOperatorModel(); QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; - void appendRow(PowerOperator *info); int rowCount(const QModelIndex &parent= QModelIndex()) const override;; void setEnable(int index, bool enable); void setVisible(int index, bool visible); @@ -46,6 +54,9 @@ class PowerOperatorModel : public QAbstractListModel protected: QHash roleNames() const override; +private: + void appendRow(PowerOperator *info); + private: QList m_powerOperatorList; }; diff --git a/src/plugin-power/operation/powerworker.cpp b/src/plugin-power/operation/powerworker.cpp index c82565324b..8a09112b87 100644 --- a/src/plugin-power/operation/powerworker.cpp +++ b/src/plugin-power/operation/powerworker.cpp @@ -12,6 +12,13 @@ #define POWER_CAN_SLEEP "POWER_CAN_SLEEP" #define POWER_CAN_HIBERNATE "POWER_CAN_HIBERNATE" +#define BATTERYLOCKDELAYNAME "batteryLockDelay" +#define BATTERYSLEEPDELAYNAME "batterySleepDelay" +#define BATTERYSBDELAYNAME "batteryScreenBlackDelay" +#define LINEPOWERLOCKDELAYNAME "linePowerLockDelay" +#define LINEPOWERSLEEPDELAYNAME "linePowerSleepDelay" +#define LINEPOWERSBDELAYNAME "linePowerScreenBlackDelay" + static const QStringList DCC_CONFIG_FILES { "/etc/deepin/dde-control-center.conf", "/usr/share/dde-control-center/dde-control-center.conf" @@ -21,7 +28,8 @@ PowerWorker::PowerWorker(PowerModel *model, QObject *parent) : QObject(parent) , m_powerModel(model) , m_powerDBusProxy(new PowerDBusProxy(this)) - , cfgDock(DConfig::create("org.deepin.ds.dock", "org.deepin.ds.dock.power", QString(), this)) + , m_cfgDock(DConfig::create("org.deepin.dde.tray-loader", "org.deepin.dde.dock.plugin.power", QString(), this)) + , m_cfgPower(DConfig::create("org.deepin.dde.control-center", "org.deepin.dde.control-center.power", QString(), this)) { connect(m_powerDBusProxy, &PowerDBusProxy::noPasswdLoginChanged, m_powerModel, &PowerModel::setNoPasswdLogin); connect(m_powerDBusProxy, &PowerDBusProxy::ScreenBlackLockChanged, m_powerModel, &PowerModel::setScreenBlackLock); @@ -58,18 +66,77 @@ PowerWorker::PowerWorker(PowerModel *model, QObject *parent) connect(m_powerDBusProxy, &PowerDBusProxy::ModeChanged, m_powerModel, &PowerModel::setPowerPlan); connect(m_powerDBusProxy, &PowerDBusProxy::BatteryCapacityChanged, m_powerModel, &PowerModel::setBatteryCapacity); - connect(cfgDock, &DConfig::valueChanged, [this] (const QString &key) { - if ("showtimetofull" == key) { - m_powerModel->setShowBatteryTimeToFull(cfgDock->value("showtimetofull").toBool()); + connect(m_cfgDock, &DConfig::valueChanged, [this] (const QString &key) { + if ("showTimeToFull" == key) { + m_powerModel->setShowBatteryTimeToFull(m_cfgDock->value("showTimeToFull").toBool()); } }); + connect(m_cfgPower, &DConfig::valueChanged, [this](const QString &key) { + if (key == BATTERYLOCKDELAYNAME) { + readDelayConfig(BATTERYLOCKDELAYNAME, + std::bind(&PowerModel::setBatteryLockDelayModel, m_powerModel, std::placeholders::_1)); + } else if (key == BATTERYSLEEPDELAYNAME) { + readDelayConfig(BATTERYSLEEPDELAYNAME, + std::bind(&PowerModel::setBatterySleepDelayModel, m_powerModel, std::placeholders::_1)); + + } else if (key == BATTERYSBDELAYNAME) { + readDelayConfig(BATTERYSBDELAYNAME, + std::bind(&PowerModel::setBatteryScreenBlackDelayModel, m_powerModel, std::placeholders::_1)); + + } else if (key == LINEPOWERLOCKDELAYNAME) { + readDelayConfig(LINEPOWERLOCKDELAYNAME, + std::bind(&PowerModel::setLinePowerLockDelayModel, m_powerModel, std::placeholders::_1)); + + } else if (key == LINEPOWERSLEEPDELAYNAME) { + readDelayConfig(LINEPOWERSLEEPDELAYNAME, + std::bind(&PowerModel::setLinePowerSleepDelayModel, m_powerModel, std::placeholders::_1)); + + } else if (key == LINEPOWERSBDELAYNAME) { + readDelayConfig(LINEPOWERSBDELAYNAME, + std::bind(&PowerModel::setLinePowerScreenBlackDelayModel, m_powerModel, std::placeholders::_1)); + + } + }); + // init base property m_powerModel->setHaveBettary(m_powerDBusProxy->hasBattery()); active(); } +QVariantList PowerWorker::converToDataMap(const QStringList& conf) +{ + QVariantList dataMap; + for(const QString& numStr : conf) { + int num; + if (numStr.isEmpty()) { + qWarning() << "Convert to num failed, config is empty"; + continue; + } + bool ok; + num = numStr.mid(0, numStr.length() - 1).toInt(&ok); + if (!ok) { + qWarning() << "Convert to num failed, can't change num to int"; + num = 0; + } + if (numStr.contains("m")) { + num = num * 60; + } else if (numStr.contains("h")) { + num = num * 3600; + } + QVariantMap map; + map["text"] = numStr; + map["value"] = num; + dataMap.push_back(map); + } + QVariantMap map; + map["text"] = tr("Never"); + map["value"] = 0; + dataMap.push_back(map); + return dataMap; +} + void PowerWorker::active() { m_powerDBusProxy->blockSignals(false); @@ -93,7 +160,7 @@ void PowerWorker::active() m_powerModel->setPowerPlan(m_powerDBusProxy->mode()); m_powerModel->setBatteryCapacity(m_powerDBusProxy->batteryCapacity()); m_powerModel->setNoPasswdLogin(m_powerDBusProxy->noPasswdLogin()); - m_powerModel->setShowBatteryTimeToFull(cfgDock->value("showtimetofull").toBool()); + m_powerModel->setShowBatteryTimeToFull(m_cfgDock->value("showTimeToFull").toBool()); m_powerModel->setNoPasswdLogin(m_powerDBusProxy->noPasswdLogin()); @@ -142,6 +209,21 @@ void PowerWorker::active() canHibernateWatcher->setFuture(QtConcurrent::run([=] { return m_powerDBusProxy->login1ManagerCanHibernate(); })); + + readDelayConfig(BATTERYLOCKDELAYNAME, std::bind(&PowerModel::setBatteryLockDelayModel, m_powerModel, std::placeholders::_1)); + readDelayConfig(BATTERYSLEEPDELAYNAME, std::bind(&PowerModel::setBatterySleepDelayModel, m_powerModel, std::placeholders::_1)); + readDelayConfig(BATTERYSBDELAYNAME, std::bind(&PowerModel::setBatteryScreenBlackDelayModel, m_powerModel, std::placeholders::_1)); + readDelayConfig(LINEPOWERLOCKDELAYNAME, std::bind(&PowerModel::setLinePowerLockDelayModel, m_powerModel, std::placeholders::_1)); + readDelayConfig(LINEPOWERSLEEPDELAYNAME, std::bind(&PowerModel::setLinePowerSleepDelayModel, m_powerModel, std::placeholders::_1)); + readDelayConfig(LINEPOWERSBDELAYNAME, std::bind(&PowerModel::setLinePowerScreenBlackDelayModel, m_powerModel, std::placeholders::_1)); +} + +void PowerWorker::readDelayConfig(const QString &key, std::function callback) +{ + auto configList = m_cfgPower->value(key).toStringList(); + auto configDataMap = converToDataMap(configList); + // TODO 校验值是否合法 + callback(configDataMap); } void PowerWorker::deactive() @@ -166,51 +248,51 @@ void PowerWorker::setSleepOnLidOnPowerClosed(const bool sleep) void PowerWorker::setSleepDelayOnPower(const int delay) { - qDebug() << "m_powerDBusProxy->setLinePowerSleepDelay: " << converToDelayDBus(delay); - m_powerDBusProxy->setLinePowerSleepDelay(converToDelayDBus(delay)); + qDebug() << "m_powerDBusProxy->setLinePowerSleepDelay: " << delay; + m_powerDBusProxy->setLinePowerSleepDelay(delay); } void PowerWorker::setSleepDelayOnBattery(const int delay) { - qDebug() << "m_powerDBusProxy->setBatterySleepDelay: " << converToDelayDBus(delay); - m_powerDBusProxy->setBatterySleepDelay(converToDelayDBus(delay)); + qDebug() << "m_powerDBusProxy->setBatterySleepDelay: " << delay; + m_powerDBusProxy->setBatterySleepDelay(delay); } void PowerWorker::setScreenBlackDelayOnPower(const int delay) { - qDebug() << "m_powerDBusProxy->setLinePowerScreenBlackDelay: " << converToDelayDBus(delay); - m_powerDBusProxy->setLinePowerScreenBlackDelay(converToDelayDBus(delay)); + qDebug() << "m_powerDBusProxy->setLinePowerScreenBlackDelay: " << delay; + m_powerDBusProxy->setLinePowerScreenBlackDelay(delay); } void PowerWorker::setScreenBlackDelayOnBattery(const int delay) { - qDebug() << "m_powerDBusProxy->setBatteryScreenBlackDelay: " << converToDelayDBus(delay); - m_powerDBusProxy->setBatteryScreenBlackDelay(converToDelayDBus(delay)); + qDebug() << "m_powerDBusProxy->setBatteryScreenBlackDelay: " << delay; + m_powerDBusProxy->setBatteryScreenBlackDelay(delay); } void PowerWorker::setSleepDelayToModelOnPower(const int delay) { - m_powerModel->setSleepDelayOnPower(converToDelayModel(delay)); + m_powerModel->setSleepDelayOnPower(delay); } void PowerWorker::setScreenBlackDelayToModelOnPower(const int delay) { - m_powerModel->setScreenBlackDelayOnPower(converToDelayModel(delay)); + m_powerModel->setScreenBlackDelayOnPower(delay); } void PowerWorker::setSleepDelayToModelOnBattery(const int delay) { - m_powerModel->setSleepDelayOnBattery(converToDelayModel(delay)); + m_powerModel->setSleepDelayOnBattery(delay); } void PowerWorker::setResponseBatteryLockScreenDelay(const int delay) { - m_powerModel->setBatteryLockScreenDelay(converToDelayModel(delay)); + m_powerModel->setBatteryLockScreenDelay(delay); } void PowerWorker::setResponsePowerLockScreenDelay(const int delay) { - m_powerModel->setPowerLockScreenDelay(converToDelayModel(delay)); + m_powerModel->setPowerLockScreenDelay(delay); } void PowerWorker::setHighPerformanceSupported(bool state) @@ -300,19 +382,19 @@ bool PowerWorker::getCurCanHibernate() void PowerWorker::setScreenBlackDelayToModelOnBattery(const int delay) { - m_powerModel->setScreenBlackDelayOnBattery(converToDelayModel(delay)); + m_powerModel->setScreenBlackDelayOnBattery(delay); } void PowerWorker::setLockScreenDelayOnBattery(const int delay) { - qDebug() << "m_powerDBusProxy->setBatteryLockDelay: " << converToDelayDBus(delay); - m_powerDBusProxy->setBatteryLockDelay(converToDelayDBus(delay)); + qDebug() << "m_powerDBusProxy->setBatteryLockDelay: " << delay; + m_powerDBusProxy->setBatteryLockDelay(delay); } void PowerWorker::setLockScreenDelayOnPower(const int delay) { - qDebug() << "m_powerDBusProxy->setLinePowerLockDelay: " << converToDelayDBus(delay); - m_powerDBusProxy->setLinePowerLockDelay(converToDelayDBus(delay)); + qDebug() << "m_powerDBusProxy->setLinePowerLockDelay: " << delay; + m_powerDBusProxy->setLinePowerLockDelay(delay); } void PowerWorker::setEnablePowerSave(const bool isEnable) @@ -325,50 +407,9 @@ int PowerWorker::getMaxBacklightBrightness() return m_powerDBusProxy->maxBacklightBrightness(); } -int PowerWorker::converToDelayModel(int value) +void PowerWorker::setShowBatteryTimeToFull(bool value) { - if (value == 0) { - return 7; - } - - if (value <= 60) { - return 1; - } else if (value <= 300) { - return 2; - } else if (value <= 600) { - return 3; - } else if (value <= 900) { - return 4; - } else if (value <= 1800) { - return 5; - } else { - return 6; - } -} - -int PowerWorker::converToDelayDBus(int value) -{ - switch (value) { - case 1: - return 60; - case 2: - return 300; - case 3: - return 600; - case 4: - return 900; - case 5: - return 1800; - case 6: - return 3600; - case 7: - return 0; - default: - return 900; + if (m_cfgDock) { + m_cfgDock->setValue("showTimeToFull", value); } } - -void PowerWorker::setShowBatteryTimeToFull(bool value) -{ - cfgDock->setValue("showtimetofull", value); -} \ No newline at end of file diff --git a/src/plugin-power/operation/powerworker.h b/src/plugin-power/operation/powerworker.h index 7fe017acfa..6396a9615d 100644 --- a/src/plugin-power/operation/powerworker.h +++ b/src/plugin-power/operation/powerworker.h @@ -20,38 +20,38 @@ class PowerWorker : public QObject void deactive(); public Q_SLOTS: - Q_INVOKABLE void setScreenBlackLock(const bool lock); + void setScreenBlackLock(const bool lock); void setSleepLock(const bool lock); void setSleepOnLidOnPowerClosed(const bool sleep); - Q_INVOKABLE void setSleepDelayOnPower(const int delay); - Q_INVOKABLE void setSleepDelayOnBattery(const int delay); - Q_INVOKABLE void setScreenBlackDelayOnPower(const int delay); - Q_INVOKABLE void setScreenBlackDelayOnBattery(const int delay); + void setSleepDelayOnPower(const int delay); + void setSleepDelayOnBattery(const int delay); + void setScreenBlackDelayOnPower(const int delay); + void setScreenBlackDelayOnBattery(const int delay); void setSleepDelayToModelOnPower(const int delay); void setScreenBlackDelayToModelOnPower(const int delay); void setSleepDelayToModelOnBattery(const int delay); void setScreenBlackDelayToModelOnBattery(const int delay); - Q_INVOKABLE void setLockScreenDelayOnBattery(const int delay); - Q_INVOKABLE void setLockScreenDelayOnPower(const int delay); + void setLockScreenDelayOnBattery(const int delay); + void setLockScreenDelayOnPower(const int delay); void setResponseBatteryLockScreenDelay(const int delay); void setResponsePowerLockScreenDelay(const int delay); void setHighPerformanceSupported(bool state); void setBalancePerformanceSupported(bool state); //------------sp2 add----------------------- - Q_INVOKABLE void setPowerSavingModeAutoWhenQuantifyLow(bool bLowBatteryAutoIntoSaveEnergyMode); + void setPowerSavingModeAutoWhenQuantifyLow(bool bLowBatteryAutoIntoSaveEnergyMode); void setPowerSavingModeAuto(bool bAutoIntoSaveEnergyMode); void setPowerSavingModeLowerBrightnessThreshold(uint dPowerSavingModeLowerBrightnessThreshold); void setPowerSavingModeAutoBatteryPercentage(uint dPowerSavingModebatteryPentage); - Q_INVOKABLE void setLinePowerPressPowerBtnAction(int nLinePowerPressPowerBtnAction); - Q_INVOKABLE void setLinePowerLidClosedAction(int nLinePowerLidClosedAction); - Q_INVOKABLE void setBatteryPressPowerBtnAction(int nBatteryPressPowerBtnAction); - Q_INVOKABLE void setBatteryLidClosedAction(int nBatteryLidClosedAction); + void setLinePowerPressPowerBtnAction(int nLinePowerPressPowerBtnAction); + void setLinePowerLidClosedAction(int nLinePowerLidClosedAction); + void setBatteryPressPowerBtnAction(int nBatteryPressPowerBtnAction); + void setBatteryLidClosedAction(int nBatteryLidClosedAction); void setLowPowerNotifyEnable(bool bLowPowerNotifyEnable); - Q_INVOKABLE void setLowPowerNotifyThreshold(int dLowPowerNotifyThreshold); + void setLowPowerNotifyThreshold(int dLowPowerNotifyThreshold); void setLowPowerAutoSleepThreshold(int dLowPowerAutoSleepThreshold); //------------------------------------------ - Q_INVOKABLE void setPowerPlan(const QString &powerPlan); - Q_INVOKABLE void setShowBatteryTimeToFull(bool value); + void setPowerPlan(const QString &powerPlan); + void setShowBatteryTimeToFull(bool value); bool getCurCanSuspend(); bool getCurCanHibernate(); @@ -61,14 +61,15 @@ public Q_SLOTS: int getMaxBacklightBrightness(); private: - int converToDelayModel(int value); - int converToDelayDBus(int value); + void readDelayConfig(const QString &key, std::function callback); + QVariantList converToDataMap(const QStringList& conf); private: PowerModel *m_powerModel; PowerDBusProxy *m_powerDBusProxy; - Dtk::Core::DConfig *cfgDock; + Dtk::Core::DConfig *m_cfgDock; + Dtk::Core::DConfig *m_cfgPower; }; #endif // POWERWORKER_H diff --git a/src/plugin-power/operation/qrc/icons/balance_performance.dci b/src/plugin-power/operation/qrc/icons/balance_performance.dci new file mode 100644 index 0000000000000000000000000000000000000000..9219b2f8894d8ebee9e1729fa4bd1287acb945c6 GIT binary patch literal 873 zcmZ>9_GDmWWME)2GGU+uNHRloGv(zMa+<@$GSEqom01F>0AY0%4fS`c9pdi=nZMnf8y~-CKXt{K+BGTr-rT7nw7AOEeluTq9_GDmWWME)2GGU+u^fE(qGv(zM1Q{USnh9&+qt3xBvg2*gP}Vdwa(}>jG)diL0h% z8CDy7Vfk!d^8b=}a>mVrfd?)aDjfZ>S9C?b-ijZaR zit!n>R}L>#UGCB!cZ+Z9!qiqK>xjsOMg`sfve~x3*k2@fXVHJDgSYm&?iaOn%q;A# zTg@ANxkiXvkKu*(hW&Hr7kxA;mnr@e#M&2_EOudE;+2XiNtIteR@%hN^0ytcIrf3^ z*sG^k1sOgR0Xcd#s!yI?eQ@=WFvAR~WVxhI9I}5uX-(}puJrH$?{h=H1o>~f<8~aK z#2u=*gzFO1IRkO0u8DHWJ1P~QWG~sS?9(zK%7fcNtrbZ5zTi^4Iw9ztqE5>d=cp?! z6S_Q(+B;Yuw=dk7p6LAh+PrVuT;JAL|5Cp8rGL%K^(+6nix||Y-!%T0aJk|{{dqP9 E04^fwqW}N^ literal 0 HcmV?d00001 diff --git a/src/plugin-power/operation/qrc/icons/general.dci b/src/plugin-power/operation/qrc/icons/general.dci new file mode 100644 index 0000000000000000000000000000000000000000..38189e37c04726b7f35290253459c645352f5936 GIT binary patch literal 3045 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 literal 0 HcmV?d00001 diff --git a/src/plugin-power/operation/qrc/icons/high_performance.dci b/src/plugin-power/operation/qrc/icons/high_performance.dci new file mode 100644 index 0000000000000000000000000000000000000000..c9243d24b46132e2975d4b705cae2d8f5d2f4e78 GIT binary patch literal 1079 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 M&3VpU#Q*^R0j!!!iU0rr literal 0 HcmV?d00001 diff --git a/src/plugin-power/operation/qrc/icons/plugged_in.dci b/src/plugin-power/operation/qrc/icons/plugged_in.dci new file mode 100644 index 0000000000000000000000000000000000000000..02e896763949e13d0e16b3ec9d0c83e40ca5ee7b GIT binary patch literal 3283 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 literal 0 HcmV?d00001 diff --git a/src/plugin-power/operation/qrc/icons/power_performance.dci b/src/plugin-power/operation/qrc/icons/power_performance.dci new file mode 100644 index 0000000000000000000000000000000000000000..7428a93f3bca2c8892ba227da4309b9f15fe726b GIT binary patch literal 1001 zcmZ>9_GDmWWME)2GGU+u%w&e>X3EPi%1zACOGzxsCda(hP)$t6h<*Wfe7lkoXqr$5`ANRh}keNgGEU+9;7^u38INoFN;CVVWiN@=YYup z1cE%>+>Qa+;jT^rVF4CCyMSzc_XC0g@0A2RK3%Wt;9$wUZC1Mc|7FJ$tObmop9Jg< zJ(+FL!ecDXxX)wW83V~34F>)k6IvJy4@^?Iy=CkA+}r23<$k_X9{73wiL1vh$GiNO z-O;aT;dYj z=6yEv=_QB1|LZs}qO?0rU`Bp^)-lnuQ>fKxa^G(?j@QbrM$6^mC8hx;m(F3jd|gA41Em z)k>18rGFi%ir`rI^+CMFzFV;;EYH3?{(s6JqsKDL$F@J~+0HBVf3~r_VOm|vnHt|v V*+7Awc&_4W@;*`gKi_LI006xR^#=d| literal 0 HcmV?d00001 diff --git a/src/plugin-power/operation/qrc/power.qrc b/src/plugin-power/operation/qrc/power.qrc index ccd9f64ee2..7a8bfe729f 100644 --- a/src/plugin-power/operation/qrc/power.qrc +++ b/src/plugin-power/operation/qrc/power.qrc @@ -6,4 +6,13 @@ actions/dcc_battery_32px.svg actions/dcc_using_electric_32px.svg + + icons/balanced.dci + icons/balance_performance.dci + icons/high_performance.dci + icons/power_performance.dci + icons/general.dci + icons/on_battery.dci + icons/plugged_in.dci + diff --git a/src/plugin-power/operation/utils.h b/src/plugin-power/operation/utils.h index 4331a70492..5376cfc551 100644 --- a/src/plugin-power/operation/utils.h +++ b/src/plugin-power/operation/utils.h @@ -7,30 +7,11 @@ #include #include -#include -#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include DCORE_USE_NAMESPACE -inline const QMargins ZeroMargins(0, 0, 0, 0); - -inline constexpr int ComboxWidgetHeight = 48; -inline constexpr int SwitchWidgetHeight = 36; -inline constexpr int ComboxTitleWidth = 110; - -inline constexpr qint32 ActionIconSize=30;//大图标角标大小 -inline constexpr qint32 ActionListSize=26;//list图标角标大小 - template T valueByQSettings(const QStringList& configFiles, const QString& group, @@ -53,28 +34,6 @@ T valueByQSettings(const QStringList& configFiles, return failback.value(); } -inline QPixmap loadPixmap(const QString &path) -{ - qreal ratio = 1.0; - QPixmap pixmap; - - const qreal devicePixelRatio = qApp->devicePixelRatio(); - - if (!qFuzzyCompare(ratio, devicePixelRatio)) { - QImageReader reader; - reader.setFileName(qt_findAtNxFile(path, devicePixelRatio, &ratio)); - if (reader.canRead()) { - reader.setScaledSize(reader.size() * (devicePixelRatio / ratio)); - pixmap = QPixmap::fromImage(reader.read()); - pixmap.setDevicePixelRatio(devicePixelRatio); - } - } else { - pixmap.load(path); - } - - return pixmap; -} - inline const static Dtk::Core::DSysInfo::UosType UosType = Dtk::Core::DSysInfo::uosType(); inline const static bool IsServerSystem = (Dtk::Core::DSysInfo::UosServer == UosType); // 是否是服务器版 diff --git a/src/plugin-power/qml/BatteryPage.qml b/src/plugin-power/qml/BatteryPage.qml index 2b56f8237f..71e74a99a7 100644 --- a/src/plugin-power/qml/BatteryPage.qml +++ b/src/plugin-power/qml/BatteryPage.qml @@ -10,9 +10,9 @@ import org.deepin.dtk 1.0 as D DccObject { DccObject { - name: "screenAndStandbyOnBattery" - parentName: "powerManage/battery" - displayName: qsTr("屏幕和待机") + name: "screenAndSuspendTitle" + parentName: "power/onBattery" + displayName: qsTr("Screen and Suspend") weight: 10 hasBackground: false pageType: DccObject.Item @@ -26,16 +26,16 @@ DccObject { } DccObject { - name: "turnOffMonitorGroupOnBattery" - parentName: "powerManage/battery" + name: "turnOffTheMonitorAfterGroup" + parentName: "power/onBattery" weight: 100 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "turnOffMonitorOnBattery" - parentName: "powerManage/battery/turnOffMonitorGroupOnBattery" - displayName: qsTr("关闭显示器") + name: "turnOffTheMonitorAfter" + parentName: "power/onBattery/turnOffTheMonitorAfterGroup" + displayName: qsTr("Turn off the monitor after") weight: 1 pageType: DccObject.Item page: ColumnLayout { @@ -47,31 +47,16 @@ DccObject { text: dccObj.displayName Layout.leftMargin: 10 } - D.TipsSlider { - readonly property var tips: [("1m"), ("5m"), ("10m"), ("15h"), ("30h"), ("1h"), ("从不")] + + CustomTipsSlider { + dataMap: dccData.model.batteryScreenBlackDelayModel Layout.preferredHeight: 80 Layout.alignment: Qt.AlignCenter Layout.margins: 10 Layout.fillWidth: true - slider.handleType: Slider.HandleType.ArrowBottom - slider.from: 0 - slider.to: ticks.length - 1 - slider.live: true - slider.stepSize: 1 - slider.snapMode: Slider.SnapAlways - slider.value: dccData.model.screenBlackDelayOnBattery - ticks: [ - D.SliderTipItem { text: parent.parent.tips[0]; highlight: parent.parent.slider.value === 0 }, - D.SliderTipItem { text: parent.parent.tips[1]; highlight: parent.parent.slider.value === 1 }, - D.SliderTipItem { text: parent.parent.tips[2]; highlight: parent.parent.slider.value === 2 }, - D.SliderTipItem { text: parent.parent.tips[3]; highlight: parent.parent.slider.value === 3 }, - D.SliderTipItem { text: parent.parent.tips[4]; highlight: parent.parent.slider.value === 4 }, - D.SliderTipItem { text: parent.parent.tips[5]; highlight: parent.parent.slider.value === 5 }, - D.SliderTipItem { text: parent.parent.tips[6]; highlight: parent.parent.slider.value === 6 } - ] - + slider.value: dccData.indexByValueOnMap(dataMap, dccData.model.screenBlackDelayOnBattery) slider.onValueChanged: { - dccData.worker.setScreenBlackDelayOnBattery(slider.value) + dccData.worker.setScreenBlackDelayOnBattery(dataMap[slider.value].value) } } } @@ -79,16 +64,16 @@ DccObject { } DccObject { - name: "autoLockGroupOnBattery" - parentName: "powerManage/battery" + name: "lockScreenAfterGroup" + parentName: "power/onBattery" weight: 200 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "autoLockOnBattery" - parentName: "powerManage/battery/autoLockGroupOnBattery" - displayName: qsTr("自动锁屏") + name: "lockScreenAfter" + parentName: "power/onBattery/lockScreenAfterGroup" + displayName: qsTr("Lock screen after") weight: 1 pageType: DccObject.Item page: ColumnLayout { @@ -100,31 +85,15 @@ DccObject { text: dccObj.displayName Layout.leftMargin: 10 } - D.TipsSlider { - readonly property var tips: [("10m"), ("15m"), ("30m"), ("1h"), ("2h"), ("3h"), ("从不")] + CustomTipsSlider { + dataMap: dccData.model.batteryLockDelayModel Layout.preferredHeight: 80 Layout.alignment: Qt.AlignCenter Layout.margins: 10 Layout.fillWidth: true - slider.handleType: Slider.HandleType.ArrowBottom - slider.from: 0 - slider.to: ticks.length - 1 - slider.live: true - slider.stepSize: 1 - slider.snapMode: Slider.SnapAlways - slider.value: dccData.model.batteryLockScreenDelay - ticks: [ - D.SliderTipItem { text: parent.parent.tips[0]; highlight: parent.parent.slider.value === 0 }, - D.SliderTipItem { text: parent.parent.tips[1]; highlight: parent.parent.slider.value === 1 }, - D.SliderTipItem { text: parent.parent.tips[2]; highlight: parent.parent.slider.value === 2 }, - D.SliderTipItem { text: parent.parent.tips[3]; highlight: parent.parent.slider.value === 3 }, - D.SliderTipItem { text: parent.parent.tips[4]; highlight: parent.parent.slider.value === 4 }, - D.SliderTipItem { text: parent.parent.tips[5]; highlight: parent.parent.slider.value === 5 }, - D.SliderTipItem { text: parent.parent.tips[6]; highlight: parent.parent.slider.value === 6 } - ] - + slider.value: dccData.indexByValueOnMap(dataMap, dccData.model.batteryLockScreenDelay) slider.onValueChanged: { - dccData.worker.setLockScreenDelayOnBattery(slider.value) + dccData.worker.setLockScreenDelayOnBattery(dataMap[slider.value].value) } } } @@ -132,16 +101,16 @@ DccObject { } DccObject { - name: "enterStandbyGroupOnBattry" - parentName: "powerManage/battery" + name: "computerSuspendsAfterGroup" + parentName: "power/onBattery" weight: 300 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "enterStandbyOnBattery" - parentName: "powerManage/battery/enterStandbyGroupOnBattry" - displayName: qsTr("进入待机") + name: "computerSuspendsAfter" + parentName: "power/onBattery/computerSuspendsAfterGroup" + displayName: qsTr("Computer suspends after") weight: 1 pageType: DccObject.Item page: ColumnLayout { @@ -153,31 +122,15 @@ DccObject { text: dccObj.displayName Layout.leftMargin: 10 } - D.TipsSlider { - readonly property var tips: [("10m"), ("15m"), ("30m"), ("1h"), ("2h"), ("3h"), ("从不")] + CustomTipsSlider { + dataMap: dccData.model.batterySleepDelayModel Layout.preferredHeight: 80 Layout.alignment: Qt.AlignCenter Layout.margins: 10 Layout.fillWidth: true - slider.handleType: Slider.HandleType.ArrowBottom - slider.from: 0 - slider.to: ticks.length - 1 - slider.live: true - slider.stepSize: 1 - slider.snapMode: Slider.SnapAlways - slider.value: dccData.model.sleepDelayOnBattery - ticks: [ - D.SliderTipItem { text: parent.parent.tips[0]; highlight: parent.parent.slider.value === 0 }, - D.SliderTipItem { text: parent.parent.tips[1]; highlight: parent.parent.slider.value === 1 }, - D.SliderTipItem { text: parent.parent.tips[2]; highlight: parent.parent.slider.value === 2 }, - D.SliderTipItem { text: parent.parent.tips[3]; highlight: parent.parent.slider.value === 3 }, - D.SliderTipItem { text: parent.parent.tips[4]; highlight: parent.parent.slider.value === 4 }, - D.SliderTipItem { text: parent.parent.tips[5]; highlight: parent.parent.slider.value === 5 }, - D.SliderTipItem { text: parent.parent.tips[6]; highlight: parent.parent.slider.value === 6 } - ] - + slider.value: dccData.indexByValueOnMap(dataMap, dccData.model.sleepDelayOnBattery) slider.onValueChanged: { - dccData.worker.setSleepDelayOnBattery(slider.value) + dccData.worker.setSleepDelayOnBattery(dataMap[slider.value].value) } } } @@ -186,20 +139,22 @@ DccObject { DccObject { name: "powerButtonGroup" - parentName: "powerManage/battery" + parentName: "power/onBattery" weight: 400 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "closeTheLid" - parentName: "powerManage/battery/powerButtonGroup" - displayName: qsTr("合盖时") + name: "whenTheLidIsClosed" + parentName: "power/onBattery/powerButtonGroup" + displayName: qsTr("When the lid is closed") + visible: dccData.model.lidPresent weight: 1 pageType: DccObject.Editor page: CustomComboBox { textRole: "text" enableRole: "enable" + visibleRole: "visible" width: 100 model: dccData.batteryLidModel currentIndex: model.indexOfKey(dccData.model.batteryLidClosedAction) @@ -210,14 +165,15 @@ DccObject { } } DccObject { - name: "pressPowerButton" - parentName: "powerManage/battery/powerButtonGroup" - displayName: qsTr("按下电源键时") + name: "whenThePowerButtonIsPressed" + parentName: "power/onBattery/powerButtonGroup" + displayName: qsTr("When the power button is pressed") weight: 2 pageType: DccObject.Editor page: CustomComboBox { textRole: "text" enableRole: "enable" + visibleRole: "visible" width: 100 model: dccData.batteryPressModel currentIndex: model.indexOfKey(dccData.model.batteryPressPowerBtnAction) @@ -230,9 +186,9 @@ DccObject { } DccObject { - name: "lowPowerTitle" - parentName: "powerManage/battery" - displayName: qsTr("低电量管理") + name: "lowBatteryTitle" + parentName: "power/onBattery" + displayName: qsTr("Low Battery") weight: 500 hasBackground: false pageType: DccObject.Item @@ -246,80 +202,87 @@ DccObject { } DccObject { - name: "lowPowerManageGroup" - parentName: "powerManage/battery" + name: "lowBatteryNotificationGroup" + parentName: "power/onBattery" weight: 600 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "lowPowerNotification" - parentName: "powerManage/battery/lowPowerManageGroup" - displayName: qsTr("低电量通知") + name: "lowBatteryNotification" + parentName: "power/onBattery/lowBatteryNotificationGroup" + displayName: qsTr("Low battery notification") weight: 1 pageType: DccObject.Editor page: D.ComboBox { width: 100 textRole: "text" - valueRole: "value" flat: true + currentIndex: dccData.indexByValueOnModel(model, dccData.model.lowPowerNotifyThreshold) model: ListModel { - ListElement { text: "10%"; value: 10} - ListElement { text: "15%"; value: 15} - ListElement { text: "20%"; value: 20} - ListElement { text: "25%"; value: 25} - } - onCurrentValueChanged: { - dccData.worker.setLowPowerNotifyThreshold(currentValue) + ListElement { text: qsTr("Disbale"); value: 10 } + ListElement { text: "10%"; value: 10 } + ListElement { text: "15%"; value: 15 } + ListElement { text: "20%"; value: 20 } + ListElement { text: "25%"; value: 25 } } - Component.onCompleted: { - currentIndex = indexOfValue(dccData.model.lowPowerNotifyThreshold) - // currentIndex = Qt.binding(function() { - // return dccData.model.lowPowerNotifyThreshold - // }) + onCurrentIndexChanged: { + var selectedValue = model.get(currentIndex).value; + dccData.worker.setLowPowerNotifyThreshold(selectedValue) } } } } DccObject { - name: "lowPowerManageGroup2" - parentName: "powerManage/battery" + name: "lowBatteryOperatorGroup" + parentName: "power/onBattery" weight: 700 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "lowPowerOperator" - parentName: "powerManage/battery/lowPowerManageGroup2" - displayName: qsTr("低电量操作") + name: "lowBatteryOperator" + parentName: "power/onBattery/lowBatteryOperatorGroup" + displayName: qsTr("Low battery operation") weight: 1 pageType: DccObject.Editor page: D.ComboBox { width: 100 - model: [ "自动休眠", "待机", "休眠", "关闭显示器", "进入关机界面", "无任何操作" ] + model: [ "Auto sleep", qsTr("Auto suspend")] flat: true } } DccObject { name: "lowBatteryThreshold" - parentName: "powerManage/battery/lowPowerManageGroup2" - displayName: qsTr("低电量阈值") + parentName: "power/onBattery/lowBatteryOperatorGroup" + displayName: qsTr("Low battery threshold") weight: 2 pageType: DccObject.Editor page: D.ComboBox { + textRole: "text" width: 100 - model: [ "5%", "待机", "休眠", "关闭显示器", "进入关机界面", "无任何操作" ] + model: ListModel { + ListElement { text: "1%"; value: 1 } + ListElement { text: "2%"; value: 2 } + ListElement { text: "3%"; value: 3 } + ListElement { text: "4%"; value: 4 } + ListElement { text: "5%"; value: 5 } + ListElement { text: "6%"; value: 6 } + ListElement { text: "7%"; value: 7 } + ListElement { text: "8%"; value: 8 } + ListElement { text: "9%"; value: 9 } + } flat: true } } } DccObject { - name: "batteryManagerTitle" - parentName: "powerManage/battery" - displayName: qsTr("电池管理") + name: "batteryManagementTitle" + parentName: "power/onBattery" + displayName: qsTr("Battery Management") weight: 800 hasBackground: false pageType: DccObject.Item @@ -333,16 +296,16 @@ DccObject { } DccObject { - name: "batteryManageGroup" - parentName: "powerManage/battery" + name: "batteryManagementGroup" + parentName: "power/onBattery" weight: 900 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "displayTime" - parentName: "powerManage/battery/batteryManageGroup" - displayName: qsTr("显示剩余使用时间及剩余充电时间") + name: "displayRemainingUsingAndChargingTime" + parentName: "power/onBattery/batteryManagementGroup" + displayName: qsTr("Display remaining using and charging time") weight: 1 pageType: DccObject.Editor page: D.Switch { @@ -354,8 +317,8 @@ DccObject { } DccObject { name: "maximumCapacity" - parentName: "powerManage/battery/batteryManageGroup" - displayName: qsTr("最大容量") + parentName: "power/onBattery/batteryManagementGroup" + displayName: qsTr("Maximum capacity") weight: 2 pageType: DccObject.Editor page: Label { @@ -365,8 +328,8 @@ DccObject { DccObject { name: "optimizeChargingTime" - parentName: "powerManage/battery/batteryManageGroup" - displayName: qsTr("优化电池充电") + parentName: "power/onBattery/batteryManagementGroup" + displayName: qsTr("Optimize battery charging") weight: 3 pageType: DccObject.Editor page: D.Switch { @@ -375,14 +338,14 @@ DccObject { } DccObject { name: "maximumChargingCapacity" - parentName: "powerManage/battery/batteryManageGroup" - displayName: qsTr("最大充电量") - description: "不常使用电池时, 可以限制电池最大充电量, 减缓电池老化" + parentName: "power/onBattery/batteryManagementGroup" + displayName: qsTr("Maximum charging capacity") + description: qsTr("When the battery is not frequently used, the maximum charging capacity of the battery can be limited to slow down battery aging") weight: 4 pageType: DccObject.Editor page: D.ComboBox { width: 100 - model: [ "80%", "待机", "休眠", "关闭显示器", "进入关机界面", "无任何操作" ] + model: [ "90%", "85%", "80%" ] flat: true } } diff --git a/src/plugin-power/qml/CustomComboBox.qml b/src/plugin-power/qml/CustomComboBox.qml index e36a72243d..389ad611a3 100644 --- a/src/plugin-power/qml/CustomComboBox.qml +++ b/src/plugin-power/qml/CustomComboBox.qml @@ -6,7 +6,6 @@ import org.deepin.dtk.style 1.0 as DS D.ComboBox { id: control - model: powerOperatorModel flat: true property string visibleRole property string enableRole @@ -21,7 +20,7 @@ D.ComboBox { hoverEnabled: control.hoverEnabled autoExclusive: true checked: control.currentIndex === index - enabled: (control.visibleRole && model[control.enableRole] !== undefined) ? model[control.enableRole] : true + enabled: (control.enableRole && model[control.enableRole] !== undefined) ? model[control.enableRole] : true visible: (control.visibleRole && model[control.visibleRole] !== undefined) ? model[control.visibleRole] : true implicitHeight: visible ? DS.Style.control.implicitHeight(menuItem) : 0 } diff --git a/src/plugin-power/qml/CustomTipsSlider.qml b/src/plugin-power/qml/CustomTipsSlider.qml new file mode 100644 index 0000000000..cc55381509 --- /dev/null +++ b/src/plugin-power/qml/CustomTipsSlider.qml @@ -0,0 +1,27 @@ +// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later + +import QtQuick 2.15 + +import org.deepin.dtk 1.0 as D +import org.deepin.dtk.style 1.0 as DS + +D.TipsSlider { + id: slider + property var dataMap + slider.handleType: D.Slider.HandleType.ArrowBottom + slider.from: 0 + slider.to: dataMap.length - 1 + slider.live: true + slider.stepSize: 1 + slider.snapMode: D.Slider.SnapAlways + Repeater { + model: slider.dataMap.length + D.SliderTipItem { + // TODO need to modify + parent: slider.children[1] + text: slider.dataMap[index].text + highlight: slider.slider.value === index + } + } +} diff --git a/src/plugin-power/qml/CommonPage.qml b/src/plugin-power/qml/GeneralPage.qml similarity index 72% rename from src/plugin-power/qml/CommonPage.qml rename to src/plugin-power/qml/GeneralPage.qml index 175c9f3319..ac72bd94b1 100644 --- a/src/plugin-power/qml/CommonPage.qml +++ b/src/plugin-power/qml/GeneralPage.qml @@ -10,9 +10,9 @@ import org.deepin.dtk 1.0 as D DccObject { DccObject { - name: "powerMode" - parentName: "powerManage/common" - displayName: qsTr("性能模式") + name: "powerPlansTitle" + parentName: "power/general" + displayName: qsTr("Power Plans") weight: 10 hasBackground: false pageType: DccObject.Item @@ -26,18 +26,18 @@ DccObject { } DccObject { - name: "powerModeGroup" - parentName: "powerManage/common" + name: "powerPlans" + parentName: "power/general" weight: 100 pageType: DccObject.Item - page: PowerModeListview { + page: PowerPlansListview { } } DccObject { - name: "powersaverSetting" - parentName: "powerManage/common" - displayName: qsTr("节能设置") + name: "powerSavingSettingsTitle" + parentName: "power/general" + displayName: qsTr("Power Saving Settings") weight: 200 hasBackground: false pageType: DccObject.Item @@ -51,20 +51,18 @@ DccObject { } DccObject { - name: "LowPowerGroup" - parentName: "powerManage/common" + name: "powerSavingSettingsGroup" + parentName: "power/general" weight: 300 pageType: DccObject.Item page: DccGroupView {} - // TODO 需要判断电池 - DccObject { - name: "lowPowerAutoSaveMode" - parentName: "powerManage/common/LowPowerGroup" - displayName: qsTr("低电量时自动开启节能模式") + name: "autoPowerSavingOnLowBattery" + parentName: "power/general/powerSavingSettingsGroup" + displayName: qsTr("Auto power saving on low battery") weight: 1 - visible: /*dccData.model.haveBettary*/ true + visible: dccData.model.haveBettary pageType: DccObject.Editor page: D.Switch { checked: dccData.model.powerSavingModeAutoWhenQuantifyLow @@ -76,9 +74,10 @@ DccObject { DccObject { name: "lowPowerThreshold" - parentName: "powerManage/common/LowPowerGroup" - displayName: qsTr("低电量阈值") + parentName: "power/general/powerSavingSettingsGroup" + displayName: qsTr("Low battery threshold") weight: 2 + visible: dccData.model.haveBettary pageType: DccObject.Editor page: D.ComboBox { width: 100 @@ -95,16 +94,17 @@ DccObject { DccObject { name: "savePowerGroup" - parentName: "powerManage/common" + parentName: "power/general" weight: 400 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "batteryAutoSaveMode" - parentName: "powerManage/common/savePowerGroup" - displayName: qsTr("使用电池时自动开启节能模式") + name: "autoPowerSavingOnBattery" + parentName: "power/general/savePowerGroup" + displayName: qsTr("Auto power saving on battery") weight: 1 + visible: dccData.model.haveBettary pageType: DccObject.Editor page: D.Switch { checked: dccData.model.autoPowerSaveMode @@ -115,9 +115,9 @@ DccObject { } DccObject { - name: "saveModeReduceBrightness" - parentName: "powerManage/common/savePowerGroup" - displayName: qsTr("节能模式时降低屏幕亮度") + name: "decreaseBrightness" + parentName: "power/general/savePowerGroup" + displayName: qsTr("Auto reduce screen brightness during power saving") weight: 2 pageType: DccObject.Item page: ColumnLayout { @@ -144,14 +144,10 @@ DccObject { slider.snapMode: Slider.SnapAlways slider.value: dccData.model.powerSavingModeLowerBrightnessThreshold ticks: [ - D.SliderTipItem { text: scrollSlider.tips[0]; highlight: scrollSlider.slider.value === 10 - }, - D.SliderTipItem { text: scrollSlider.tips[1]; highlight: scrollSlider.slider.value === 20 - }, - D.SliderTipItem { text: scrollSlider.tips[2]; highlight: scrollSlider.slider.value === 30 - }, - D.SliderTipItem { text: scrollSlider.tips[3]; highlight: scrollSlider.slider.value === 40 - } + D.SliderTipItem { text: scrollSlider.tips[0]; highlight: scrollSlider.slider.value === 10 }, + D.SliderTipItem { text: scrollSlider.tips[1]; highlight: scrollSlider.slider.value === 20 }, + D.SliderTipItem { text: scrollSlider.tips[2]; highlight: scrollSlider.slider.value === 30 }, + D.SliderTipItem { text: scrollSlider.tips[3]; highlight: scrollSlider.slider.value === 40 } ] slider.onValueChanged: { @@ -163,9 +159,9 @@ DccObject { } DccObject { - name: "wakeupSetting" - parentName: "powerManage/common" - displayName: qsTr("唤醒设置") + name: "wakeupSettingsTitle" + parentName: "power/general" + displayName: qsTr("Wakeup Settings") weight: 500 hasBackground: false pageType: DccObject.Item @@ -179,16 +175,16 @@ DccObject { } DccObject { - name: "wakeUpGroup" - parentName: "powerManage/common" + name: "wakeupSettingsGroup" + parentName: "power/general" weight: 600 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "StandbyRecNeedPwd" - parentName: "powerManage/common/wakeUpGroup" - displayName: qsTr("待机恢复时需要密码") + name: "passwordIsRequiredToWakeUpTheComputer" + parentName: "power/general/wakeupSettingsGroup" + displayName: qsTr("Password is required to wake up the computer") weight: 1 visible: dccData.model.canSuspend && dccData.model.isSuspend pageType: DccObject.Editor @@ -202,9 +198,9 @@ DccObject { } DccObject { - name: "wakeupDisplyNeedPwd" - parentName: "powerManage/common/wakeUpGroup" - displayName: qsTr("唤醒显示器时需要密码") + name: "passwordIsRequiredToWakeUpTheMonitor" + parentName: "power/general/wakeupSettingsGroup" + displayName: qsTr("Password is required to wake up the monitor") weight: 2 pageType: DccObject.Editor page: D.Switch { @@ -218,9 +214,9 @@ DccObject { } DccObject { - name: "powerSetting" - parentName: "powerManage/common" - displayName: qsTr("关机设置") + name: "shutdownSettingTitle" + parentName: "power/general" + displayName: qsTr("Shutdown Settings") weight: 700 hasBackground: false pageType: DccObject.Item @@ -234,16 +230,16 @@ DccObject { } DccObject { - name: "powerGroup" - parentName: "powerManage/common" + name: "shutdownGroup" + parentName: "power/general" weight: 800 pageType: DccObject.Item page: DccGroupView {} DccObject { name: "timedPoweroff" - parentName: "powerManage/common/powerGroup" - displayName: qsTr("定时关机") + parentName: "power/general/shutdownGroup" + displayName: qsTr("Scheduled Shutdown") weight: 1 pageType: DccObject.Editor page: D.Switch { @@ -252,66 +248,41 @@ DccObject { } DccObject { - name: "shutdownTime" - parentName: "powerManage/common/powerGroup" + name: "poweroffTime" + parentName: "power/general/shutdownGroup" visible: timedShutdownSwitch.checked - displayName: qsTr("时间") + displayName: qsTr("Time") weight: 2 pageType: DccObject.Editor - page: Row { - spacing: 10 - D.SpinBox { - width: 60 - from: 0 - to: 23 - value: 8 - font.family: "DigifaceWide" - font.pointSize: 12 - textFromValue: function (value, locale) { - return value < 10 ? "0" + Number(value) : value - } - } - Label { - text: ":" - font.pointSize: 14 - verticalAlignment: Text.AlignVCenter - } - D.SpinBox { - width: 60 - value: 24 - from: 0 - to: 59 - font.family: "DigifaceWide" - font.pointSize: 12 - textFromValue: function (value, locale) { - return value < 10 ? "0" + Number(value) : value - } + page: RowLayout { + DccTimeRange { + Layout.preferredWidth: 100 } } } DccObject { name: "repeatDays" - parentName: "powerManage/common/powerGroup" + parentName: "power/general/shutdownGroup" visible: timedShutdownSwitch.checked - displayName: qsTr("重复") + displayName: qsTr("Repeat") weight: 3 pageType: DccObject.Editor page: D.ComboBox { width: 100 - model: [ "一次", "每天", "工作日", "自定义" ] + model: [ qsTr("Once"), qsTr("Every day"), qsTr("Working days"), qsTr("Custom Time") ] flat: true } } DccObject { name: "repeatDaysEdit" - parentName: "powerManage/common/powerGroup" + parentName: "power/general/shutdownGroup" visible: timedShutdownSwitch.checked weight: 4 pageType: DccObject.Editor page: RowLayout { Label { - text: "星期一、星期二、星期三、星期四" + text: "Monday, Tuesday, Wednesday, Thursday" } D.ToolButton { icon.name: "action_edit" @@ -377,13 +348,13 @@ DccObject { Layout.alignment: Qt.AlignHCenter spacing: 10 D.Button { - text: "取消" + text: qsTr("Cancel") onClicked: { selectDayDialog.close() } } D.Button { - text: "保存" + text: qsTr("Save") onClicked: { selectDayDialog.close() } diff --git a/src/plugin-power/qml/PowerPage.qml b/src/plugin-power/qml/PowerPage.qml index b4fc5831e1..9f2303e6bd 100644 --- a/src/plugin-power/qml/PowerPage.qml +++ b/src/plugin-power/qml/PowerPage.qml @@ -10,9 +10,9 @@ import org.deepin.dtk 1.0 as D DccObject { DccObject { - name: "screenAndStandbyMode" - parentName: "powerManage/power" - displayName: qsTr("屏幕和待机") + name: "screenAndSuspendTitle" + parentName: "power/onPower" + displayName: qsTr("Screen and Suspend") weight: 10 hasBackground: false pageType: DccObject.Item @@ -26,16 +26,16 @@ DccObject { } DccObject { - name: "turnOffMonitorGroup" - parentName: "powerManage/power" + name: "turnOffTheMonitorAfterGroup" + parentName: "power/onPower" weight: 100 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "turnOffMonitor" - parentName: "powerManage/power/turnOffMonitorGroup" - displayName: qsTr("关闭显示器") + name: "turnOffTheMonitorAfter" + parentName: "power/onPower/turnOffTheMonitorAfterGroup" + displayName: qsTr("Turn off the monitor after") weight: 1 pageType: DccObject.Item page: ColumnLayout { @@ -47,31 +47,16 @@ DccObject { text: dccObj.displayName Layout.leftMargin: 10 } - D.TipsSlider { - readonly property var tips: [("1m"), ("5m"), ("10m"), ("15h"), ("30h"), ("1h"), ("从不")] + + CustomTipsSlider { + dataMap: dccData.model.linePowerScreenBlackDelayModel Layout.preferredHeight: 80 Layout.alignment: Qt.AlignCenter Layout.margins: 10 Layout.fillWidth: true - slider.handleType: Slider.HandleType.ArrowBottom - slider.from: 1 - slider.to: ticks.length - slider.live: true - slider.stepSize: 1 - slider.snapMode: Slider.SnapAlways - slider.value: dccData.model.screenBlackDelayOnPower - ticks: [ - D.SliderTipItem { text: parent.parent.tips[0]; highlight: parent.parent.slider.value === 1 }, - D.SliderTipItem { text: parent.parent.tips[1]; highlight: parent.parent.slider.value === 2 }, - D.SliderTipItem { text: parent.parent.tips[2]; highlight: parent.parent.slider.value === 3 }, - D.SliderTipItem { text: parent.parent.tips[3]; highlight: parent.parent.slider.value === 4 }, - D.SliderTipItem { text: parent.parent.tips[4]; highlight: parent.parent.slider.value === 5 }, - D.SliderTipItem { text: parent.parent.tips[5]; highlight: parent.parent.slider.value === 6 }, - D.SliderTipItem { text: parent.parent.tips[6]; highlight: parent.parent.slider.value === 7 } - ] - + slider.value: dccData.indexByValueOnMap(dataMap, dccData.model.screenBlackDelayOnPower) slider.onValueChanged: { - dccData.worker.setScreenBlackDelayOnPower(slider.value) + dccData.worker.setScreenBlackDelayOnPower(dataMap[slider.value].value) } } } @@ -79,16 +64,16 @@ DccObject { } DccObject { - name: "enterStandbyGroup" - parentName: "powerManage/power" + name: "computerSuspendsAfterGroup" + parentName: "power/onPower" weight: 200 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "saveModeReduceBrightness" - parentName: "powerManage/power/enterStandbyGroup" - displayName: qsTr("进入待机") + name: "computerSuspendsAfter" + parentName: "power/onPower/computerSuspendsAfterGroup" + displayName: qsTr("Computer suspends after") weight: 1 pageType: DccObject.Item page: ColumnLayout { @@ -100,31 +85,16 @@ DccObject { text: dccObj.displayName Layout.leftMargin: 10 } - D.TipsSlider { - readonly property var tips: [("10m"), ("15m"), ("30m"), ("1h"), ("2h"), ("3h"), ("从不")] + + CustomTipsSlider { + dataMap: dccData.model.linePowerSleepDelayModel Layout.preferredHeight: 80 Layout.alignment: Qt.AlignCenter Layout.margins: 10 Layout.fillWidth: true - slider.handleType: Slider.HandleType.ArrowBottom - slider.from: 1 - slider.to: ticks.length - slider.live: true - slider.stepSize: 1 - slider.snapMode: Slider.SnapAlways - slider.value: dccData.model.sleepDelayOnPower - ticks: [ - D.SliderTipItem { text: parent.parent.tips[0]; highlight: parent.parent.slider.value === 1 }, - D.SliderTipItem { text: parent.parent.tips[1]; highlight: parent.parent.slider.value === 2 }, - D.SliderTipItem { text: parent.parent.tips[2]; highlight: parent.parent.slider.value === 3 }, - D.SliderTipItem { text: parent.parent.tips[3]; highlight: parent.parent.slider.value === 4 }, - D.SliderTipItem { text: parent.parent.tips[4]; highlight: parent.parent.slider.value === 5 }, - D.SliderTipItem { text: parent.parent.tips[5]; highlight: parent.parent.slider.value === 6 }, - D.SliderTipItem { text: parent.parent.tips[6]; highlight: parent.parent.slider.value === 7 } - ] - + slider.value: dccData.indexByValueOnMap(dataMap, dccData.model.sleepDelayOnPower) slider.onValueChanged: { - dccData.worker.setSleepDelayOnPower(slider.value) + dccData.worker.setSleepDelayOnPower(dataMap[slider.value].value) } } } @@ -132,16 +102,16 @@ DccObject { } DccObject { - name: "autoLockGroup" - parentName: "powerManage/power" + name: "lockScreenAfterGroup" + parentName: "power/onPower" weight: 300 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "saveModeReduceBrightness" - parentName: "powerManage/power/autoLockGroup" - displayName: qsTr("自动锁屏") + name: "lockScreenAfter" + parentName: "power/onPower/lockScreenAfterGroup" + displayName: qsTr("Lock screen after") weight: 1 pageType: DccObject.Item page: ColumnLayout { @@ -153,31 +123,15 @@ DccObject { text: dccObj.displayName Layout.leftMargin: 10 } - D.TipsSlider { - readonly property var tips: [("10m"), ("15m"), ("30m"), ("1h"), ("2h"), ("3h"), ("从不")] + CustomTipsSlider { + dataMap: dccData.model.linePowerScreenBlackDelayModel Layout.preferredHeight: 80 Layout.alignment: Qt.AlignCenter Layout.margins: 10 Layout.fillWidth: true - slider.handleType: Slider.HandleType.ArrowBottom - slider.from: 1 - slider.to: ticks.length - slider.live: true - slider.stepSize: 1 - slider.snapMode: Slider.SnapAlways - slider.value: dccData.model.powerLockScreenDelay - ticks: [ - D.SliderTipItem { text: parent.parent.tips[0]; highlight: parent.parent.slider.value === 1 }, - D.SliderTipItem { text: parent.parent.tips[1]; highlight: parent.parent.slider.value === 2 }, - D.SliderTipItem { text: parent.parent.tips[2]; highlight: parent.parent.slider.value === 3 }, - D.SliderTipItem { text: parent.parent.tips[3]; highlight: parent.parent.slider.value === 4 }, - D.SliderTipItem { text: parent.parent.tips[4]; highlight: parent.parent.slider.value === 5 }, - D.SliderTipItem { text: parent.parent.tips[5]; highlight: parent.parent.slider.value === 6 }, - D.SliderTipItem { text: parent.parent.tips[6]; highlight: parent.parent.slider.value === 7 } - ] - + slider.value: dccData.indexByValueOnMap(dataMap, dccData.model.powerLockScreenDelay) slider.onValueChanged: { - dccData.worker.setLockScreenDelayOnPower(slider.value) + dccData.worker.setLockScreenDelayOnPower(dataMap[slider.value].value) } } } @@ -186,22 +140,22 @@ DccObject { DccObject { name: "powerButtonGroup" - parentName: "powerManage/power" + parentName: "power/onPower" weight: 400 pageType: DccObject.Item page: DccGroupView {} DccObject { - name: "closeTheLid" - parentName: "powerManage/power/powerButtonGroup" - displayName: qsTr("合盖时") + name: "whenTheLidIsClosed" + parentName: "power/onPower/powerButtonGroup" + displayName: qsTr("When the lid is closed") + visible: dccData.model.lidPresent weight: 1 pageType: DccObject.Editor page: CustomComboBox { textRole: "text" - valueRole: "value" - visibleRole: "visible" enableRole: "enable" + visibleRole: "visible" width: 100 model: dccData.powerLidModel currentIndex: model.indexOfKey(dccData.model.linePowerLidClosedAction) @@ -212,14 +166,15 @@ DccObject { } } DccObject { - name: "pressPowerButton" - parentName: "powerManage/power/powerButtonGroup" - displayName: qsTr("按下电源键时") + name: "whenThePowerButtonIsPressed" + parentName: "power/onPower/powerButtonGroup" + displayName: qsTr("When the power button is pressed") weight: 2 pageType: DccObject.Editor page: CustomComboBox { textRole: "text" enableRole: "enable" + visibleRole: "visible" width: 100 model: dccData.powerPressModel currentIndex: model.indexOfKey(dccData.model.linePowerPressPowerBtnAction) diff --git a/src/plugin-power/qml/PowerModeListview.qml b/src/plugin-power/qml/PowerPlansListview.qml similarity index 78% rename from src/plugin-power/qml/PowerModeListview.qml rename to src/plugin-power/qml/PowerPlansListview.qml index 08c540aa26..58729e7a2a 100644 --- a/src/plugin-power/qml/PowerModeListview.qml +++ b/src/plugin-power/qml/PowerPlansListview.qml @@ -64,7 +64,8 @@ Rectangle { Layout.alignment: Qt.AlignRight Layout.rightMargin: 10 contentItem: D.IconButton { - icon.name: model.mode === dccData.model.powerPlan ? "qrc:/icons/deepin/builtin/actions/checked.png" : "qrc:/icons/deepin/builtin/actions/nocheck.png" + visible: model.mode === dccData.model.powerPlan + icon.name: "qrc:/icons/deepin/builtin/actions/checked.png" icon.width: 24 icon.height: 24 implicitWidth: 36 @@ -97,30 +98,30 @@ Rectangle { ListElement { mode: "performance" - title: qsTr("高性能模式") - icon: "dcc_nav_systeminfo" - description: qsTr("性能优先, 会显著提升功耗和发热") + title: qsTr("High Performance") + icon: "high_performance" + description: qsTr("Performance priority will significantly improve power consumption and heat generation") } ListElement { mode: "balance_performance" - title: qsTr("性能模式") - icon: "dcc_nav_systeminfo" - description: qsTr("根据负载积极调整运行频率") + title: qsTr("Balance Performance") + icon: "balance_performance" + description: qsTr("Aggressively adjust CPU operating frequency based on CPU load condition") } ListElement { mode: "balance" - title: qsTr("平衡模式") - icon: "dcc_nav_systeminfo" - description: qsTr("兼顾性能和续航, 根据使用情况自动调节") + title: qsTr("Balanced") + icon: "balanced" + description: qsTr("Balancing performance and battery life, automatically adjusting according to usage conditions") } ListElement { mode: "powersave" - title: qsTr("节能模式") - icon: "dcc_nav_systeminfo" - description: qsTr("续航优先, 系统会牺牲一些性能表现来降低功耗") + title: qsTr("Power Saver") + icon: "power_performance" + description: qsTr("Prioritizing battery life, the system sacrifices some performance to reduce power consumption") } } } diff --git a/src/plugin-power/qml/main.qml b/src/plugin-power/qml/main.qml index 9798795a35..0d6c76c945 100644 --- a/src/plugin-power/qml/main.qml +++ b/src/plugin-power/qml/main.qml @@ -9,21 +9,23 @@ import org.deepin.dtk 1.0 as D DccObject { DccObject { - name: "common" - parentName: "powerManage" - displayName: qsTr("通用") - icon: "power" + name: "general" + parentName: "power" + displayName: qsTr("General") + description: "Performance mode switching, energy-saving settings, wake-up settings, shutdown settings" + icon: "general" weight: 10 page: DccRightView { spacing: 5 } - CommonPage {} + GeneralPage {} } DccObject { - name: "power" - parentName: "powerManage" - displayName: qsTr("电源") - icon: "power" + name: "onPower" + parentName: "power" + displayName: qsTr("Plugged In") + description: qsTr("Screen and standby management") + icon: "plugged_in" weight: 100 page: DccRightView { spacing: 5 @@ -31,11 +33,13 @@ DccObject { PowerPage {} } DccObject { - name: "battery" - parentName: "powerManage" - displayName: qsTr("电池") - icon: "power" + name: "onBattery" + parentName: "power" + displayName: qsTr("On Battery") + description: qsTr("Screen and standby management, low battery management, battery management") + icon: "on_battery" weight: 200 + visible: dccData.model.haveBettary page: DccRightView { spacing: 5 } diff --git a/src/plugin-power/qml/power.qml b/src/plugin-power/qml/power.qml index e7570805fe..f1e04d54e6 100644 --- a/src/plugin-power/qml/power.qml +++ b/src/plugin-power/qml/power.qml @@ -3,7 +3,7 @@ import org.deepin.dcc 1.0 DccObject { - name: "powerManage" + name: "power" parentName: "root" displayName: qsTr("power") icon: "power"