First submission of source code

This commit is contained in:
kylinsecos_admin 2022-01-20 17:15:29 +08:00
parent 58ec5cda9c
commit 1f1f51f9e6
8 changed files with 970 additions and 0 deletions

View File

@ -0,0 +1,145 @@
From b09567c650c78c1d4699e092d56d783ae2568b7c Mon Sep 17 00:00:00 2001
From: liuxinhao <liuxinhao@kylinos.com.cn>
Date: Tue, 21 Dec 2021 14:18:47 +0800
Subject: [PATCH 0/5] feature(upower-glib): yse UPower-glib to determine
whether there is a battery option
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 使用upower-glib枚举出所有的设备判断是否存在电池选项
---
CMakeLists.txt | 7 +++++--
src/kcp-power-interface.cpp | 10 +++++++++-
src/upower-interface.cpp | 40 +++++++++++++++++++++++++++++++++++++
src/upower-interface.h | 13 ++++++++++++
4 files changed, 67 insertions(+), 3 deletions(-)
create mode 100644 src/upower-interface.cpp
create mode 100644 src/upower-interface.h
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 806bc1b..9b7831c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -19,6 +19,7 @@ pkg_search_module(KIRAN_WIDGETS_QT5 REQUIRED kiranwidgets-qt5)
pkg_search_module(KIRAN_CC_DAEMON REQUIRED kiran-cc-daemon)
pkg_search_module(KLOG_QT5 REQUIRED klog-qt5)
pkg_search_module(QGSETTINGS REQUIRED gsettings-qt)
+pkg_search_module(UPOWER_GLIB REQUIRED upower-glib)
#通过kiran control panel的pkgconfig配置文件取出插件Desktop安装位置、插件共享库安装位置
pkg_search_module(KIRAN_CONTROL_PANEL_PKG REQUIRED kiran-control-panel)
@@ -65,7 +66,8 @@ target_include_directories(${PROJECT_NAME} PRIVATE
${KIRAN_CC_DAEMON_INCLUDE_DIRS}
${KLOG_QT5_INCLUDE_DIRS}
${KIRAN_CONTROL_PANEL_PKG_INCLUDE_DIRS}
- ${QGSETTINGS_INCLUDE_DIRS})
+ ${QGSETTINGS_INCLUDE_DIRS}
+ ${UPOWER_GLIB_INCLUDE_DIRS})
target_link_libraries(${PROJECT_NAME}
Qt5::Widgets
@@ -73,7 +75,8 @@ target_link_libraries(${PROJECT_NAME}
${KIRAN_WIDGETS_QT5_LIBRARIES}
${KIRAN_CC_DAEMON_LIBRARIES}
${KLOG_QT5_LIBRARIES}
- ${QGSETTINGS_LIBRARIES})
+ ${QGSETTINGS_LIBRARIES}
+ ${UPOWER_GLIB_LIBRARIES})
include(GNUInstallDirs)
# 安装插件翻译
diff --git a/src/kcp-power-interface.cpp b/src/kcp-power-interface.cpp
index b0f03c4..40a28c3 100644
--- a/src/kcp-power-interface.cpp
+++ b/src/kcp-power-interface.cpp
@@ -7,6 +7,7 @@
#include "config.h"
#include "general-settings-page.h"
#include "power-settings-page.h"
+#include "upower-interface.h"
#include <qt5-log-i.h>
@@ -71,5 +72,12 @@ bool KcpPowerInterface::haveUnsavedOptions()
QStringList KcpPowerInterface::visibleSubItems()
{
- return QStringList() << "GeneralSettings" << "PowerSettings" << "BatterySettings";
+ QStringList subItem({{"GeneralSettings"},{"PowerSettings"}});
+
+ if( UPowerInterface::haveBattery() )
+ {
+ subItem << "BatterySettings";
+ }
+
+ return subItem;
}
diff --git a/src/upower-interface.cpp b/src/upower-interface.cpp
new file mode 100644
index 0000000..3159718
--- /dev/null
+++ b/src/upower-interface.cpp
@@ -0,0 +1,40 @@
+//
+// Created by lxh on 2021/12/21.
+//
+
+#include "upower-interface.h"
+#include <upower.h>
+#include <cstdio>
+
+bool UPowerInterface::haveBattery()
+{
+ GError *error = nullptr;
+ auto upClient = up_client_new();
+ bool hasBattery = false;
+
+#if !UP_CHECK_VERSION(0, 99, 0)
+ gboolean ret;
+ ret = up_client_enumerate_devices_sync(upClient, NULL, &error);
+ if (!ret)
+ {
+ fprintf(stderr, "failed to get device list: %s", error->message);
+ g_error_free(error);
+ }
+#endif
+
+ auto devices = up_client_get_devices(upClient);
+ void *device = nullptr;
+ UpDeviceKind kind;
+ for (int i = 0; i < devices->len; i++)
+ {
+ device = g_ptr_array_index(devices, i);
+ g_object_get(device,
+ "kind", &kind,
+ NULL);
+ if (kind == UP_DEVICE_KIND_BATTERY)
+ hasBattery = true;
+ }
+ g_ptr_array_unref (devices);
+ g_object_unref(upClient);
+ return hasBattery;
+}
diff --git a/src/upower-interface.h b/src/upower-interface.h
new file mode 100644
index 0000000..1c90165
--- /dev/null
+++ b/src/upower-interface.h
@@ -0,0 +1,13 @@
+//
+// Created by lxh on 2021/12/21.
+//
+
+#ifndef KIRAN_POWER_MANAGER_SRC_U_POWER_INTERFACE_H_
+#define KIRAN_POWER_MANAGER_SRC_U_POWER_INTERFACE_H_
+
+namespace UPowerInterface
+{
+ bool haveBattery();
+};
+
+#endif //KIRAN_POWER_MANAGER_SRC_U_POWER_INTERFACE_H_
--
2.27.0

