From 0e530957ee07705b666c88346a52f68c6e35fc1a Mon Sep 17 00:00:00 2001 From: huayadong 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 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 #include #include -#include #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 #include #include -#include #include #include #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 @@ images/prev-40.png images/reboot.png images/shutdown.png - images/sleep.png images/waiting.png + images/suspend.png + images/hibernate.png images/show-password.png images/hide-password.png images/login-button.png 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 @@ Sleep + + Suspend + + PowerWindow 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 @@ Sleep + + Suspend + + PowerWindow 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 @@ Sleep + + Suspend + + PowerWindow 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 @@ PowerManager - + Switch User - + + Suspend + + + + Sleep - + Restart - + Power Off 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 @@ Kullanıcı Değiştir - + Switch User Kullanıcı Değiştir + Suspend - Askıya Al + Askıya Al - + Sleep Uyku Modu - + Restart Yeniden Başlat - + Power Off Bilgisayarı Kapat 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 @@ 切换用户 - + Switch User 切换用户 + Suspend - 挂起 + 挂起 - + Sleep 睡眠 - + Restart 重启 - + Power Off 关机 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