From 40aeb96c9b3f8105f77ba82cbc8632b9e196e2cd Mon Sep 17 00:00:00 2001 From: liuxinhao Date: Tue, 21 Dec 2021 16:58:34 +0800 Subject: [PATCH 1/5] refactor(idle time): Modify the setting form of idle time MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改空闲时间的设置形式,修改描述 --- .../general-settings-page.cpp | 73 ++++++------ .../general-settings/general-settings-page.h | 1 + .../general-settings/general-settings-page.ui | 106 ++++++++++-------- translations/kiran-cpanel-power.zh_CN.ts | 77 +++++++------ 4 files changed, 145 insertions(+), 112 deletions(-) diff --git a/src/pages/general-settings/general-settings-page.cpp b/src/pages/general-settings/general-settings-page.cpp index 5a6f807..40d4423 100644 --- a/src/pages/general-settings/general-settings-page.cpp +++ b/src/pages/general-settings/general-settings-page.cpp @@ -22,6 +22,9 @@ #define KEY_IDLE_DELAY "idle-delay" #define DEFAULT_IDLE_DELAY 5 +#define SCHEMA_KIRAN_SCREENSAVER "com.kylinsec.kiran.screensaver" +#define KEY_IDLE_ACTIVATION_LOCK "idleActivationLock" + GeneralSettingsPage::GeneralSettingsPage(QWidget* parent) : QWidget(parent), ui(new Ui::GeneralSettingsPage), @@ -48,14 +51,19 @@ void GeneralSettingsPage::initSessionSetting() { if (QGSettings::isSchemaInstalled(KIRAN_SESSION_SCHEMA_ID)) { - m_sessionSettings = new QGSettings(KIRAN_SESSION_SCHEMA_ID); + m_sessionSettings = new QGSettings(KIRAN_SESSION_SCHEMA_ID,QByteArray(),this); } else if (QGSettings::isSchemaInstalled(MATE_SESSION_SCHEMA_ID)) { - m_sessionSettings = new QGSettings(MATE_SESSION_SCHEMA_ID); + m_sessionSettings = new QGSettings(MATE_SESSION_SCHEMA_ID,QByteArray(),this); + } + + if( QGSettings::isSchemaInstalled(SCHEMA_KIRAN_SCREENSAVER) ) + { + m_screensaverSettings = new QGSettings(SCHEMA_KIRAN_SCREENSAVER,QByteArray(),this); } - if (m_sessionSettings != nullptr) + if (m_sessionSettings) { connect(m_sessionSettings, &QGSettings::changed, [this](const QString& key) { if (key != KEY_IDLE_DELAY) @@ -73,6 +81,19 @@ void GeneralSettingsPage::initSessionSetting() ui->slider_idleTime->setValue(m_sessionSettings->get(key).toInt()); }); } + + if(m_screensaverSettings) + { + connect(m_screensaverSettings,&QGSettings::changed,[this](const QString& key){ + if(key != KEY_IDLE_ACTIVATION_LOCK) + { + return ; + } + + bool value = m_screensaverSettings->get(KEY_IDLE_ACTIVATION_LOCK).toBool(); + m_btn_lockScreen->setChecked(value); + }); + } } void GeneralSettingsPage::initUI() @@ -132,10 +153,6 @@ void GeneralSettingsPage::initUI() //空闲时是否锁定屏幕及屏保 m_btn_lockScreen = new KiranSwitchButton(this); ui->layout_sliderLabel->addWidget(m_btn_lockScreen); - - QFont font = ui->label_idleTime->font(); - font.setPointSize(font.pointSize()-2); - ui->label_idleTime->setFont(font); } void GeneralSettingsPage::initConnection() @@ -170,20 +187,8 @@ void GeneralSettingsPage::initConnection() m_sessionSettings->set(KEY_IDLE_DELAY, value); } }); - connect(m_btn_lockScreen,&QAbstractButton::toggled,[this](bool checked){ - if(checked) - { - ui->widget_idleTimeSlider->setEnabled(true); - ui->slider_idleTime->setValue(DEFAULT_IDLE_DELAY); - } - else - { - if(m_sessionSettings) - { - m_sessionSettings->set(KEY_IDLE_DELAY,0); - } - ui->widget_idleTimeSlider->setEnabled(false); - } + connect(m_btn_lockScreen, &QAbstractButton::toggled, [this](bool checked) { + m_screensaverSettings->set(KEY_IDLE_ACTIVATION_LOCK,checked); }); } @@ -250,18 +255,6 @@ void GeneralSettingsPage::load() QSignalBlocker idleTimeSignalBlocker(ui->slider_idleTime); QSignalBlocker idleTimerSwitchBlocker(m_btn_lockScreen); int idleTime = m_sessionSettings->get(KEY_IDLE_DELAY).toInt(); - if(idleTime<=0) - { - m_btn_lockScreen->setChecked(false); - ui->widget_idleTimeSlider->setEnabled(false); - ui->slider_idleTime->setValue(0); - } - else - { - m_btn_lockScreen->setChecked(true); - ui->widget_idleTimeSlider->setEnabled(true); - ui->slider_idleTime->setValue(idleTime); - } updateIdleTimeLabel(idleTime); } else @@ -269,6 +262,18 @@ void GeneralSettingsPage::load() m_btn_lockScreen->setChecked(false); m_btn_lockScreen->setEnabled(false); } + + if(m_screensaverSettings) + { + QSignalBlocker qSignalBlocker(m_btn_lockScreen); + bool value = m_screensaverSettings->get(KEY_IDLE_ACTIVATION_LOCK).toBool(); + m_btn_lockScreen->setChecked(value); + } + else + { + m_btn_lockScreen->setChecked(false); + } + } void GeneralSettingsPage::handleComboBoxCurrentIdxChanged(int idx) @@ -309,7 +314,7 @@ void GeneralSettingsPage::handleComboBoxCurrentIdxChanged(int idx) void GeneralSettingsPage::setBrightnessPercent(int percent) { - if(percent < 0) + if (percent < 0) { ui->slider_brightness->setEnabled(false); ui->slider_brightness->setValue(0); diff --git a/src/pages/general-settings/general-settings-page.h b/src/pages/general-settings/general-settings-page.h index 7266bde..884a76f 100644 --- a/src/pages/general-settings/general-settings-page.h +++ b/src/pages/general-settings/general-settings-page.h @@ -48,6 +48,7 @@ private: QTimer m_idleTimeTimer; int m_brightnessValue; QGSettings* m_sessionSettings = nullptr; + QGSettings* m_screensaverSettings = nullptr; KiranSwitchButton* m_btn_lockScreen = nullptr; }; diff --git a/src/pages/general-settings/general-settings-page.ui b/src/pages/general-settings/general-settings-page.ui index 536774d..bca33de 100644 --- a/src/pages/general-settings/general-settings-page.ui +++ b/src/pages/general-settings/general-settings-page.ui @@ -190,6 +190,66 @@ + + + + 24 + + + + + Regard computer as idle after + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + 0 + 0 + + + + + + + Qt::AlignCenter + + + + + + + + + 0 + + + 10 + + + + + Qt::Horizontal + + + + + @@ -201,7 +261,7 @@ - After idle the following time to lock the screen + Lock screen when idle @@ -220,50 +280,6 @@ - - - - - 0 - - - 0 - - - 10 - - - 0 - - - 0 - - - - - Qt::Horizontal - - - - - - - - 0 - 0 - - - - - - - Qt::AlignCenter - - - - - - diff --git a/translations/kiran-cpanel-power.zh_CN.ts b/translations/kiran-cpanel-power.zh_CN.ts index 924cbc0..24099fc 100644 --- a/translations/kiran-cpanel-power.zh_CN.ts +++ b/translations/kiran-cpanel-power.zh_CN.ts @@ -112,103 +112,114 @@ GeneralSettingsPage - - + + GeneralSettingsPage 通用设置页面 - - + + When the power button is pressed 按下电源按钮时 - - + + When the suspend button is pressed 按下挂起按钮时 - - + + When closing the lid 合上盖子操作 - - + + Display brightness setting 显示亮度设置 - - + + 0% - - - + + + + Regard computer as idle after + 于此时间后视计算机为空闲 + + + + + + Lock screen when idle + 计算机空闲时锁定屏幕 + + After idle the following time to lock the screen - 空闲如下时间锁定屏幕 + 空闲如下时间锁定屏幕 - - + + shutdown 关机 - - - + + + hibernate 休眠 - - - + + + suspend 挂起 - - + + display off 关闭显示器 - - - + + + do nothing 不执行操作 - + ERROR 错误 - + brightness adjustment not available 亮度调整不可用 - + %1hour %1小时 - + %1minute %1分钟 -- 2.27.0