View File

@ -0,0 +1,452 @@
From 40aeb96c9b3f8105f77ba82cbc8632b9e196e2cd Mon Sep 17 00:00:00 2001
From: liuxinhao <liuxinhao@kylinos.com.cn>
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 @@
</item>
</layout>
</item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_8">
+ <property name="topMargin">
+ <number>24</number>
+ </property>
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>Regard computer as idle after</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_idleTime">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>10</number>
+ </property>
+ <item>
+ <widget class="QSlider" name="slider_idleTime">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
<item>
<layout class="QHBoxLayout" name="layout_sliderLabel">
<property name="topMargin">
@@ -201,7 +261,7 @@
<item>
<widget class="QLabel" name="label_4">
<property name="text">
- <string>After idle the following time to lock the screen </string>
+ <string>Lock screen when idle</string>
</property>
</widget>
</item>
@@ -220,50 +280,6 @@
</item>
</layout>
</item>
- <item>
- <widget class="QWidget" name="widget_idleTimeSlider" native="true">
- <layout class="QVBoxLayout" name="verticalLayout_2">
- <property name="spacing">
- <number>0</number>
- </property>
- <property name="leftMargin">
- <number>0</number>
- </property>
- <property name="topMargin">
- <number>10</number>
- </property>
- <property name="rightMargin">
- <number>0</number>
- </property>
- <property name="bottomMargin">
- <number>0</number>
- </property>
- <item>
- <widget class="QSlider" name="slider_idleTime">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_idleTime">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
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 @@
<name>GeneralSettingsPage</name>
<message>
<location filename="../src/pages/general-settings/general-settings-page.ui" line="14"/>
- <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="226"/>
- <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="226"/>
+ <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="241"/>
+ <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="241"/>
<source>GeneralSettingsPage</source>
<translation>通用设置页面</translation>
</message>
<message>
<location filename="../src/pages/general-settings/general-settings-page.ui" line="40"/>
- <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="227"/>
- <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="227"/>
+ <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="242"/>
+ <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="242"/>
<source>When the power button is pressed</source>
<translation>按下电源按钮时</translation>
</message>
<message>
<location filename="../src/pages/general-settings/general-settings-page.ui" line="64"/>
- <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="228"/>
- <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="228"/>
+ <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="243"/>
+ <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="243"/>
<source>When the suspend button is pressed</source>
<translation>按下挂起按钮时</translation>
</message>
<message>
<location filename="../src/pages/general-settings/general-settings-page.ui" line="92"/>
- <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="229"/>
- <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="229"/>
+ <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="244"/>
+ <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="244"/>
<source>When closing the lid</source>
<translation>合上盖子操作</translation>
</message>
<message>
<location filename="../src/pages/general-settings/general-settings-page.ui" line="153"/>
- <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="230"/>
- <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="230"/>
+ <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="245"/>
+ <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="245"/>
<source>Display brightness setting</source>
<translation>显示亮度设置</translation>
</message>
<message>
<location filename="../src/pages/general-settings/general-settings-page.ui" line="173"/>
- <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="231"/>
- <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="231"/>
+ <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="246"/>
+ <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="246"/>
<source>0%</source>
<translation></translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.ui" line="204"/>
- <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="232"/>
- <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="232"/>
+ <location filename="../src/pages/general-settings/general-settings-page.ui" line="201"/>
+ <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="247"/>
+ <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="247"/>
+ <source>Regard computer as idle after</source>
+ <translation>于此时间后视计算机为空闲</translation>
+ </message>
+ <message>
+ <location filename="../src/pages/general-settings/general-settings-page.ui" line="264"/>
+ <location filename="../build/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="249"/>
+ <location filename="../cmake-build-debug/kiran-cpanel-power_autogen/include/ui_general-settings-page.h" line="249"/>
+ <source>Lock screen when idle</source>
+ <translation>计算机空闲时锁定屏幕</translation>
+ </message>
+ <message>
<source>After idle the following time to lock the screen </source>
- <translation>空闲如下时间锁定屏幕</translation>
+ <translation type="vanished">空闲如下时间锁定屏幕</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="85"/>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="98"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="106"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="119"/>
<source>shutdown</source>
<translation>关机</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="86"/>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="92"/>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="97"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="107"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="113"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="118"/>
<source>hibernate</source>
<translation>休眠</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="87"/>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="91"/>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="96"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="108"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="112"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="117"/>
<source>suspend</source>
<translation>挂起</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="88"/>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="93"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="109"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="114"/>
<source>display off</source>
<translation>关闭显示器</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="89"/>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="94"/>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="99"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="110"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="115"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="120"/>
<source>do nothing</source>
<translation>不执行操作</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="154"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="171"/>
<source>ERROR</source>
<translation>错误</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="316"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="335"/>
<source>brightness adjustment not available</source>
<translation>亮度调整不可用</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="340"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="359"/>
<source>%1hour</source>
<translation>%1小时</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="344"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="363"/>
<source>%1minute</source>
<translation>%1分钟</translation>
</message>
--
2.27.0

