ukui-greeter/0001-add-pending-sleep-1126.patch
2021-12-10 15:11:33 +08:00

503 lines
19 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 0e530957ee07705b666c88346a52f68c6e35fc1a Mon Sep 17 00:00:00 2001
From: huayadong <huayadong@kylinos.cn>
Date: Fri, 10 Dec 2021 15:04:20 +0800
Subject: [PATCH] add pending, sleep 1126
---
debian/changelog | 6 --
debian/source/format | 2 +-
.../BiometricAuth/biometricdeviceinfo.cpp | 10 ----
ukui-greeter/greeter/greeterwindow.cpp | 11 ++--
ukui-greeter/greeter/greeterwrapper.cpp | 2 -
ukui-greeter/greeter/main.cpp | 20 -------
ukui-greeter/greeter/powerwindow.cpp | 56 +++++++++++++++++--
ukui-greeter/greeter/powerwindow.h | 2 +
ukui-greeter/greeter/sessionwindow.cpp | 2 -
ukui-greeter/image.qrc | 3 +-
ukui-greeter/translations/es.ts | 4 ++
ukui-greeter/translations/fr.ts | 4 ++
ukui-greeter/translations/pt.ts | 4 ++
ukui-greeter/translations/ru.ts | 13 +++--
ukui-greeter/translations/tr.ts | 11 ++--
ukui-greeter/translations/zh_CN.ts | 11 ++--
ukui-greeter/ukui-greeter.pro | 2 +-
17 files changed, 95 insertions(+), 68 deletions(-)
diff --git a/debian/changelog b/debian/changelog
index c3ccfec..daa3366 100755
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,9 +1,3 @@
-ukui-greeter (3.0.0-1+1026) focal; urgency=medium
-
- * Daily build.
-
- -- liuliang <liuliang@ubuntukylin.com> Mon, 27 May 2019 15:48:18 +0800
-
ukui-greeter (3.0.0-1) unstable; urgency=medium
* New upstream release.
diff --git a/debian/source/format b/debian/source/format
index 89ae9db..163aaf8 100755
--- a/debian/source/format
+++ b/debian/source/format
@@ -1 +1 @@
-3.0 (native)
+3.0 (quilt)
diff --git a/ukui-greeter/BiometricAuth/biometricdeviceinfo.cpp b/ukui-greeter/BiometricAuth/biometricdeviceinfo.cpp
index 48dd8f2..23196d1 100755
--- a/ukui-greeter/BiometricAuth/biometricdeviceinfo.cpp
+++ b/ukui-greeter/BiometricAuth/biometricdeviceinfo.cpp
@@ -113,16 +113,6 @@ QString GetDefaultDevice(const QString &userName)
// qDebug() << "configure path: " << settings.fileName();
QString defaultDevice = settings.value("DefaultDevice").toString();
-
-
- if(defaultDevice.isEmpty())
- {
- QString configPath = QString("/var/lib/lightdm-data/%1/" UKUI_BIOMETRIC_CONFIG_PATH).arg(userName);
- QSettings settings(configPath, QSettings::IniFormat);
- defaultDevice = settings.value("DefaultDevice").toString();
- }
-
-
if(defaultDevice.isEmpty())
{
QSettings sysSettings(UKUI_BIOMETRIC_SYS_CONFIG_PATH, QSettings::IniFormat);
diff --git a/ukui-greeter/greeter/greeterwindow.cpp b/ukui-greeter/greeter/greeterwindow.cpp
index 5722bed..76e6953 100755
--- a/ukui-greeter/greeter/greeterwindow.cpp
+++ b/ukui-greeter/greeter/greeterwindow.cpp
@@ -153,8 +153,8 @@ void GreeterWindow::initUI()
m_sessionLB->setFixedSize(48, 48);
m_sessionLB->setCursor(Qt::PointingHandCursor);
m_sessionLB->installEventFilter(this);
- m_sessionLB->setToolTip(tr("Set the desktop environment for the selected user to log in. \
- If the user is logged in, it will take effect after logging in again"));
+ m_sessionLB->setToolTip(tr("Set the desktop environment for the selected user to log in. \
+ If the user is logged in, it will take effect after logging in again"));
m_sessionLB->setIcon(QIcon(IMAGE_DIR + QString("badges/unknown_badge.svg")));
onSessionChanged(m_greeter->defaultSessionHint());
connect(m_sessionLB, &QPushButton::clicked, this, &GreeterWindow::showSessionWnd);
@@ -263,7 +263,7 @@ void GreeterWindow::resizeEvent(QResizeEvent *event)
QSize size = event->size();
//重新计算缩放比例
scale = QString::number(size.width() / 1920.0, 'f', 1).toFloat();
-
+
if(scale > 1)
scale = 1;
fontSize = scale > 0.5 ? 10 : 8;
@@ -413,7 +413,7 @@ void GreeterWindow::setBackground(const QModelIndex &index)
QString backgroundPath;
bool useUserBackground = false;
-
+
//读取/var/lib/lightdm-date/用户名/ukui-greeter.conf,
//判断是否设置了该用户的登陆界面的背景图片.
QString userConfigurePath = m_greeter->getEnsureShareDir(index.data(QLightDM::UsersModel::NameRole).toString()) + "/ukui-greeter.conf";
@@ -700,7 +700,7 @@ void GreeterWindow::showSessionWnd()
if(!m_sessionWnd){
m_sessionWnd = new SessionWindow(m_sessionsModel, this);
-#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
+#if (QT_VERSION >= QT_VERSION_CHECK(5, 7, 0))
m_sessionWnd->setStyleSheet("QMenu::item{padding: 2px 10px 2px 10px;}");
#else
m_sessionWnd->setStyleSheet("QMenu::item{padding: 2px 10px 2px 30px;}");
@@ -786,3 +786,4 @@ bool GreeterWindow::sessionIsValid(const QString &session)
}
return false;
}
+
diff --git a/ukui-greeter/greeter/greeterwrapper.cpp b/ukui-greeter/greeter/greeterwrapper.cpp
index e1eb363..d155618 100755
--- a/ukui-greeter/greeter/greeterwrapper.cpp
+++ b/ukui-greeter/greeter/greeterwrapper.cpp
@@ -21,7 +21,6 @@
#include <QDesktopWidget>
#include <QDebug>
#include <QBitArray>
-#include <QTextCodec>
#include "globalv.h"
#include "common/configuration.h"
@@ -86,7 +85,6 @@ void GreeterWrapper::setrootWindow()
QString configPath = "/tmp/greeter-background.conf";
QSettings settings1(configPath, QSettings::IniFormat);
- settings1.setIniCodec(QTextCodec::codecForName("UTF-8"));
settings1.setValue("Greeter",m_rootWindowBackground);
settings1.sync();
}
diff --git a/ukui-greeter/greeter/main.cpp b/ukui-greeter/greeter/main.cpp
index 0fc09da..76cfbf0 100755
--- a/ukui-greeter/greeter/main.cpp
+++ b/ukui-greeter/greeter/main.cpp
@@ -34,7 +34,6 @@
#include <X11/Xlib.h>
#include <X11/XKBlib.h>
#include <X11/keysym.h>
-#include <X11/Xatom.h>
#include <X11/cursorfont.h>
#include <X11/extensions/Xrandr.h>
#include "globalv.h"
@@ -109,27 +108,8 @@ void x11_get_screen_size(int *width,int *height)
}
-void XsettingsHidpi()
-{
- Display *dpy;
- int w,h;
- x11_get_screen_size (&w, &h);
- dpy = XOpenDisplay (NULL);
- if(h > 2000){
- XChangeProperty(dpy, RootWindow (dpy, 0),
- XA_RESOURCE_MANAGER, XA_STRING, 8, PropModeReplace, (unsigned char *) "Xft.dpi: 192\n", 13);
- }else{
- XChangeProperty(dpy, RootWindow (dpy, 0),
- XA_RESOURCE_MANAGER, XA_STRING, 8, PropModeReplace, (unsigned char *) "Xft.dpi: 96\n", 12);
- }
- XCloseDisplay (dpy);
-}
-
-
-
int main(int argc, char *argv[])
{
- XsettingsHidpi ();
qInstallMessageHandler(outputMessage);
#if(QT_VERSION>=QT_VERSION_CHECK(5,6,0))
diff --git a/ukui-greeter/greeter/powerwindow.cpp b/ukui-greeter/greeter/powerwindow.cpp
index 013885b..7b46d2b 100755
--- a/ukui-greeter/greeter/powerwindow.cpp
+++ b/ukui-greeter/greeter/powerwindow.cpp
@@ -32,7 +32,9 @@ PowerManager::PowerManager(QWidget *parent)
m_power(new QLightDM::PowerInterface(this)),
lasttime(QTime::currentTime())
{
- if(m_power->canSuspend())
+ if(m_power->canSuspend() && m_power->canHibernate())
+ resize(ITEM_WIDTH*5, ITEM_HEIGHT);
+ else if(m_power->canSuspend() || m_power->canHibernate())
resize(ITEM_WIDTH*4, ITEM_HEIGHT);
else
resize(ITEM_WIDTH*3, ITEM_HEIGHT);
@@ -49,7 +51,9 @@ PowerManager::PowerManager(QWidget *parent)
QSize PowerManager::windowSize()
{
- if(m_power->canSuspend())
+ if(m_power->canSuspend() && m_power->canHibernate())
+ return QSize(ITEM_WIDTH*5, ITEM_HEIGHT);
+ else if(m_power->canSuspend() || m_power->canHibernate())
return QSize(ITEM_WIDTH*4, ITEM_HEIGHT);
else
return QSize(ITEM_WIDTH*3, ITEM_HEIGHT);
@@ -75,8 +79,14 @@ void PowerManager::powerClicked(QListWidgetItem *item)
shutdownWidgetClicked();
break;
case 3:
- suspendWidgetCliced();
+ if(m_power->canSuspend())
+ suspendWidgetCliced();
+ else if(m_power->canHibernate())
+ hibernateWidgetClicked();
break;
+ case 4:
+ if(m_power->canHibernate())
+ hibernateWidgetClicked();
default:
break;
}
@@ -118,6 +128,16 @@ void PowerManager::suspendWidgetCliced()
}
}
+void PowerManager::hibernateWidgetClicked()
+{
+ try{
+ emit switchToUser();
+ m_power->hibernate();
+ }catch(QException &e) {
+ qWarning() << e.what();
+ }
+}
+
void PowerManager::initUI()
{
@@ -167,14 +187,29 @@ void PowerManager::initUI()
QLabel *suspendLabel = new QLabel(this);
suspendFace->setAlignment(Qt::AlignCenter);
suspendLabel->setAlignment(Qt::AlignCenter);
- suspendFace->setPixmap(QPixmap(":/images/sleep.png").scaled(58,58));
- suspendLabel->setText(tr("Sleep"));
+ suspendFace->setPixmap(QPixmap(":/images/suspend.png").scaled(48,48));
+ suspendLabel->setText(tr("Suspend"));
suspendWidget->setFixedSize(ITEM_WIDTH,ITEM_HEIGHT);
QVBoxLayout *suspendlayout = new QVBoxLayout(suspendWidget);
suspendlayout->addWidget(suspendFace);
suspendlayout->addWidget(suspendLabel);
}
+ if(m_power->canHibernate()) {
+ hibernateWidget = new QWidget(this);
+ hibernateWidget->setObjectName("suspendWidget");
+ QLabel *hibernateFace = new QLabel(this);
+ QLabel *hibernateLabel = new QLabel(this);
+ hibernateFace->setAlignment(Qt::AlignCenter);
+ hibernateLabel->setAlignment(Qt::AlignCenter);
+ hibernateFace->setPixmap(QPixmap(":/images/hibernate.png").scaled(48,48));
+ hibernateLabel->setText(tr("Sleep"));
+ hibernateWidget->setFixedSize(ITEM_WIDTH,ITEM_HEIGHT);
+ QVBoxLayout *hibernatelayout = new QVBoxLayout(hibernateWidget);
+ hibernatelayout->addWidget(hibernateFace);
+ hibernatelayout->addWidget(hibernateLabel);
+ }
+
QListWidgetItem *item0 = new QListWidgetItem();
item0->setSizeHint(QSize(ITEM_WIDTH, ITEM_HEIGHT));
insertItem(0, item0);
@@ -196,7 +231,16 @@ void PowerManager::initUI()
insertItem(3, item3);
setItemWidget(item3, suspendWidget);
}
-
+
+ if(m_power->canHibernate()){
+ QListWidgetItem *item = new QListWidgetItem();
+ item->setSizeHint(QSize(ITEM_WIDTH, ITEM_HEIGHT));
+ if(m_power->canSuspend())
+ insertItem(4, item);
+ else
+ insertItem(3, item);
+ setItemWidget(item,hibernateWidget);
+ }
adjustSize();
}
diff --git a/ukui-greeter/greeter/powerwindow.h b/ukui-greeter/greeter/powerwindow.h
index daabfb4..1616485 100755
--- a/ukui-greeter/greeter/powerwindow.h
+++ b/ukui-greeter/greeter/powerwindow.h
@@ -47,6 +47,7 @@ private:
QWidget *suspendWidget;
QWidget *rebootWidget;
QWidget *shutdownWidget;
+ QWidget *hibernateWidget;
QLightDM::PowerInterface *m_power;
QTime lasttime;
@@ -56,6 +57,7 @@ private:
void suspendWidgetCliced();
void rebootWidgetClicked();
void shutdownWidgetClicked();
+ void hibernateWidgetClicked();
private Q_SLOTS:
void powerClicked(QListWidgetItem *item);
diff --git a/ukui-greeter/greeter/sessionwindow.cpp b/ukui-greeter/greeter/sessionwindow.cpp
index 8f63355..4940003 100755
--- a/ukui-greeter/greeter/sessionwindow.cpp
+++ b/ukui-greeter/greeter/sessionwindow.cpp
@@ -69,8 +69,6 @@ void SessionWindow::addSessionLabels()
for(int i = 0; i < m_sessionsModel->rowCount(); i++) {
QString sessionName = m_sessionsModel->index(i, 0).data().toString();
QString sessionKey = m_sessionsModel->index(i, 0).data(Qt::UserRole).toString();
- if(sessionKey == "xinit-compat")
- continue;
QAction *action = new QAction(QIcon(getSessionIcon(sessionKey)), sessionName, this);
action->setData(sessionKey);
addAction(action);
diff --git a/ukui-greeter/image.qrc b/ukui-greeter/image.qrc
index 05889c9..a88f3ae 100755
--- a/ukui-greeter/image.qrc
+++ b/ukui-greeter/image.qrc
@@ -17,8 +17,9 @@
<file>images/prev-40.png</file>
<file>images/reboot.png</file>
<file>images/shutdown.png</file>
- <file>images/sleep.png</file>
<file>images/waiting.png</file>
+ <file>images/suspend.png</file>
+ <file>images/hibernate.png</file>
<file>images/show-password.png</file>
<file>images/hide-password.png</file>
<file>images/login-button.png</file>
diff --git a/ukui-greeter/translations/es.ts b/ukui-greeter/translations/es.ts
index 6d26d1f..e049bd8 100755
--- a/ukui-greeter/translations/es.ts
+++ b/ukui-greeter/translations/es.ts
@@ -227,6 +227,10 @@
<source>Sleep</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Suspend</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PowerWindow</name>
diff --git a/ukui-greeter/translations/fr.ts b/ukui-greeter/translations/fr.ts
index 5b72883..e19a849 100755
--- a/ukui-greeter/translations/fr.ts
+++ b/ukui-greeter/translations/fr.ts
@@ -227,6 +227,10 @@
<source>Sleep</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Suspend</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PowerWindow</name>
diff --git a/ukui-greeter/translations/pt.ts b/ukui-greeter/translations/pt.ts
index e10359c..0bceb68 100755
--- a/ukui-greeter/translations/pt.ts
+++ b/ukui-greeter/translations/pt.ts
@@ -227,6 +227,10 @@
<source>Sleep</source>
<translation type="unfinished"></translation>
</message>
+ <message>
+ <source>Suspend</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>PowerWindow</name>
diff --git a/ukui-greeter/translations/ru.ts b/ukui-greeter/translations/ru.ts
index e130d7a..a6daaa2 100755
--- a/ukui-greeter/translations/ru.ts
+++ b/ukui-greeter/translations/ru.ts
@@ -225,22 +225,27 @@
<context>
<name>PowerManager</name>
<message>
- <location filename="../greeter/powerwindow.cpp" line="131"/>
+ <location filename="../greeter/powerwindow.cpp" line="151"/>
<source>Switch User</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="171"/>
+ <location filename="../greeter/powerwindow.cpp" line="191"/>
+ <source>Suspend</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../greeter/powerwindow.cpp" line="206"/>
<source>Sleep</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="144"/>
+ <location filename="../greeter/powerwindow.cpp" line="164"/>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="157"/>
+ <location filename="../greeter/powerwindow.cpp" line="177"/>
<source>Power Off</source>
<translation type="unfinished"></translation>
</message>
diff --git a/ukui-greeter/translations/tr.ts b/ukui-greeter/translations/tr.ts
index 9c4a308..038cb99 100755
--- a/ukui-greeter/translations/tr.ts
+++ b/ukui-greeter/translations/tr.ts
@@ -284,26 +284,27 @@
<translation type="vanished">Kullanıcı Değiştir</translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="131"/>
+ <location filename="../greeter/powerwindow.cpp" line="151"/>
<source>Switch User</source>
<translation>Kullanıcı Değiştir</translation>
</message>
<message>
+ <location filename="../greeter/powerwindow.cpp" line="191"/>
<source>Suspend</source>
- <translation type="vanished">Askıya Al</translation>
+ <translation>Askıya Al</translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="171"/>
+ <location filename="../greeter/powerwindow.cpp" line="206"/>
<source>Sleep</source>
<translation>Uyku Modu</translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="144"/>
+ <location filename="../greeter/powerwindow.cpp" line="164"/>
<source>Restart</source>
<translation>Yeniden Başlat</translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="157"/>
+ <location filename="../greeter/powerwindow.cpp" line="177"/>
<source>Power Off</source>
<translation>Bilgisayarı Kapat</translation>
</message>
diff --git a/ukui-greeter/translations/zh_CN.ts b/ukui-greeter/translations/zh_CN.ts
index 751fa8f..d125780 100755
--- a/ukui-greeter/translations/zh_CN.ts
+++ b/ukui-greeter/translations/zh_CN.ts
@@ -296,26 +296,27 @@
<translation type="vanished">切换用户</translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="131"/>
+ <location filename="../greeter/powerwindow.cpp" line="151"/>
<source>Switch User</source>
<translation>切换用户</translation>
</message>
<message>
+ <location filename="../greeter/powerwindow.cpp" line="191"/>
<source>Suspend</source>
- <translation type="vanished">挂起</translation>
+ <translation>挂起</translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="171"/>
+ <location filename="../greeter/powerwindow.cpp" line="206"/>
<source>Sleep</source>
<translation>睡眠</translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="144"/>
+ <location filename="../greeter/powerwindow.cpp" line="164"/>
<source>Restart</source>
<translation>重启</translation>
</message>
<message>
- <location filename="../greeter/powerwindow.cpp" line="157"/>
+ <location filename="../greeter/powerwindow.cpp" line="177"/>
<source>Power Off</source>
<translation>关机</translation>
</message>
diff --git a/ukui-greeter/ukui-greeter.pro b/ukui-greeter/ukui-greeter.pro
index 929ef7b..a71b2d8 100755
--- a/ukui-greeter/ukui-greeter.pro
+++ b/ukui-greeter/ukui-greeter.pro
@@ -79,7 +79,7 @@ TRANSLATIONS += translations/zh_CN.ts \
translations/tr.ts \
translations/es.ts
-system("lrelease-qt5 translations/*.ts")
+system("lrelease translations/*.ts")
qm_file.files = translations/*.qm
qm_file.path = $${PREFIX}/translations/
--
2.30.0