View File

@ -0,0 +1,98 @@
From b42c72001b7c25e11e9f480694176cb71ba9a4f8 Mon Sep 17 00:00:00 2001
From: liuxinhao <liuxinhao@kylinos.com.cn>
Date: Fri, 14 Jan 2022 14:41:30 +0800
Subject: [PATCH 2/5] refactor(view): hide configuration items made by suspend
button
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 隐藏挂起按钮相关配置
Closes #48515
---
src/pages/general-settings/general-settings-page.cpp | 7 +++++++
src/pages/general-settings/general-settings-page.ui | 6 +++---
translations/kiran-cpanel-power.zh_CN.ts | 8 ++++----
3 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/src/pages/general-settings/general-settings-page.cpp b/src/pages/general-settings/general-settings-page.cpp
index 40d4423..af5e795 100644
--- a/src/pages/general-settings/general-settings-page.cpp
+++ b/src/pages/general-settings/general-settings-page.cpp
@@ -153,6 +153,13 @@ void GeneralSettingsPage::initUI()
//空闲时是否锁定屏幕及屏保
m_btn_lockScreen = new KiranSwitchButton(this);
ui->layout_sliderLabel->addWidget(m_btn_lockScreen);
+
+ //NOTE: 根据#48515缺陷单所做修改,隐藏挂起按钮相关配置项,后续若有需要再进行打开
+ ui->layout_suspendlabel->setMargin(0);
+ ui->label_suspend->setVisible(false);
+
+ ui->layout_suspend->setMargin(0);
+ ui->combo_suspendButton->setVisible(false);
}
void GeneralSettingsPage::initConnection()
diff --git a/src/pages/general-settings/general-settings-page.ui b/src/pages/general-settings/general-settings-page.ui
index bca33de..0ab1909 100644
--- a/src/pages/general-settings/general-settings-page.ui
+++ b/src/pages/general-settings/general-settings-page.ui
@@ -54,12 +54,12 @@
</layout>
</item>
<item>
- <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <layout class="QHBoxLayout" name="layout_suspendlabel">
<property name="topMargin">
<number>24</number>
</property>
<item>
- <widget class="QLabel" name="label_2">
+ <widget class="QLabel" name="label_suspend">
<property name="text">
<string>When the suspend button is pressed</string>
</property>
@@ -68,7 +68,7 @@
</layout>
</item>
<item>
- <layout class="QHBoxLayout" name="horizontalLayout_4">
+ <layout class="QHBoxLayout" name="layout_suspend">
<property name="topMargin">
<number>10</number>
</property>
diff --git a/translations/kiran-cpanel-power.zh_CN.ts b/translations/kiran-cpanel-power.zh_CN.ts
index 24099fc..f6ce17b 100644
--- a/translations/kiran-cpanel-power.zh_CN.ts
+++ b/translations/kiran-cpanel-power.zh_CN.ts
@@ -204,22 +204,22 @@
<translation>不执行操作</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="171"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="178"/>
<source>ERROR</source>
<translation>错误</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="335"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="328"/>
<source>brightness adjustment not available</source>
<translation>亮度调整不可用</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="359"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="352"/>
<source>%1hour</source>
<translation>%1小时</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="363"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="356"/>
<source>%1minute</source>
<translation>%1分钟</translation>
</message>
--
2.27.0

View File

@ -0,0 +1,38 @@
From 8406922f40a8527c75e12033106bf938567db8b9 Mon Sep 17 00:00:00 2001
From: liuxinhao <liuxinhao@kylinos.com.cn>
Date: Wed, 19 Jan 2022 09:18:40 +0800
Subject: [PATCH 3/5] fix(brightness): abnormal settings brightness
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复亮度设置不正常的问题
Closes #48486
---
src/pages/general-settings/general-settings-page.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/pages/general-settings/general-settings-page.cpp b/src/pages/general-settings/general-settings-page.cpp
index af5e795..1c2cffa 100644
--- a/src/pages/general-settings/general-settings-page.cpp
+++ b/src/pages/general-settings/general-settings-page.cpp
@@ -324,13 +324,14 @@ void GeneralSettingsPage::setBrightnessPercent(int percent)
if (percent < 0)
{
ui->slider_brightness->setEnabled(false);
+ m_brightnessValue = 0;
ui->slider_brightness->setValue(0);
ui->label_brightnessPercent->setText(tr("brightness adjustment not available"));
}
else
{
ui->slider_brightness->setEnabled(true);
- ui->slider_brightness->setValue(percent);
+ m_brightnessValue = percent;
ui->label_brightness->setText(QString("%1%").arg(percent));
}
}
--
2.27.0

View File

@ -0,0 +1,57 @@
From f3096927edda40b92fbfc892df14dc22f0e5ef34 Mon Sep 17 00:00:00 2001
From: liuxinhao <liuxinhao@kylinos.com.cn>
Date: Wed, 19 Jan 2022 10:50:29 +0800
Subject: [PATCH 4/5] fix(view): fix ui description error
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复UI界面描述错误的问题
---
src/pages/general-settings/general-settings-page.cpp | 3 ++-
translations/kiran-cpanel-power.zh_CN.ts | 6 +++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/pages/general-settings/general-settings-page.cpp b/src/pages/general-settings/general-settings-page.cpp
index 1c2cffa..55e5c47 100644
--- a/src/pages/general-settings/general-settings-page.cpp
+++ b/src/pages/general-settings/general-settings-page.cpp
@@ -331,8 +331,9 @@ void GeneralSettingsPage::setBrightnessPercent(int percent)
else
{
ui->slider_brightness->setEnabled(true);
+ ui->slider_brightness->setValue(percent);
m_brightnessValue = percent;
- ui->label_brightness->setText(QString("%1%").arg(percent));
+ ui->label_brightnessPercent->setText(QString("%1%").arg(percent));
}
}
diff --git a/translations/kiran-cpanel-power.zh_CN.ts b/translations/kiran-cpanel-power.zh_CN.ts
index f6ce17b..db5bbfb 100644
--- a/translations/kiran-cpanel-power.zh_CN.ts
+++ b/translations/kiran-cpanel-power.zh_CN.ts
@@ -209,17 +209,17 @@
<translation>错误</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="328"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="329"/>
<source>brightness adjustment not available</source>
<translation>亮度调整不可用</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="352"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="353"/>
<source>%1hour</source>
<translation>%1小时</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="356"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="357"/>
<source>%1minute</source>
<translation>%1分钟</translation>
</message>
--
2.27.0

View File

@ -0,0 +1,95 @@
From 957b026270e6bd2c707e5065f1c0540e1a33f0a6 Mon Sep 17 00:00:00 2001
From: liuxinhao <liuxinhao@kylinos.com.cn>
Date: Wed, 19 Jan 2022 11:11:20 +0800
Subject: [PATCH 5/5] fix(brightness): set minmum brightness to 20%
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 设置最小亮度为20%
Closes #48486
---
.../general-settings-page.cpp | 30 ++++++++++---------
translations/kiran-cpanel-power.zh_CN.ts | 4 +--
2 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/src/pages/general-settings/general-settings-page.cpp b/src/pages/general-settings/general-settings-page.cpp
index 55e5c47..3c25d3b 100644
--- a/src/pages/general-settings/general-settings-page.cpp
+++ b/src/pages/general-settings/general-settings-page.cpp
@@ -133,7 +133,7 @@ void GeneralSettingsPage::initUI()
///初始化QSlider,和延迟设置的Timer
ui->slider_brightness->setMaximum(100);
- ui->slider_brightness->setMinimum(0);
+ ui->slider_brightness->setMinimum(20);
m_brightnessTimer.setInterval(300);
m_brightnessTimer.setSingleShot(true);
@@ -254,7 +254,15 @@ void GeneralSettingsPage::load()
monitorBrightnessPercent = monitorBrightnessReply.value();
}
QSignalBlocker signalBlocker(ui->slider_brightness);
- setBrightnessPercent(monitorBrightnessPercent);
+ if( monitorBrightnessPercent == -1 )
+ {
+ ui->slider_brightness->setMaximum(ui->slider_brightness->maximum());
+ ui->slider_brightness->setEnabled(false);
+ }
+ else
+ {
+ setBrightnessPercent(monitorBrightnessPercent);
+ }
/// idle time
if (m_sessionSettings)
@@ -321,20 +329,14 @@ void GeneralSettingsPage::handleComboBoxCurrentIdxChanged(int idx)
void GeneralSettingsPage::setBrightnessPercent(int percent)
{
- if (percent < 0)
+ if (percent < ui->slider_brightness->minimum())
{
- ui->slider_brightness->setEnabled(false);
- m_brightnessValue = 0;
- ui->slider_brightness->setValue(0);
- ui->label_brightnessPercent->setText(tr("brightness adjustment not available"));
- }
- else
- {
- ui->slider_brightness->setEnabled(true);
- ui->slider_brightness->setValue(percent);
- m_brightnessValue = percent;
- ui->label_brightnessPercent->setText(QString("%1%").arg(percent));
+ percent = ui->slider_brightness->minimum();
}
+
+ ui->slider_brightness->setValue(percent);
+ m_brightnessValue = percent;
+ ui->label_brightnessPercent->setText(QString("%1%").arg(percent));
}
QSize GeneralSettingsPage::sizeHint() const
diff --git a/translations/kiran-cpanel-power.zh_CN.ts b/translations/kiran-cpanel-power.zh_CN.ts
index db5bbfb..1a46089 100644
--- a/translations/kiran-cpanel-power.zh_CN.ts
+++ b/translations/kiran-cpanel-power.zh_CN.ts
@@ -214,12 +214,12 @@
<translation>亮度调整不可用</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="353"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="354"/>
<source>%1hour</source>
<translation>%1小时</translation>
</message>
<message>
- <location filename="../src/pages/general-settings/general-settings-page.cpp" line="357"/>
+ <location filename="../src/pages/general-settings/general-settings-page.cpp" line="358"/>
<source>%1minute</source>
<translation>%1分钟</translation>
</message>
--
2.27.0

Binary file not shown.

85
kiran-cpanel-power.spec Normal file
View File

@ -0,0 +1,85 @@
Name: kiran-cpanel-power
Version: 2.2.0
Release: 1.kb6
Summary: Kiran Power Manager
Summary(zh_CN): 电源管理
License: Mulan PSL v2
Source0: %{name}-%{version}.tar.gz
Patch0001: 0000-feature-upower-glib-yse-UPower-glib-to-determine-whe-b09567c6.patch
Patch0002: 0001-refactor-idle-time-Modify-the-setting-form-of-idle-t-40aeb96c.patch
Patch0003: 0002-refactor-view-hide-configuration-items-made-by-suspe-b42c7200.patch
Patch0004: 0003-fix-brightness-abnormal-settings-brightness-8406922f.patch
Patch0005: 0004-fix-view-fix-ui-description-error-f3096927.patch
Patch0006: 0005-fix-brightness-set-minmum-brightness-to-20-957b0262.patch
BuildRequires: cmake
BuildRequires: gcc-c++
BuildRequires: qt5-qtbase-devel
BuildRequires: qt5-qtsvg-devel
BuildRequires: kiran-widgets-qt5-devel
BuildRequires: kiran-cc-daemon-devel
BuildRequires: kiran-control-panel-devel
BuildRequires: kiran-log-qt5-devel
BuildRequires: gsettings-qt-devel
BuildRequires: qt5-linguist
BuildRequires: upower-devel
Requires: qt5-qtbase
Requires: qt5-qtsvg
Requires: kiran-widgets-qt5
Requires: kiran-session-daemon
Requires: kiran-cpanel-launcher
Requires: kiran-log-qt5
Requires: gsettings-qt
Requires: kiran-screensaver >= 2.2.0-6
Requires: upower
%description
%{summary}.
%prep
%autosetup -p1
%build
%{__mkdir} -p %{buildroot}
%cmake
%make_build
%install
%make_install
%post
gtk-update-icon-cache -f /usr/share/icons/hicolor/
%files
%doc
%{_datadir}/kiran-control-panel/plugins/libs/libkiran-cpanel-power.so*
%{_datadir}/kiran-control-panel/plugins/desktop/*
%{_datadir}/applications/*.desktop
%{_datadir}/icons/hicolor/*
%{_datadir}/kiran-cpanel-power/translations/*.qm
%clean
rm -rf %{buildroot}
%changelog
* Wed Jan 19 2022 liuxinhao <liuxinhao@kylinos.com.cn> - 2.2.0-1.kb6
- KYOS-F: using upower-glib detect battery
- KYOS-F: refactor idle time
- KYOS-B: fix brightness abnormal settings (#48486)
* Wed Dec 29 2021 kpkg <kpkg@kylinos.com.cn> - 2.2.0-1.kb1
- rebuild for KY3.4-MATE-modules-dev
* Wed Dec 29 2021 caoyuanji<caoyuanji@kylinos.com.cn> - 2.2.0-1
- Upgrade version number for easy upgrade
* Mon Dec 20 2021 caoyuanji <caoyuanji@kylinos.com.cn> - 2.2.0-0.kb3
- rebuild for KY3.4-4-KiranUI-2.2
* Mon Dec 20 2021 caoyuanji <caoyuanji@kylinos.com.cn> - 2.2.0-0.kb2
- rebuild for KY3.4-4-KiranUI-2.2
* Fri Oct 15 2021 liuxinhao <liuxinhao@kylinos.com.cn> - 2.2.0-0.kb1
- Initial build