merge from upstream/3.22.1.3

This commit is contained in:
winnerym 2022-12-08 14:17:28 +08:00
parent cd9e86eb9c
commit 31b191d345
41 changed files with 2557 additions and 1335 deletions

View File

@ -5,12 +5,10 @@ find_package(Qt5 COMPONENTS Core Widgets DBus X11Extras Xml Network Svg)
find_package(PkgConfig REQUIRED)
find_package(OpenCV REQUIRED)
find_package(PkgConfig)
find_package(KF5Screen REQUIRED)
find_package(KF5Wayland REQUIRED)
pkg_check_modules(GIOUNIX2 REQUIRED gio-unix-2.0)
pkg_check_modules(GLIB2 REQUIRED glib-2.0 gio-2.0)
pkg_check_modules(KScreen REQUIRED kscreen2)
pkg_check_modules(kylin-nm-base REQUIRED kylin-nm-base)
# intel
option (USE_INTEL "intel项目" OFF)

View File

@ -22,7 +22,6 @@
#include <QSettings>
#include <QMimeDatabase>
#include <QPainter>
#include <QPainterPath>
#include <QFileInfo>
#include <QFontMetrics>
#include "commonfunc.h"

View File

@ -2470,7 +2470,6 @@ void KylinNM::enWifiDone()
qDebug()<<"debug: already turn on the switch of wifi network";
syslog(LOG_DEBUG, "Already turn on the switch of wifi network");
QTimer::singleShot(200, this, &KylinNM::onConnectChanged);
}
void KylinNM::disWifiDone()
{

View File

@ -4,4 +4,3 @@ install(FILES ukui-screensaver.directory DESTINATION /usr/share/desktop-director
install(FILES ukui-screensavers.menu DESTINATION /etc/xdg/menus)
install(FILES ukui-screensaver-qt DESTINATION /etc/pam.d)
install(FILES screensaver-startup.sh DESTINATION /usr/bin)
install(FILES ukui-screensaver-dialog.desktop DESTINATION /usr/share/applications)

View File

@ -166,7 +166,7 @@
<description>Allow the session status message to be displayed when the screen is locked.</description>
</key>
<key name="background" type="s">
<default>'/usr/share/backgrounds/1-openkylin.jpg'</default>
<default>'/usr/share/backgrounds/1-warty-final-ubuntukylin.jpg'</default>
<summary>the background iamge of lockscreen</summary>
<description>Allow the user to set the background iamge of lockscreen.</description>
</key>

View File

@ -1,15 +0,0 @@
[Desktop Entry]
Type=Application
Name=Lockscreen Dialog
Name[tr]=Ekran pencere
Name[zh_CN]=锁屏窗口程序
Name[zh_HK]=鎖屏窗口程式
Name[zh_TW]=鎖屏窗口程式
Comment[tr]=Ekran kilidini ve kurtarıcı göster
Comment[zh_CN]=展示屏幕锁定和保护程序
Comment[zh_TW]=展示屏幕鎖定和保護程式
Exec=/usr/bin/ukui-screensaver-dialog
NoDisplay=true
OnlyShowIn=UKUI
X-KDE-Wayland-Interfaces=org_kde_plasma_window_management,org_kde_kwin_keystate

View File

@ -17,4 +17,3 @@ X-UKUI-Bugzilla-Product=ukui-screensaver
X-UKUI-Bugzilla-Component=general
X-UKUI-Bugzilla-Version=1.0.0
OnlyShowIn=UKUI
X-UKUI-AutoRestart=true

View File

@ -4,108 +4,108 @@
<context>
<name>AuthDialog</name>
<message>
<location filename="../src/authdialog.cpp" line="653"/>
<location filename="../src/authdialog.cpp" line="656"/>
<source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="251"/>
<location filename="../src/authdialog.cpp" line="252"/>
<location filename="../src/authdialog.cpp" line="315"/>
<location filename="../src/authdialog.cpp" line="248"/>
<location filename="../src/authdialog.cpp" line="249"/>
<location filename="../src/authdialog.cpp" line="316"/>
<location filename="../src/authdialog.cpp" line="317"/>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="260"/>
<location filename="../src/authdialog.cpp" line="261"/>
<location filename="../src/authdialog.cpp" line="324"/>
<location filename="../src/authdialog.cpp" line="258"/>
<location filename="../src/authdialog.cpp" line="259"/>
<location filename="../src/authdialog.cpp" line="325"/>
<location filename="../src/authdialog.cpp" line="326"/>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="268"/>
<location filename="../src/authdialog.cpp" line="269"/>
<location filename="../src/authdialog.cpp" line="270"/>
<location filename="../src/authdialog.cpp" line="333"/>
<location filename="../src/authdialog.cpp" line="334"/>
<location filename="../src/authdialog.cpp" line="335"/>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="449"/>
<location filename="../src/authdialog.cpp" line="455"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="454"/>
<location filename="../src/authdialog.cpp" line="460"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="459"/>
<location filename="../src/authdialog.cpp" line="465"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="464"/>
<location filename="../src/authdialog.cpp" line="470"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="469"/>
<location filename="../src/authdialog.cpp" line="475"/>
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="474"/>
<location filename="../src/authdialog.cpp" line="480"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="526"/>
<location filename="../src/authdialog.cpp" line="527"/>
<location filename="../src/authdialog.cpp" line="533"/>
<location filename="../src/authdialog.cpp" line="534"/>
<source>Password cannot be empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="614"/>
<location filename="../src/authdialog.cpp" line="617"/>
<source>Password </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="616"/>
<location filename="../src/authdialog.cpp" line="619"/>
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="678"/>
<location filename="../src/authdialog.cpp" line="682"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="684"/>
<location filename="../src/authdialog.cpp" line="694"/>
<source>Retry</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="912"/>
<location filename="../src/authdialog.cpp" line="916"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="916"/>
<location filename="../src/authdialog.cpp" line="920"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="922"/>
<location filename="../src/authdialog.cpp" line="926"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="933"/>
<source>NET Exception</source>
<location filename="../src/authdialog.cpp" line="937"/>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -253,32 +253,32 @@
<context>
<name>DeviceType</name>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="42"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="61"/>
<source>FingerPrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="44"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="63"/>
<source>FingerVein</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="46"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="65"/>
<source>Iris</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="48"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="67"/>
<source>Face</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="50"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="69"/>
<source>VoicePrint</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="52"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="71"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
@ -327,7 +327,6 @@
<name>DlgConnHidWifi</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifi.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifi.h" line="122"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -381,7 +380,6 @@
<name>DlgConnHidWifiLeap</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifileap.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifileap.h" line="149"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -465,7 +463,6 @@
<name>DlgConnHidWifiSecFast</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecfast.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisecfast.h" line="216"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -600,7 +597,6 @@
<name>DlgConnHidWifiSecLeap</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecleap.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisecleap.h" line="161"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -699,7 +695,6 @@
<name>DlgConnHidWifiSecPeap</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecpeap.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisecpeap.h" line="249"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -849,7 +844,6 @@
<name>DlgConnHidWifiSecPwd</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecpwd.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisecpwd.h" line="161"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -948,7 +942,6 @@
<name>DlgConnHidWifiSecTls</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisectls.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisectls.h" line="250"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -1092,7 +1085,6 @@
<name>DlgConnHidWifiSecTunnelTLS</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisectunneltls.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisectunneltls.h" line="237"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -1227,7 +1219,6 @@
<name>DlgConnHidWifiWep</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifiwep.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifiwep.h" line="163"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -1331,7 +1322,6 @@
<name>DlgConnHidWifiWpa</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifiwpa.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifiwpa.h" line="137"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -1390,7 +1380,6 @@
<name>DlgHotspotCreate</name>
<message>
<location filename="../KylinNM/hot-spot/dlghotspotcreate.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlghotspotcreate.h" line="89"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
@ -1473,7 +1462,6 @@
<name>KeyboardWidget</name>
<message>
<location filename="../VirtualKeyboard/src/keyboardwidget.ui" line="29"/>
<location filename="../obj-x86_64-linux-gnu/VirtualKeyboard/VirtualKeyboard_autogen/include/ui_keyboardwidget.h" line="806"/>
<source>KeyboardWidget</source>
<translation type="unfinished"></translation>
</message>
@ -1482,7 +1470,6 @@
<name>KylinNM</name>
<message>
<location filename="../KylinNM/src/kylinnm.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_kylinnm.h" line="136"/>
<source>kylin-nm</source>
<translation type="unfinished"></translation>
</message>
@ -1617,32 +1604,44 @@
<name>LockWidget</name>
<message>
<location filename="../src/lockwidget.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="80"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lockwidget.ui" line="55"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="83"/>
<location filename="../src/lockwidget.ui" line="72"/>
<source>Date</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lockwidget.ui" line="48"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="82"/>
<location filename="../src/lockwidget.ui" line="65"/>
<source>Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lockwidget.cpp" line="523"/>
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lockwidget.cpp" line="727"/>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lockwidget.cpp" line="729"/>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/loginoptionswidget.cpp" line="49"/>
<location filename="../src/loginoptionswidget.cpp" line="57"/>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/loginoptionswidget.cpp" line="504"/>
<location filename="../src/loginoptionswidget.cpp" line="540"/>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
@ -1661,7 +1660,6 @@
<name>OneConnForm</name>
<message>
<location filename="../KylinNM/src/oneconnform.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_oneconnform.h" line="150"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
@ -1723,7 +1721,6 @@
<name>OneLancForm</name>
<message>
<location filename="../KylinNM/src/onelancform.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_onelancform.h" line="127"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
@ -1824,35 +1821,39 @@
<context>
<name>PowerManager</name>
<message>
<location filename="../src/powermanager.cpp" line="217"/>
<location filename="../src/powermanager.cpp" line="307"/>
<source>Log Out</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="200"/>
<location filename="../src/powermanager.cpp" line="290"/>
<source>lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="235"/>
<location filename="../src/powermanager.cpp" line="494"/>
<source>Restart</source>
<location filename="../src/powermanager.cpp" line="325"/>
<location filename="../src/powermanager.cpp" line="648"/>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="255"/>
<location filename="../src/powermanager.cpp" line="510"/>
<location filename="../src/powermanager.cpp" line="345"/>
<source>Power Off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="558"/>
<source>Suspend</source>
<location filename="../src/powermanager.cpp" line="666"/>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="534"/>
<source>Sleep</source>
<location filename="../src/powermanager.cpp" line="692"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="719"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1872,17 +1873,17 @@
<context>
<name>Screensaver</name>
<message>
<location filename="../screensaver/screensaver.cpp" line="140"/>
<location filename="../screensaver/screensaver.cpp" line="142"/>
<source>Picture does not exist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../screensaver/screensaver.cpp" line="1086"/>
<location filename="../screensaver/screensaver.cpp" line="1199"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../screensaver/screensaver.cpp" line="1242"/>
<location filename="../screensaver/screensaver.cpp" line="1364"/>
<source>You have new notification</source>
<translation type="unfinished"></translation>
</message>
@ -1890,8 +1891,51 @@
<context>
<name>SleepTime</name>
<message>
<location filename="../screensaver/sleeptime.cpp" line="70"/>
<source>You have rested:</source>
<location filename="../screensaver/sleeptime.cpp" line="64"/>
<source>You have rested</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SureWindow</name>
<message>
<location filename="../src/surewindow.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.ui" line="56"/>
<source>TextLabel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.ui" line="157"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.ui" line="176"/>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.cpp" line="40"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.cpp" line="43"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.cpp" line="46"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.cpp" line="49"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -2043,8 +2087,8 @@
</message>
<message>
<location filename="../src/ukui-screensaver-command.cpp" line="47"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="184"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="186"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="164"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="166"/>
<source>lock the screen immediately</source>
<translation type="unfinished"></translation>
</message>
@ -2064,23 +2108,23 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="179"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="159"/>
<source>Dialog for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="188"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="168"/>
<source>activated by session idle signal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="190"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="194"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="170"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="174"/>
<source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="192"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="172"/>
<source>show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>

File diff suppressed because it is too large Load Diff

View File

@ -83,10 +83,6 @@
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>NET Exception</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
@ -107,6 +103,10 @@
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioAuthWidget</name>
@ -1376,6 +1376,18 @@
<source>SwitchUser</source>
<translation type="vanished">Cambiar de usuario</translation>
</message>
<message>
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
@ -1534,10 +1546,6 @@
<source>Log Out</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Power Off</source>
<translation type="unfinished"></translation>
@ -1547,11 +1555,19 @@
<translation type="unfinished"></translation>
</message>
<message>
<source>Sleep</source>
<source>lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>lock</source>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1584,7 +1600,42 @@
<context>
<name>SleepTime</name>
<message>
<source>You have rested:</source>
<source>You have rested</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SureWindow</name>
<message>
<source>Form</source>
<translation type="unfinished">Formar</translation>
</message>
<message>
<source>TextLabel</source>
<translation type="unfinished">TextLabel</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>

View File

@ -83,10 +83,6 @@
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>NET Exception</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
@ -107,6 +103,10 @@
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioAuthWidget</name>
@ -1376,6 +1376,18 @@
<source>SwitchUser</source>
<translation type="vanished">Changer d&apos;utilisateur</translation>
</message>
<message>
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
@ -1534,10 +1546,6 @@
<source>Log Out</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Power Off</source>
<translation type="unfinished"></translation>
@ -1547,11 +1555,19 @@
<translation type="unfinished"></translation>
</message>
<message>
<source>Sleep</source>
<source>lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>lock</source>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1584,7 +1600,42 @@
<context>
<name>SleepTime</name>
<message>
<source>You have rested:</source>
<source>You have rested</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SureWindow</name>
<message>
<source>Form</source>
<translation type="unfinished">Forme</translation>
</message>
<message>
<source>TextLabel</source>
<translation type="unfinished">TextLabel</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>

View File

@ -83,10 +83,6 @@
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>NET Exception</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
@ -107,6 +103,10 @@
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioAuthWidget</name>
@ -1376,6 +1376,18 @@
<source>SwitchUser</source>
<translation type="vanished">Mudar de utilizador</translation>
</message>
<message>
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
@ -1534,10 +1546,6 @@
<source>Log Out</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Power Off</source>
<translation type="unfinished"></translation>
@ -1547,11 +1555,19 @@
<translation type="unfinished"></translation>
</message>
<message>
<source>Sleep</source>
<source>lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>lock</source>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1584,7 +1600,42 @@
<context>
<name>SleepTime</name>
<message>
<source>You have rested:</source>
<source>You have rested</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SureWindow</name>
<message>
<source>Form</source>
<translation type="unfinished">Formato</translation>
</message>
<message>
<source>TextLabel</source>
<translation type="unfinished">TextLabel</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>

View File

@ -83,10 +83,6 @@
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>NET Exception</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
@ -107,6 +103,10 @@
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BioAuthWidget</name>
@ -1376,6 +1376,18 @@
<source>SwitchUser</source>
<translation type="vanished">Сменить пользователя</translation>
</message>
<message>
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
@ -1534,10 +1546,6 @@
<source>Log Out</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Power Off</source>
<translation type="unfinished"></translation>
@ -1547,11 +1555,19 @@
<translation type="unfinished"></translation>
</message>
<message>
<source>Sleep</source>
<source>lock</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>lock</source>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1584,7 +1600,42 @@
<context>
<name>SleepTime</name>
<message>
<source>You have rested:</source>
<source>You have rested</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SureWindow</name>
<message>
<source>Form</source>
<translation type="unfinished">форма</translation>
</message>
<message>
<source>TextLabel</source>
<translation type="unfinished">TextLabel</translation>
</message>
<message>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>

View File

@ -16,7 +16,7 @@
<translation type="obsolete">Parola</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="684"/>
<location filename="../src/authdialog.cpp" line="694"/>
<source>Retry</source>
<translation type="unfinished">Yeniden Dene</translation>
</message>
@ -41,103 +41,103 @@
<translation type="vanished">Kimlik doğrulama hatası, hala %1 kalan denemen var</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="653"/>
<location filename="../src/authdialog.cpp" line="656"/>
<source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="251"/>
<location filename="../src/authdialog.cpp" line="252"/>
<location filename="../src/authdialog.cpp" line="315"/>
<location filename="../src/authdialog.cpp" line="248"/>
<location filename="../src/authdialog.cpp" line="249"/>
<location filename="../src/authdialog.cpp" line="316"/>
<location filename="../src/authdialog.cpp" line="317"/>
<source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="260"/>
<location filename="../src/authdialog.cpp" line="261"/>
<location filename="../src/authdialog.cpp" line="324"/>
<location filename="../src/authdialog.cpp" line="258"/>
<location filename="../src/authdialog.cpp" line="259"/>
<location filename="../src/authdialog.cpp" line="325"/>
<location filename="../src/authdialog.cpp" line="326"/>
<source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="268"/>
<location filename="../src/authdialog.cpp" line="269"/>
<location filename="../src/authdialog.cpp" line="270"/>
<location filename="../src/authdialog.cpp" line="333"/>
<location filename="../src/authdialog.cpp" line="334"/>
<location filename="../src/authdialog.cpp" line="335"/>
<source>Account locked permanently.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="449"/>
<location filename="../src/authdialog.cpp" line="455"/>
<source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="454"/>
<location filename="../src/authdialog.cpp" line="460"/>
<source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="459"/>
<location filename="../src/authdialog.cpp" line="465"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="464"/>
<location filename="../src/authdialog.cpp" line="470"/>
<source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="469"/>
<location filename="../src/authdialog.cpp" line="475"/>
<source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="474"/>
<location filename="../src/authdialog.cpp" line="480"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="526"/>
<location filename="../src/authdialog.cpp" line="527"/>
<location filename="../src/authdialog.cpp" line="533"/>
<location filename="../src/authdialog.cpp" line="534"/>
<source>Password cannot be empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="614"/>
<location filename="../src/authdialog.cpp" line="617"/>
<source>Password </source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="616"/>
<location filename="../src/authdialog.cpp" line="619"/>
<source>Input Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="678"/>
<location filename="../src/authdialog.cpp" line="682"/>
<source>Login</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="912"/>
<location filename="../src/authdialog.cpp" line="916"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="916"/>
<location filename="../src/authdialog.cpp" line="920"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="922"/>
<location filename="../src/authdialog.cpp" line="926"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="933"/>
<source>NET Exception</source>
<location filename="../src/authdialog.cpp" line="937"/>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
<message>
@ -335,32 +335,32 @@
<context>
<name>DeviceType</name>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="42"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="61"/>
<source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="44"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="63"/>
<source>FingerVein</source>
<translation type="unfinished">Parmak Damarı</translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="46"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="65"/>
<source>Iris</source>
<translation type="unfinished">Göz</translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="48"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="67"/>
<source>Face</source>
<translation type="unfinished">Yüz</translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="50"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="69"/>
<source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="52"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="71"/>
<source>QRCode</source>
<translation type="unfinished"></translation>
</message>
@ -409,7 +409,6 @@
<name>DlgConnHidWifi</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifi.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifi.h" line="122"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -463,7 +462,6 @@
<name>DlgConnHidWifiLeap</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifileap.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifileap.h" line="149"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -547,7 +545,6 @@
<name>DlgConnHidWifiSecFast</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecfast.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisecfast.h" line="216"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -682,7 +679,6 @@
<name>DlgConnHidWifiSecLeap</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecleap.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisecleap.h" line="161"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -781,7 +777,6 @@
<name>DlgConnHidWifiSecPeap</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecpeap.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisecpeap.h" line="249"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -931,7 +926,6 @@
<name>DlgConnHidWifiSecPwd</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecpwd.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisecpwd.h" line="161"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -1030,7 +1024,6 @@
<name>DlgConnHidWifiSecTls</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisectls.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisectls.h" line="250"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -1174,7 +1167,6 @@
<name>DlgConnHidWifiSecTunnelTLS</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisectunneltls.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifisectunneltls.h" line="237"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -1309,7 +1301,6 @@
<name>DlgConnHidWifiWep</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifiwep.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifiwep.h" line="163"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -1413,7 +1404,6 @@
<name>DlgConnHidWifiWpa</name>
<message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifiwpa.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlgconnhidwifiwpa.h" line="137"/>
<source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation>
</message>
@ -1472,7 +1462,6 @@
<name>DlgHotspotCreate</name>
<message>
<location filename="../KylinNM/hot-spot/dlghotspotcreate.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_dlghotspotcreate.h" line="89"/>
<source>Dialog</source>
<translation type="unfinished"></translation>
</message>
@ -1555,7 +1544,6 @@
<name>KeyboardWidget</name>
<message>
<location filename="../VirtualKeyboard/src/keyboardwidget.ui" line="29"/>
<location filename="../obj-x86_64-linux-gnu/VirtualKeyboard/VirtualKeyboard_autogen/include/ui_keyboardwidget.h" line="806"/>
<source>KeyboardWidget</source>
<translation type="unfinished"></translation>
</message>
@ -1564,7 +1552,6 @@
<name>KylinNM</name>
<message>
<location filename="../KylinNM/src/kylinnm.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_kylinnm.h" line="136"/>
<source>kylin-nm</source>
<translation type="unfinished"></translation>
</message>
@ -1699,19 +1686,16 @@
<name>LockWidget</name>
<message>
<location filename="../src/lockwidget.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="80"/>
<source>Form</source>
<translation></translation>
</message>
<message>
<location filename="../src/lockwidget.ui" line="55"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="83"/>
<location filename="../src/lockwidget.ui" line="72"/>
<source>Date</source>
<translation type="unfinished">Tarih</translation>
</message>
<message>
<location filename="../src/lockwidget.ui" line="48"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="82"/>
<location filename="../src/lockwidget.ui" line="65"/>
<source>Time</source>
<translation type="unfinished">Zaman</translation>
</message>
@ -1723,11 +1707,26 @@
<source>SwitchUser</source>
<translation type="vanished">Kullanıcı Değiştir</translation>
</message>
<message>
<location filename="../src/lockwidget.cpp" line="523"/>
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lockwidget.cpp" line="727"/>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lockwidget.cpp" line="729"/>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/loginoptionswidget.cpp" line="49"/>
<location filename="../src/loginoptionswidget.cpp" line="57"/>
<source>Login Options</source>
<translation type="unfinished"></translation>
</message>
@ -1736,7 +1735,7 @@
<translation type="obsolete">Parola</translation>
</message>
<message>
<location filename="../src/loginoptionswidget.cpp" line="504"/>
<location filename="../src/loginoptionswidget.cpp" line="540"/>
<source>Identify device removed!</source>
<translation type="unfinished"></translation>
</message>
@ -1755,7 +1754,6 @@
<name>OneConnForm</name>
<message>
<location filename="../KylinNM/src/oneconnform.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_oneconnform.h" line="150"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
@ -1817,7 +1815,6 @@
<name>OneLancForm</name>
<message>
<location filename="../KylinNM/src/onelancform.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_onelancform.h" line="127"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
@ -1918,7 +1915,7 @@
<context>
<name>PowerManager</name>
<message>
<location filename="../src/powermanager.cpp" line="200"/>
<location filename="../src/powermanager.cpp" line="290"/>
<source>lock</source>
<translation>kilit</translation>
</message>
@ -1947,30 +1944,38 @@
<translation type="obsolete">Kullanıcı Değiştir</translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="217"/>
<location filename="../src/powermanager.cpp" line="307"/>
<source>Log Out</source>
<translation type="unfinished">Çıkış</translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="235"/>
<location filename="../src/powermanager.cpp" line="494"/>
<source>Restart</source>
<translation type="unfinished">Yeniden Başlat</translation>
<translation type="obsolete">Yeniden Başlat</translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="255"/>
<location filename="../src/powermanager.cpp" line="510"/>
<location filename="../src/powermanager.cpp" line="325"/>
<location filename="../src/powermanager.cpp" line="648"/>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="345"/>
<source>Power Off</source>
<translation type="unfinished">Bilgisayarı Kapat</translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="558"/>
<source>Suspend</source>
<location filename="../src/powermanager.cpp" line="666"/>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="534"/>
<source>Sleep</source>
<location filename="../src/powermanager.cpp" line="692"/>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="719"/>
<source>Suspend</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -1998,17 +2003,17 @@
<translation type="obsolete">çıkış</translation>
</message>
<message>
<location filename="../screensaver/screensaver.cpp" line="140"/>
<location filename="../screensaver/screensaver.cpp" line="142"/>
<source>Picture does not exist</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../screensaver/screensaver.cpp" line="1086"/>
<location filename="../screensaver/screensaver.cpp" line="1199"/>
<source>View</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../screensaver/screensaver.cpp" line="1242"/>
<location filename="../screensaver/screensaver.cpp" line="1364"/>
<source>You have new notification</source>
<translation type="unfinished"></translation>
</message>
@ -2024,8 +2029,51 @@
<context>
<name>SleepTime</name>
<message>
<location filename="../screensaver/sleeptime.cpp" line="70"/>
<source>You have rested:</source>
<location filename="../screensaver/sleeptime.cpp" line="64"/>
<source>You have rested</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SureWindow</name>
<message>
<location filename="../src/surewindow.ui" line="14"/>
<source>Form</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.ui" line="56"/>
<source>TextLabel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.ui" line="157"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.ui" line="176"/>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.cpp" line="40"/>
<source>The following program is running to prevent the system from reboot!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.cpp" line="43"/>
<source>The following program is running to prevent the system from shutting down!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.cpp" line="46"/>
<source>The following program is running to prevent the system from suspend!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.cpp" line="49"/>
<source>The following program is running to prevent the system from hibernate!</source>
<translation type="unfinished"></translation>
</message>
</context>
@ -2157,8 +2205,8 @@
</message>
<message>
<location filename="../src/ukui-screensaver-command.cpp" line="47"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="184"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="186"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="164"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="166"/>
<source>lock the screen immediately</source>
<translation type="unfinished">Ekranı hemen kilitle</translation>
</message>
@ -2178,23 +2226,23 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="179"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="159"/>
<source>Dialog for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="188"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="168"/>
<source>activated by session idle signal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="190"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="194"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="170"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="174"/>
<source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="192"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="172"/>
<source>show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>

View File

@ -16,7 +16,7 @@
<translation type="obsolete">使</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="681"/>
<location filename="../src/authdialog.cpp" line="696"/>
<source>Retry</source>
<translation></translation>
</message>
@ -45,66 +45,66 @@
<translation type="vanished">%1%2</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="251"/>
<location filename="../src/authdialog.cpp" line="252"/>
<location filename="../src/authdialog.cpp" line="315"/>
<location filename="../src/authdialog.cpp" line="248"/>
<location filename="../src/authdialog.cpp" line="249"/>
<location filename="../src/authdialog.cpp" line="316"/>
<location filename="../src/authdialog.cpp" line="317"/>
<source>Please try again in %1 minutes.</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="260"/>
<location filename="../src/authdialog.cpp" line="261"/>
<location filename="../src/authdialog.cpp" line="324"/>
<location filename="../src/authdialog.cpp" line="258"/>
<location filename="../src/authdialog.cpp" line="259"/>
<location filename="../src/authdialog.cpp" line="325"/>
<location filename="../src/authdialog.cpp" line="326"/>
<source>Please try again in %1 seconds.</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="268"/>
<location filename="../src/authdialog.cpp" line="269"/>
<location filename="../src/authdialog.cpp" line="270"/>
<location filename="../src/authdialog.cpp" line="333"/>
<location filename="../src/authdialog.cpp" line="334"/>
<location filename="../src/authdialog.cpp" line="335"/>
<source>Account locked permanently.</source>
<translation></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="449"/>
<location filename="../src/authdialog.cpp" line="455"/>
<source>Verify face recognition or enter password to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="454"/>
<location filename="../src/authdialog.cpp" line="460"/>
<source>Press fingerprint or enter password to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="459"/>
<location filename="../src/authdialog.cpp" line="465"/>
<source>Verify voiceprint or enter password to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="464"/>
<location filename="../src/authdialog.cpp" line="470"/>
<source>Verify finger vein or enter password to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="469"/>
<location filename="../src/authdialog.cpp" line="475"/>
<source>Verify iris or enter password to unlock</source>
<translation></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="613"/>
<location filename="../src/authdialog.cpp" line="619"/>
<source>Input Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="909"/>
<location filename="../src/authdialog.cpp" line="916"/>
<source>Failed to verify %1, please enter password to unlock</source>
<translation>%1</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="913"/>
<location filename="../src/authdialog.cpp" line="920"/>
<source>Unable to verify %1, please enter password to unlock</source>
<translation>%1</translation>
</message>
@ -118,8 +118,8 @@
<translation type="vanished">使</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="527"/>
<location filename="../src/authdialog.cpp" line="528"/>
<location filename="../src/authdialog.cpp" line="533"/>
<location filename="../src/authdialog.cpp" line="534"/>
<source>Password cannot be empty</source>
<translation></translation>
</message>
@ -132,7 +132,7 @@
<translation type="vanished">%1.</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="919"/>
<location filename="../src/authdialog.cpp" line="926"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1%2</translation>
</message>
@ -145,9 +145,8 @@
<translation type="vanished">/%1</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="930"/>
<source>NET Exception</source>
<translation></translation>
<translation type="vanished"></translation>
</message>
<message>
<source>Password Incorrect, Please try again</source>
@ -162,22 +161,22 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="650"/>
<location filename="../src/authdialog.cpp" line="656"/>
<source>Authentication failure, Please try again</source>
<translation></translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="474"/>
<location filename="../src/authdialog.cpp" line="480"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>使</translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="611"/>
<location filename="../src/authdialog.cpp" line="617"/>
<source>Password </source>
<translation> </translation>
</message>
<message>
<location filename="../src/authdialog.cpp" line="675"/>
<location filename="../src/authdialog.cpp" line="682"/>
<source>Login</source>
<translation></translation>
</message>
@ -421,32 +420,32 @@
<context>
<name>DeviceType</name>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="42"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="61"/>
<source>FingerPrint</source>
<translation></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="44"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="63"/>
<source>FingerVein</source>
<translation></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="46"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="65"/>
<source>Iris</source>
<translation></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="48"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="67"/>
<source>Face</source>
<translation></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="50"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="69"/>
<source>VoicePrint</source>
<translation></translation>
</message>
<message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="52"/>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="71"/>
<source>QRCode</source>
<translation></translation>
</message>
@ -2045,12 +2044,12 @@
<translation></translation>
</message>
<message>
<location filename="../src/lockwidget.ui" line="55"/>
<location filename="../src/lockwidget.ui" line="72"/>
<source>Date</source>
<translation></translation>
</message>
<message>
<location filename="../src/lockwidget.ui" line="48"/>
<location filename="../src/lockwidget.ui" line="65"/>
<source>Time</source>
<translation></translation>
</message>
@ -2081,7 +2080,7 @@
<context>
<name>LoginOptionsWidget</name>
<message>
<location filename="../src/loginoptionswidget.cpp" line="49"/>
<location filename="../src/loginoptionswidget.cpp" line="57"/>
<source>Login Options</source>
<translation></translation>
</message>
@ -2094,7 +2093,7 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/loginoptionswidget.cpp" line="504"/>
<location filename="../src/loginoptionswidget.cpp" line="540"/>
<source>Identify device removed!</source>
<translation>!</translation>
</message>
@ -2302,7 +2301,7 @@
<context>
<name>PowerManager</name>
<message>
<location filename="../src/powermanager.cpp" line="380"/>
<location filename="../src/powermanager.cpp" line="290"/>
<source>lock</source>
<translation></translation>
</message>
@ -2331,13 +2330,12 @@
<translation type="vanished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="397"/>
<location filename="../src/powermanager.cpp" line="307"/>
<source>Log Out</source>
<translation></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="415"/>
<location filename="../src/powermanager.cpp" line="699"/>
<location filename="../src/powermanager.cpp" line="325"/>
<source>Restart</source>
<translation></translation>
</message>
@ -2352,17 +2350,17 @@
<translation></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="717"/>
<location filename="../src/powermanager.cpp" line="666"/>
<source>Shut Down</source>
<translation></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="743"/>
<location filename="../src/powermanager.cpp" line="692"/>
<source>Hibernate</source>
<translation></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="770"/>
<location filename="../src/powermanager.cpp" line="719"/>
<source>Suspend</source>
<translation></translation>
</message>
@ -2404,7 +2402,7 @@
<translation type="vanished">退</translation>
</message>
<message>
<location filename="../screensaver/screensaver.cpp" line="140"/>
<location filename="../screensaver/screensaver.cpp" line="142"/>
<source>Picture does not exist</source>
<translation></translation>
</message>
@ -2421,12 +2419,12 @@
<translation type="obsolete">%1</translation>
</message>
<message>
<location filename="../screensaver/screensaver.cpp" line="1289"/>
<location filename="../screensaver/screensaver.cpp" line="1364"/>
<source>You have new notification</source>
<translation></translation>
</message>
<message>
<location filename="../screensaver/screensaver.cpp" line="1133"/>
<location filename="../screensaver/screensaver.cpp" line="1199"/>
<source>View</source>
<translation></translation>
</message>
@ -2434,9 +2432,8 @@
<context>
<name>SleepTime</name>
<message>
<location filename="../screensaver/sleeptime.cpp" line="70"/>
<source>You have rested:</source>
<translation>:</translation>
<translation type="vanished">:</translation>
</message>
<message>
<location filename="../screensaver/sleeptime.cpp" line="64"/>
@ -2457,17 +2454,16 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/surewindow.ui" line="108"/>
<location filename="../src/surewindow.ui" line="157"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../src/surewindow.ui" line="127"/>
<location filename="../src/surewindow.ui" line="176"/>
<source>Confirm</source>
<translation></translation>
</message>
<message>
<location filename="../src/surewindow.cpp" line="9"/>
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
<translation type="vanished">退</translation>
</message>
@ -2643,8 +2639,8 @@
</message>
<message>
<location filename="../src/ukui-screensaver-command.cpp" line="47"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="163"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="165"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="164"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="166"/>
<source>lock the screen immediately</source>
<translation></translation>
</message>
@ -2664,23 +2660,23 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="158"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="159"/>
<source>Dialog for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="167"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="168"/>
<source>activated by session idle signal</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="169"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="173"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="170"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="174"/>
<source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="171"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="172"/>
<source>show screensaver immediately</source>
<translation type="unfinished"></translation>
</message>

View File

@ -135,7 +135,7 @@ QString SCConfiguration::getDefaultBackground()
if(ispicture(backgroundFile))
return backgroundFile;
else
return "/usr/share/backgrounds/1-openkylin.jpg";
return "/usr/share/backgrounds/1-warty-final-ubuntukylin.jpg";
}
int SCConfiguration::getTimeType()

View File

@ -531,6 +531,25 @@ void Screensaver::resizeEvent(QResizeEvent */*event*/)
flag = 1;
#ifndef USE_INTEL
if(myTextWidget){
// QColor highLightColor = palette().color(QPalette::Base);
// QString stringColor = QString("rgba(%1,%2,%3,82%)")
// .arg(highLightColor.red())
// .arg(highLightColor.green())
// .arg(highLightColor.blue());
// QColor textColor = palette().color(QPalette::Text);
// QString textString = QString("rgb(%1,%2,%3)")
// .arg(textColor.red())
// .arg(textColor.green())
// .arg(textColor.blue());
// QColor borderColor = palette().color(QPalette::BrightText);
// QString borderString = QString("rgba(%1,%2,%3,85%)")
// .arg(borderColor.red())
// .arg(borderColor.green())
// .arg(borderColor.blue());
// myTextLabel->setStyleSheet(QString("font-size:5px;border-radius: 2px;background: %1;color: %2;padding: 4px 8px 4px 8px;border-width: 1px;border-style: solid;border-color:%3;") \
// .arg(stringColor).arg(textString).arg(borderString));
if(curStyle == "ukui-dark" || curStyle == "ukui-black"){
myTextLabel->setStyleSheet(QString("QLabel{font-size:5px;border-radius: 2px;padding: 4px 8px 4px 8px;border-width: 1px;\
background: rgba(0, 0, 0, %1); color:#FFFFFF; border-radius:16px}").arg(blur_Num * 0.01));
@ -857,12 +876,10 @@ void Screensaver::initUI()
if(qssFile.open(QIODevice::ReadOnly)) {
setStyleSheet(qssFile.readAll());
qDebug()<<qssFile.readAll();
}
qssFile.close();
#ifdef USE_INTEL
m_weatherManager = new WeatherManager(this);
setWeatherLayout();
setDatelayout();
setCenterWidget();

View File

@ -156,7 +156,6 @@ private:
QTimer *movieTimer = nullptr;
int currentCount = 0;
QDateTime m_lastDateTime;
bool bControlFlg = true;
bool isScreensaver = false;
protected:
void paintEvent(QPaintEvent *event);

View File

@ -6,6 +6,7 @@ pkg_check_modules(QGS REQUIRED gsettings-qt)
pkg_check_modules(GLIB REQUIRED glib-2.0)
pkg_check_modules(MMIX REQUIRED libmatemixer)
pkg_check_modules(kylin-nm-base REQUIRED kylin-nm-base)
find_library(PAM_LIBRARIES pam)
@ -26,8 +27,7 @@ include_directories(
${QGS_INCLUDE_DIRS}
${GLIB_INCLUDE_DIRS}
${MMIX_INCLUDE_DIRS}
${MMIX_INCLUDE_DIRS}
${KF5Wayland_LIBRARIES}
${kylin-nm-base_INCLUDE_DIRS}
)
set(EXTRA_LIBS
@ -39,11 +39,9 @@ set(EXTRA_LIBS
${QGS_LIBRARIES}
${GLIB_LIBRARIES}
${MMIX_LIBRARIES}
${KF5Wayland_LIBRARIES}
-lrt
-lpthread
-lKF5WaylandServer
-lKF5WaylandClient
-llibnm-icon-kylin
)
qt5_wrap_ui(dialog_SRC
@ -67,6 +65,7 @@ qt5_wrap_cpp(dialog_SRC
screensaverwidget.h
auth.h
auth-pam.h
authpamthread.h
screensavermode.h
screensaverwndadaptor.h
xeventmonitor.h
@ -97,7 +96,7 @@ qt5_wrap_cpp(dialog_SRC
loginedusers.h
lockchecker.h
servicemanager.h
plasma-shell-manager.h
mytabwidget.h
PhysicalDeviceSet/brightnessdeviceset.h
PhysicalDeviceSet/flightmodeset.h
PhysicalDeviceSet/sounddeviceset.h
@ -117,6 +116,7 @@ set(dialog_SRC
loginoptionswidget.cpp
screensaverwidget.cpp
auth-pam.cpp
authpamthread.cpp
xeventmonitor.cpp
monitorwatcher.cpp
grab-x11.cpp
@ -147,7 +147,7 @@ set(dialog_SRC
loginedusers.cpp
lockchecker.cpp
servicemanager.cpp
plasma-shell-manager.cpp
mytabwidget.cpp
PhysicalDeviceSet/brightnessdeviceset.cpp
PhysicalDeviceSet/flightmodeset.cpp
PhysicalDeviceSet/sounddeviceset.cpp

View File

@ -36,7 +36,6 @@ static int pam_conversation(int msgLength, const struct pam_message **msg,
void sigchld_handler(int signo);
AuthPAM::AuthPAM(QObject *parent)
: Auth(parent),
pid(0),
nPrompts(0),
_isAuthenticated(false),
_isAuthenticating(false)
@ -50,54 +49,33 @@ void AuthPAM::authenticate(const QString &userName)
if(pipe(toParent) || pipe(toChild))
qDebug()<< "create pipe failed: " << strerror(errno);
if((pid = fork()) < 0)
{
qDebug() << "fork error: " << strerror(errno);
}
else if(pid == 0)
{
prctl(PR_SET_PDEATHSIG, SIGHUP);
close(toParent[0]);
close(toChild[1]);
int arg1_int = toParent[1];
int arg2_int = toChild[0];
char arg1[128];
char arg2[128];
sprintf(arg1,"%d",arg1_int);
sprintf(arg2,"%d",arg2_int);
execlp ("ukui-screensaver-checkpass",
"ukui-screensaver-checkpass",
arg1, arg2,userName.toLocal8Bit().data(), NULL);
_exit (EXIT_FAILURE);
}
else
{
close(toParent[1]);
close(toChild[0]);
_isAuthenticating = true;
notifier = new QSocketNotifier(toParent[0], QSocketNotifier::Read);
connect(notifier, &QSocketNotifier::activated, this, &AuthPAM::onSockRead);
}
m_authPamThread = new AuthPamThread();
m_authPamThread->startAuthPam(toChild[0], toParent[1], userName);
_isAuthenticating = true;
notifier = new QSocketNotifier(toParent[0], QSocketNotifier::Read);
connect(notifier, &QSocketNotifier::activated, this, &AuthPAM::onSockRead);
}
void AuthPAM::stopAuth()
{
if(pid != 0)
{
if (m_authPamThread) {
messageList.clear();
responseList.clear();
_isAuthenticating = false;
_isAuthenticated = false;
nPrompts = 0;
::kill(pid, SIGKILL);
close(toParent[0]);
close(toChild[1]);
if(notifier){
notifier->deleteLater();
disconnect(notifier, &QSocketNotifier::activated, this, &AuthPAM::onSockRead);
delete notifier;
notifier = nullptr;
}
pid = 0;
close(toParent[1]);
close(toChild[1]);
m_authPamThread->stopAuthPam();
delete m_authPamThread;
m_authPamThread = nullptr;
close(toParent[0]);
close(toChild[0]);
}
}

View File

@ -22,6 +22,7 @@
#include <QList>
#include <security/pam_appl.h>
#include "authpamthread.h"
typedef struct pam_message PAM_MESSAGE;
typedef struct pam_response PAM_RESPONSE;
@ -47,7 +48,7 @@ private Q_SLOTS:
private:
QString userName;
pid_t pid;
AuthPamThread *m_authPamThread = nullptr;
QSocketNotifier *notifier;
int nPrompts;
QStringList responseList;

View File

@ -37,7 +37,6 @@
#include "commonfunc.h"
#include "loginoptionswidget.h"
#include "servicemanager.h"
#include "uniauthservice.h"
#include "imageutil.h"
AuthDialog::AuthDialog(const UserItem &user, QWidget *parent) :
@ -57,6 +56,12 @@ AuthDialog::AuthDialog(const UserItem &user, QWidget *parent) :
w_timer(nullptr),
m_uniauthService(new UniAuthService(this))
{
setObjectName("AuthDialog");
QFile qssFile(":/qss/assets/authdialog.qss");
if(qssFile.open(QIODevice::ReadOnly)) {
this->setStyleSheet(qssFile.readAll());
}
initUI();
pam_tally_init(); //这里写函数声明
@ -102,24 +107,6 @@ void AuthDialog::stopAuth()
// m_passwdWidget->hide();
}
QPixmap AuthDialog::PixmapToRound(const QPixmap &src, int radius)
{
if (src.isNull()) {
return QPixmap();
}
QPixmap pixmapa(src);
QPixmap pixmap(radius*2,radius*2);
pixmap.fill(Qt::transparent);
QPainter painter(&pixmap);
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
QPainterPath path;
path.addEllipse(0, 0, radius*2, radius*2);
painter.setClipPath(path);
painter.drawPixmap(0, 0, radius*2, radius*2, pixmapa);
return pixmap;
}
void AuthDialog::initUI()
{
if (scale < 0.5) {

View File

@ -30,6 +30,7 @@
#include "users.h"
#include "biometricdeviceinfo.h"
#include "pam-tally.h"
#include "uniauthservice.h"
namespace Ui {
class AuthDialog;
@ -44,7 +45,6 @@ class BiometricAuthWidget;
class BiometricDevicesWidget;
class PamTally;
class LoginOptionsWidget;
class UniAuthService;
enum FOCUS {
REMOVE = 0,
@ -79,7 +79,6 @@ private:
void initBiometricWidget();
void setChildrenGeometry();
void setBiometricWidgetGeometry();
QPixmap PixmapToRound(const QPixmap &src, int radius);
void startBioAuth(unsigned uTimeout = 1000);
void show_authenticated (bool successful = true);
void setLoginTypeTip(QString strLoginTypeTip);

201
src/authpamthread.cpp Normal file
View File

@ -0,0 +1,201 @@
#include "authpamthread.h"
#include <security/pam_appl.h>
#include <unistd.h>
#include <wait.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/prctl.h>
#include <QDebug>
#define PAM_SERVICE_NAME "ukui-screensaver-qt"
static void writeData(int fd, const void *buf, ssize_t count);
static void writeString(int fd, const char *data);
static int readData(int fd, void *buf, size_t count);
static char * readString(int fd);
static int pam_conversation(int msgLength, const struct pam_message **msg,
struct pam_response **resp, void *appData);
AuthPamThread::AuthPamThread(QObject* parent)
: QThread(parent)
{
}
AuthPamThread::~AuthPamThread()
{
}
void AuthPamThread::writeData(int fd, const void *buf, ssize_t count)
{
if (!m_isAuthenticating) {
return;
}
if(write(fd, buf, count) != count)
qDebug() << "write to parent failed: " << strerror(errno);
}
void AuthPamThread::writeString(int fd, const char *data)
{
int length = data ? strlen(data) : -1;
writeData(fd, &length, sizeof(length));
if(data)
writeData(fd, data, sizeof(char) * length);
}
int AuthPamThread::readData(int fd, void *buf, size_t count)
{
ssize_t nRead = 0;
while(true) {
nRead = read(fd, buf, count);
if (!m_isAuthenticating) {
break;
}
if (nRead < 0) {
if (errno == EAGAIN) {
usleep(100*1000);
continue;
} else {
qDebug() << "read data failed: " << strerror(errno) << errno;
}
}
break;
}
return nRead;
}
char* AuthPamThread::readString(int fd)
{
int length;
if(readData(fd, &length, sizeof(length)) <= 0)
return NULL;
if(length <= 0)
length = 0;
char *value = (char *)malloc(sizeof(char) * (length + 1));
readData(fd, value, length);
value[length] = '\0';
return value;
}
static int
pam_conversation(int msgLength, const struct pam_message **msg,
struct pam_response **resp, void *appData)
{
struct pam_response *response = (struct pam_response*)calloc(msgLength,sizeof(struct pam_response));
AuthPamThread* pData = (AuthPamThread*)appData;
if (!pData || pData->m_fdRead < 0 || pData->m_fdWrite < 0) {
return PAM_CONV_ERR;
}
int authComplete = 0;
pData->writeData(pData->m_fdWrite, (const void*)&authComplete, sizeof(authComplete));
pData->writeData(pData->m_fdWrite, (const void*)&msgLength, sizeof(msgLength));
//发送pam消息
for(int i = 0; i < msgLength; i++)
{
const struct pam_message *m = msg[i];
pData->writeData(pData->m_fdWrite, (const void *)&m->msg_style, sizeof(m->msg_style));
pData->writeString(pData->m_fdWrite, m->msg);
}
//读取响应
for(int i = 0; i < msgLength; i++)
{
struct pam_response *r = &response[i];
if (pData->readData(pData->m_fdRead, &r->resp_retcode, sizeof(r->resp_retcode)) < 0) {
break;
}
r->resp = pData->readString(pData->m_fdRead);
}
*resp = response;
return PAM_SUCCESS;
}
void AuthPamThread::_authenticate(const char *userName)
{
qDebug() << "authenticate " << userName;
pam_handle_t *pamh = NULL;
char *newUser = NULL;
int ret;
int authRet;
struct pam_conv conv;
conv.conv = pam_conversation;
conv.appdata_ptr = this;
ret = pam_start(PAM_SERVICE_NAME, userName, &conv, &pamh);
if(ret != PAM_SUCCESS) {
qDebug() << "failed to start PAM: " << pam_strerror(NULL, ret);
}
authRet = pam_authenticate(pamh, 0);
ret = pam_get_item(pamh, PAM_USER, (const void **)&newUser);
if(ret != PAM_SUCCESS) {
pam_end(pamh, 0);
qDebug() << "failed to get username";
}
if(authRet == PAM_SUCCESS) {
/*检测账户有效性,即使密码认证通过,如果账户锁定或无效,也无法解锁*/
authRet = pam_acct_mgmt(pamh, 0);
}
if(authRet != PAM_SUCCESS) {
qDebug() << "failed to acct mgmt " << pam_strerror(NULL, authRet);
}
if (newUser) {
free(newUser);
newUser = NULL;
}
fprintf(stderr, "authentication result: %d\n", authRet);
// 发送认证结果
int authComplete = 1;
writeData(m_fdWrite, (const void*)&authComplete, sizeof(authComplete));
writeData(m_fdWrite, (const void *)&authRet, sizeof(authRet));
qDebug() << "--- 认证完成";
}
void AuthPamThread::startAuthPam(int fdRead, int fdWrite, QString strUserName)
{
if (!isRunning()) {
qDebug()<<"startAuthPam ----";
m_isAuthenticating = true;
int nFlags = fcntl(fdRead, F_GETFL);
nFlags = nFlags | O_NONBLOCK;
fcntl(fdRead, F_SETFL, nFlags);
m_fdRead = fdRead;
m_fdWrite = fdWrite;
m_strUserName = strUserName;
start();
} else {
qDebug()<<"AuthPamThread is running!!";
}
}
void AuthPamThread::run()
{
if (m_fdRead >=0 && m_fdWrite >= 0 && !m_strUserName.isEmpty()) {
_authenticate(m_strUserName.toLocal8Bit().data());
} else {
qDebug()<<"AuthPamThread param error:"<<m_fdRead<<m_fdWrite<<m_strUserName;
}
}
void AuthPamThread::stopAuthPam()
{
qDebug()<<"stopAuthPam begin!";
m_isAuthenticating = false;
if (isRunning()) {
quit();
wait();
}
qDebug()<<"stopAuthPam end";
}

35
src/authpamthread.h Normal file
View File

@ -0,0 +1,35 @@
#ifndef AUTHPAMTHREAD_H
#define AUTHPAMTHREAD_H
#include <QThread>
class AuthPamThread : public QThread
{
Q_OBJECT
public:
AuthPamThread(QObject* parent = nullptr);
virtual ~AuthPamThread();
void startAuthPam(int fdRead, int fdWrite, QString strUserName);
void stopAuthPam();
void writeData(int fd, const void *buf, ssize_t count);
void writeString(int fd, const char *data);
int readData(int fd, void *buf, size_t count);
char *readString(int fd);
protected:
void run();
private:
void _authenticate(const char *userName);
public:
int m_fdRead = -1;
int m_fdWrite = -1;
QString m_strUserName = "";
private:
bool m_isAuthenticating = false;
};
#endif // AUTHPAMTHREAD_H

View File

@ -163,7 +163,6 @@ void BatteryWidget::onBatteryChanged(QStringList args)
} else if (batteryState == 4) {
mStatusLabel->setText(tr("fully charged"));
}
if (batteryState == 4 || batteryState == 1 || batteryState == 5) {
mStatusLabel->setVisible(true);
mModeLabel->setText(tr("PowerMode"));

View File

@ -20,7 +20,6 @@
#include <QFile>
#include <QDir>
#include <QStandardPaths>
#include <QX11Info>
#include <QSettings>
#include <QMimeDatabase>
#include <QGSettings>
@ -206,7 +205,7 @@ QString Configuration::getBackground()
if(ispicture(background))
return background;
return "/usr/share/backgrounds/1-openkylin.jpg";
return "/usr/share/backgrounds/1-warty-final-ubuntukylin.jpg";
}
bool Configuration::lockWhenXScreensaverActivated()

View File

@ -38,7 +38,7 @@ public:
public:
ScreenSaver *getScreensaver();
static Configuration *instance(QObject *parent = nullptr);
QString getBackground();
QString getBackground();
bool lockWhenXScreensaverActivated();
int idlelock();
int idledelay();

View File

@ -32,7 +32,6 @@
#include <QDBusPendingReply>
#include <QDBusReply>
#include <QImageReader>
#include "plasma-shell-manager.h"
#include <QX11Info>
#include "lockwidget.h"
#include <X11/Xatom.h>
@ -256,10 +255,6 @@ FullBackgroundWidget::FullBackgroundWidget(QWidget *parent)
this, SLOT(propertiesChangedSlot(QString, QMap<QString, QVariant>, QStringList)));
#endif
if(QX11Info::isPlatformX11()){
xEventMonitor = new XEventMonitor(this);
}
init();
qApp->installNativeEventFilter(this);
installEventFilter(this);
@ -346,18 +341,9 @@ void FullBackgroundWidget::setLockState()
bool FullBackgroundWidget::eventFilter(QObject *obj, QEvent *event)
{
if(event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseMove || event->type() == 7){
if(screenStatus & SCREEN_SAVER){
clearScreensavers();
}
}
if(event->type() == QEvent::WindowDeactivate){
QTimer::singleShot(50,this,SLOT(laterActivate()));
}else if(event->type() == QEvent::WindowActivate){
if(QString(qgetenv("XDG_SESSION_TYPE")) == "wayland") {
PlasmaShellManager::getInstance()->setAppWindowKeepAbove(true);
}
QTimer::singleShot(500,this,SLOT(setLockState()));
QTimer::singleShot(200,this,SLOT(killWindow()));
}
@ -455,11 +441,8 @@ void FullBackgroundWidget::closeEvent(QCloseEvent *event)
if(widget)
widget->close();
}
if(QX11Info::isPlatformX11()){
closeGrab();
}
closeGrab();
return QWidget::closeEvent(event);
}
@ -628,37 +611,18 @@ void FullBackgroundWidget::mousePressEvent(QMouseEvent *e)
void FullBackgroundWidget::init()
{
/*捕获键盘如果捕获失败则可能是由于弹出菜单项已经捕获那么模拟一次esc按键来退出菜单如果仍捕获失败则放弃锁屏避免密码无法输入*/
if(QX11Info::isPlatformX11()){
if(establishGrab())
qDebug()<<"establishGrab : true";
else {
qDebug()<<"establishGrab : false";
XTestFakeKeyEvent(QX11Info::display(), XKeysymToKeycode(QX11Info::display(),XK_Escape), True, 1);
XTestFakeKeyEvent(QX11Info::display(), XKeysymToKeycode(QX11Info::display(),XK_Escape), False, 1);
XFlush(QX11Info::display());
sleep(1);
if(!establishGrab())
{
exit(1);
}
if(establishGrab())
qDebug()<<"establishGrab : true";
else {
qDebug()<<"establishGrab : false";
XTestFakeKeyEvent(QX11Info::display(), XKeysymToKeycode(QX11Info::display(),XK_Escape), True, 1);
XTestFakeKeyEvent(QX11Info::display(), XKeysymToKeycode(QX11Info::display(),XK_Escape), False, 1);
XFlush(QX11Info::display());
sleep(1);
if(!establishGrab())
{
exit(1);
}
XWindowAttributes rootAttr;
XGetWindowAttributes(QX11Info::display(), QX11Info::appRootWindow(), &rootAttr);
XSelectInput( QX11Info::display(), QX11Info::appRootWindow(),
SubstructureNotifyMask|rootAttr.your_event_mask );
// connect(xEventMonitor, SIGNAL(keyPress(const QString &)),
// this, SLOT(onGlobalKeyPress(const QString &)));
// connect(xEventMonitor, SIGNAL(keyRelease(const QString &)),
// this, SLOT(onGlobalKeyRelease(const QString &)));
// connect(xEventMonitor, SIGNAL(buttonDrag(int, int)),
// this, SLOT(onGlobalButtonDrag(int, int)));
// connect(xEventMonitor, SIGNAL(buttonPress(int, int)),
// this, SLOT(onGlobalButtonPressed(int, int)));
// xEventMonitor->start();
}
qDebug()<<"----------------------------------------------------------------开始异步调用";
@ -675,16 +639,17 @@ void FullBackgroundWidget::init()
}
});
if(QX11Info::isPlatformX11()){
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint
| Qt::X11BypassWindowManagerHint);
}else{
setWindowFlags(Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint);
}
/*x100下会出现黑色小方块问题设置此属性时正常*/
setAttribute(Qt::WA_TranslucentBackground);
XWindowAttributes rootAttr;
XGetWindowAttributes(QX11Info::display(), QX11Info::appRootWindow(), &rootAttr);
XSelectInput( QX11Info::display(), QX11Info::appRootWindow(),
SubstructureNotifyMask|rootAttr.your_event_mask );
// 监听session信号
// smInterface = new QDBusInterface(SM_DBUS_SERVICE,
// SM_DBUS_PATH,
@ -692,6 +657,10 @@ void FullBackgroundWidget::init()
// QDBusConnection::sessionBus());
// connect(smInterface, SIGNAL(StatusChanged(uint)),
// this, SLOT(onSessionStatusChanged(uint)));
// connect(xEventMonitor, SIGNAL(buttonDrag(int, int)),
// this, SLOT(onGlobalButtonDrag(int, int)));
// connect(xEventMonitor, SIGNAL(buttonPress(int, int)),
// this, SLOT(onGlobalButtonPressed(int, int)));
// int totalWidth = 0;
// int totalHeight = 0;
@ -703,7 +672,9 @@ void FullBackgroundWidget::init()
// setGeometry(0, 0, totalWidth, totalHeight);
QDesktopWidget *desktop = QApplication::desktop();
setGeometry(desktop->geometry());
// xEventMonitor->start();
#ifdef USE_INTEL
SoundDeviceSet::instance();
#endif
@ -790,9 +761,7 @@ void FullBackgroundWidget::showLockWidget()
}
onCursorMoved(QCursor::pos());
lockWidget->setFocus();
if(QX11Info::isPlatformX11() ){
XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
}
XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
activateWindow();
repaint();
}
@ -830,11 +799,11 @@ void FullBackgroundWidget::showScreensaver(bool isPreview/* = false*/)
{
ScreenSaver *saver = configuration->getScreensaver();
/*锁屏设置的Qt::WA_TranslucentBackground属性会导致第三方屏保变得透明因此在使用第三方屏保时
* */
if(saver->path != "/usr/lib/ukui-screensaver/ukui-screensaver-default")
{
setAttribute(Qt::WA_TranslucentBackground,false);
}
* */
if(saver->path != "/usr/lib/ukui-screensaver/ukui-screensaver-default")
{
setAttribute(Qt::WA_TranslucentBackground,false);
}
ScreenSaverWidget *saverWidget = new ScreenSaverWidget(saver, this);
qDebug() << " new ScreenSaverWidget";

View File

@ -119,14 +119,10 @@ bool IconEdit::eventFilter(QObject *obj, QEvent *event)
}
if(event->type() == 23)
{
if(QX11Info::isPlatformX11()){
//XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
}
//XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
update();
}else if(event->type() == QEvent::MouseButtonPress){
if(QX11Info::isPlatformX11()){
//XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
}
//XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
update();
}
}
@ -175,10 +171,8 @@ void IconEdit::resizeEvent(QResizeEvent *)
void IconEdit::setX11Focus()
{
if(QX11Info::isPlatformX11()){
//XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
}
update();
//XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
update();
}
void IconEdit::setFocusin(int target)

View File

@ -124,12 +124,6 @@ void Interface::SetLockState()
void Interface::emitLockState(bool val)
{
qDebug()<<"emitLockState state = "<<val;
QDBusInterface interface("org.kde.KWin",
"/kglobalaccel",
"org.kde.KGlobalAccel",
QDBusConnection::sessionBus());
interface.call("blockGlobalShortcuts",val);
QDBusMessage message;
if(val){
message = QDBusMessage::createSignal(SS_DBUS_PATH,

View File

@ -24,6 +24,7 @@
#include <QDateTime>
#include <QTimer>
#include <QDebug>
#include <QPluginLoader>
#include <QPainterPath>
#include <QtConcurrent/QtConcurrentRun>
#include <QScrollArea>
@ -33,6 +34,7 @@
#include <imageutil.h>
#include <QtX11Extras/QX11Info>
#include <X11/Xlib.h>
#include <kylin-nm/kynetworkicon.h>
#include <X11/XKBlib.h>
#include <QGSettings>
#include "authdialog.h"
@ -43,6 +45,7 @@
#include "commonfunc.h"
#include "hoverwidget.h"
#include "kylinnm.h"
#include "mytabwidget.h"
#include <QtX11Extras/QX11Info>
#include <X11/Xlib.h>
@ -120,10 +123,10 @@ void LockWidget::closeEvent(QCloseEvent *event)
bool LockWidget::eventFilter(QObject *obj, QEvent *event)
{
if(event->type() == 2){
if(obj == m_kylinNM)
if(obj == mkylinNM)
return true;
if(obj == ui->btnPowerManager || obj == ui->btnSwitchUser || obj == ui->btnNetworkManager || obj == ui->btnBatteryStatus)
if(obj == ui->btnPowerManager || obj == ui->btnSwitchUser || obj == btnNetworkManager || obj == ui->btnBatteryStatus)
return false;
if(mBatteryWidget && mBatteryWidget->isVisible()) {
@ -172,24 +175,25 @@ bool LockWidget::eventFilter(QObject *obj, QEvent *event)
//qDebug()<<"````````````````````````````````````````````"<<event->type();
}
}
if(event->type() == QEvent::WindowActivate || event->type() == 8){ // QEvent::FocusIn
/*
if(event->type() == QEvent::WindowActivate){
if(!isNetFinished){
isNetFinished = true;
QTimer::singleShot(2000, this, [=](){
m_kylinNM = new KylinNM(this);
m_kylinNM->installEventFilter(this);
connect(m_kylinNM, &KylinNM::onConnectChanged, this,[=](){
updateNetIcon(m_kylinNM->getConnectStatus());
});
m_kylinNM->hide();
QtConcurrent::run([=](){
updateNetIcon(getNetStatus());
});
});
QTimer::singleShot(1000, this, [=](){
loadNetPlugin();
// m_kylinNM = new KylinNM(this);
// m_kylinNM->installEventFilter(this);
// connect(m_kylinNM, &KylinNM::onConnectChanged, this,[=](){
// updateNetIcon(m_kylinNM->getConnectStatus());
// });
// m_kylinNM->hide();
// QtConcurrent::run([=](){
// updateNetIcon(getNetStatus());
// });
});
}
}
*/
return false;
}
@ -237,7 +241,7 @@ void LockWidget::key_enter_release(int key)
case NETWORKBTN:
if(!m_kylinNM || !(m_kylinNM && m_kylinNM->isVisible()))
showNetManager(true);
ui->btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
authDialog->setFocusin(REMOVE);
break;
case KEYBOARDBTN:
@ -422,7 +426,7 @@ void LockWidget::key_LR_release(int key)
horAT = NETWORKBTN;
break;
case NETWORKBTN:
horAT = POWERBTN;//KEYBOARDBTN;
horAT = KEYBOARDBTN;
break;
case KEYBOARDBTN:
horAT = POWERBTN;
@ -470,7 +474,7 @@ void LockWidget::key_LR_release(int key)
horAT = NETWORKBTN;
break;
case POWERBTN:
horAT = NETWORKBTN;//KEYBOARDBTN;
horAT = KEYBOARDBTN;
break;
default:
break;
@ -491,19 +495,19 @@ void LockWidget::setBottomBtnSheet()
case BATTERYBTN:
ui->btnBatteryStatus->setStyleSheet(ON_TAB_SHEET);
ui->btnSwitchUser->setStyleSheet(ON_NORMAL_SHEET);
ui->btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnKeyboard->setStyleSheet(ON_NORMAL_SHEET);
ui->btnPowerManager->setStyleSheet(ON_NORMAL_SHEET);
break;
case SWITCHBTN:
ui->btnSwitchUser->setStyleSheet(ON_TAB_SHEET);
ui->btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnKeyboard->setStyleSheet(ON_NORMAL_SHEET);
ui->btnPowerManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnBatteryStatus->setStyleSheet(ON_NORMAL_SHEET);
break;
case NETWORKBTN:
ui->btnNetworkManager->setStyleSheet(ON_TAB_SHEET);
btnNetworkManager->setStyleSheet(ON_TAB_SHEET);
ui->btnKeyboard->setStyleSheet(ON_NORMAL_SHEET);
ui->btnPowerManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnSwitchUser->setStyleSheet(ON_NORMAL_SHEET);
@ -513,19 +517,19 @@ void LockWidget::setBottomBtnSheet()
ui->btnKeyboard->setStyleSheet(ON_TAB_SHEET);
ui->btnPowerManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnSwitchUser->setStyleSheet(ON_NORMAL_SHEET);
ui->btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnBatteryStatus->setStyleSheet(ON_NORMAL_SHEET);
break;
case POWERBTN:
ui->btnPowerManager->setStyleSheet(ON_TAB_SHEET);
ui->btnSwitchUser->setStyleSheet(ON_NORMAL_SHEET);
ui->btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnKeyboard->setStyleSheet(ON_NORMAL_SHEET);
ui->btnBatteryStatus->setStyleSheet(ON_NORMAL_SHEET);
break;
default:
ui->btnSwitchUser->setStyleSheet(ON_NORMAL_SHEET);
ui->btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnKeyboard->setStyleSheet(ON_NORMAL_SHEET);
ui->btnPowerManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnBatteryStatus->setStyleSheet(ON_NORMAL_SHEET);
@ -533,7 +537,7 @@ void LockWidget::setBottomBtnSheet()
}
} else {
ui->btnSwitchUser->setStyleSheet(ON_NORMAL_SHEET);
ui->btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
btnNetworkManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnKeyboard->setStyleSheet(ON_NORMAL_SHEET);
ui->btnPowerManager->setStyleSheet(ON_NORMAL_SHEET);
ui->btnBatteryStatus->setStyleSheet(ON_NORMAL_SHEET);
@ -695,7 +699,6 @@ void LockWidget::initUI()
ui->btnBatteryStatus->setIconSize(QSize(24,24));
ui->btnBatteryStatus->setFocusPolicy(Qt::NoFocus);
ui->btnBatteryStatus->installEventFilter(this);
ui->btnBatteryStatus->setCheckable(true);
mBatteryWidget = new BatteryWidget(QPoint(ui->btnBatteryStatus->x(), ui->btnBatteryStatus->y()), this);
mBatteryWidget->hide();
connect(ui->btnBatteryStatus,&QPushButton::clicked
@ -724,40 +727,44 @@ void LockWidget::initUI()
,this,&LockWidget::showPowerManager);
QtConcurrent::run([=](){
updateNetIcon(getNetStatus());
});
// QtConcurrent::run([=](){
// updateNetIcon(getNetStatus());
// });
ui->btnNetworkManager->setFixedSize(48,48);
ui->btnNetworkManager->setIconSize(QSize(24,24));
ui->btnNetworkManager->setFocusPolicy(Qt::NoFocus);
btnNetworkManager = new KyNetworkIcon(this);
btnNetworkManager->setStyleSheet("QPushButton{text-align:center;color: rgb(255, 255, 255, 255);border: none;border-radius: 4px;outline: none;} \
QPushButton::hover{background-color: rgb(255,255,255,15%);} \
QPushButton::pressed {background-color: rgba(255,255,255,40%);}\
QPushButton::checked {background-color: rgba(255, 255, 255, 40%);}");
btnNetworkManager->setCheckable(true);
btnNetworkManager->setFixedSize(48,48);
btnNetworkManager->setIconSize(QSize(24,24));
btnNetworkManager->setFocusPolicy(Qt::NoFocus);
// ui->btnNetworkManager->setStyleSheet("QPushButton:Hover{border-radius:24px;background-color:rgba(255, 255, 255, 0.15);}"
// "QPushButton:Pressed{border-radius:24px;background-color:rgba(255, 255, 255, 0.05);}");
ui->btnNetworkManager->installEventFilter(this);
btnNetworkManager->installEventFilter(this);
btnNetworkManager->setCursor(Qt::PointingHandCursor);
connect(ui->btnNetworkManager,&QPushButton::clicked
,this,&LockWidget::showNetManager);
if(QX11Info::isPlatformX11()){
//虚拟键盘
ui->btnKeyboard->setIcon(QIcon(":/image/assets/keyboard.svg"));
ui->btnKeyboard->setFixedSize(48, 48);
ui->btnKeyboard->setIconSize(QSize(24, 24));
ui->btnKeyboard->setFocusPolicy(Qt::NoFocus);
ui->btnKeyboard->installEventFilter(this);
ui->btnKeyboard->hide();
connect(btnNetworkManager,&QPushButton::clicked
,this, [&,this](){
this->showNetManager();
this->setCursor(Qt::ArrowCursor);
});
//虚拟键盘
ui->btnKeyboard->setIcon(QIcon(":/image/assets/keyboard.svg"));
ui->btnKeyboard->setFixedSize(48, 48);
ui->btnKeyboard->setIconSize(QSize(24, 24));
ui->btnKeyboard->setFocusPolicy(Qt::NoFocus);
ui->btnKeyboard->installEventFilter(this);
/* connect(ui->btnKeyboard, &QPushButton::clicked,
this, [&]{
qDebug() << vKeyboard->isHidden();
vKeyboard->setVisible(vKeyboard->isHidden());
});
*/
connect(ui->btnKeyboard, &QPushButton::clicked,
this, &LockWidget::showVirtualKeyboard);
}
connect(ui->btnKeyboard, &QPushButton::clicked,
this, &LockWidget::showVirtualKeyboard);
//用户切换
if(displayManager->canSwitch())
@ -919,10 +926,10 @@ void LockWidget::setCheckedSheet(int type, bool show)
case NETWORKBTN:
if(show) {
m_kylinNM->show();
ui->btnNetworkManager->setChecked(true);
btnNetworkManager->setChecked(true);
} else {
m_kylinNM->hide();
ui->btnNetworkManager->setChecked(false);
btnNetworkManager->setChecked(false);
}
break;
default:
@ -944,7 +951,7 @@ void LockWidget::showWarning(QVector<InhibitInfo::InhibitorInfo> &wlist, int typ
sureWidget->setFocus();
ui->widgetTime->hide();
ui->btnPowerManager->hide();
ui->btnNetworkManager->hide();
btnNetworkManager->hide();
ui->btnSwitchUser->hide();
ui->btnKeyboard->hide();
ui->btnBatteryStatus->hide();
@ -966,7 +973,7 @@ void LockWidget::switchToSureDialog(int type)
sureWidget->setFocus();
ui->widgetTime->hide();
ui->btnPowerManager->hide();
ui->btnNetworkManager->hide();
btnNetworkManager->hide();
ui->btnSwitchUser->hide();
ui->btnKeyboard->hide();
ui->btnBatteryStatus->hide();
@ -980,7 +987,7 @@ void LockWidget::hideSureDialog()
powermanager->show();
ui->widgetTime->show();
ui->btnPowerManager->show();
ui->btnNetworkManager->show();
btnNetworkManager->show();
ui->btnSwitchUser->show();
ui->btnKeyboard->show();
ui->btnBatteryStatus->show();
@ -999,7 +1006,7 @@ void LockWidget::confirmClicked()
authDialog->show();
ui->widgetTime->show();
ui->btnPowerManager->show();
ui->btnNetworkManager->show();
btnNetworkManager->show();
ui->btnSwitchUser->show();
ui->btnKeyboard->show();
ui->btnBatteryStatus->show();
@ -1015,13 +1022,17 @@ void LockWidget::showNetManager(bool keynavigation)
horAT = NETWORKBTN;
}
if(!m_kylinNM){
return;
/*这里放在点击按钮后加载,一个原因是启动优化,另一个原因是如果放在构造函数中加载,则必须
* 退closeEvent中崩溃
* */
loadNetPlugin();
m_kylinNM->hide();
}
if(m_kylinNM->isVisible())
{
setCheckedSheet(NETWORKBTN, false);
} else {
m_kylinNM->show();
setCheckedSheet(NETWORKBTN, true);
if(scrollArea && scrollArea->isVisible())
setCheckedSheet(SWITCHBTN, false);
@ -1039,12 +1050,12 @@ void LockWidget::showNetManager(bool keynavigation)
authDialog->lower();
}
authDialog->clearFocus();
if(mBatteryWidget && mBatteryWidget->isVisible()) {
if(mBatteryWidget && mBatteryWidget->isVisible())
mBatteryWidget->lower();
mBatteryWidget->clearFocus();
}
mBatteryWidget->clearFocus();
at_plugins = true;
m_kylinNM->updateWifiList();
//m_kylinNM->updateWifiList();
}
}
@ -1169,22 +1180,109 @@ void LockWidget::updateNetIcon(int status)
switch(status) {
case 0:
//有线
ui->btnNetworkManager->setIcon(QIcon(":/image/assets/intel/icon-wired.png"));
btnNetworkManager->setIcon(QIcon(":/image/assets/intel/icon-wired.png"));
break;
case 1:
//无线
ui->btnNetworkManager->setIcon(QIcon(":/image/assets/intel/icon-wifi.png"));
btnNetworkManager->setIcon(QIcon(":/image/assets/intel/icon-wifi.png"));
break;
case 2:
//有线+无线
ui->btnNetworkManager->setIcon(QIcon(":/image/assets/intel/icon-wired.png"));
btnNetworkManager->setIcon(QIcon(":/image/assets/intel/icon-wired.png"));
break;
default:
//无连接
ui->btnNetworkManager->setIcon(QIcon(":/image/assets/intel/icon-no-signal.png"));
btnNetworkManager->setIcon(QIcon(":/image/assets/intel/icon-no-signal.png"));
}
}
void LockWidget::loadNetPlugin()
{
m_kylinNM = new QWidget(this);
m_kylinNM->setFixedSize(420,480);
m_kylinNM->setObjectName("m_kylinNM");
m_kylinNM->setStyleSheet("#m_kylinNM{background-color: white; border-radius:12px;}");
mkylinNM = new MyTabWidget(m_kylinNM);
mkylinNM->setFixedSize(420,480);
mkylinNM->tabBar()->setFixedHeight(40);
mkylinNM->installEventFilter(this);
QPluginLoader netloader("/usr/lib/kylin-nm/libnetconnect.so");//有线
QPluginLoader wlanloader("/usr/lib/kylin-nm/libwlanconnect.so");//无线
if (netloader.load()) {
QObject * plugin = netloader.instance();
if (plugin) {
Interface * pluginInstance = qobject_cast<Interface *>(plugin);
// 插件是否启用
if (!pluginInstance) {
return;
}
pluginInstance->setPluginType(SIMPLE);
QWidget *widget = pluginInstance->pluginUi();
mkylinNM->addTab(widget,"");
} else {
qDebug() << "Load Failed: " << netloader.errorString() << "\n";
return;
}
} else {
qDebug() << "Load Failed: " << netloader.errorString() << "\n";
return;
}
if (wlanloader.load()) {
QObject * plugin = wlanloader.instance();
if (plugin) {
Interface * pluginInstance = qobject_cast<Interface *>(plugin);
// 插件是否启用
if (!pluginInstance) {
return;
}
pluginInstance->setPluginType(SIMPLE);
/*这里需要先调用setParentWidget否则会出现网络连接弹窗无法弹出来的问题*/
pluginInstance->setParentWidget(this);
QWidget *widget = pluginInstance->pluginUi();
mkylinNM->addTab(widget,"");
} else {
qDebug() << "Load Failed: " << wlanloader.errorString() << "\n";
return;
}
} else {
qDebug() << "Load Failed: " << wlanloader.errorString() << "\n";
return;
}
QHBoxLayout *m_tabBarLayout = new QHBoxLayout(mkylinNM);
m_tabBarLayout->setContentsMargins(0,0,0,0);
QLabel *m_lanLabel = new QLabel(tr("LAN"));
m_lanLabel->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
QLabel *m_wlanLabel = new QLabel(tr("WLAN"));
m_wlanLabel->setAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
m_tabBarLayout->addWidget(m_lanLabel);
m_tabBarLayout->addWidget(m_wlanLabel);
mkylinNM->tabBar()->setLayout(m_tabBarLayout);
mkylinNM->tabBar()->setFixedWidth(420);
QPalette pal = qApp->palette();
pal.setBrush(QPalette::Background, Qt::white);
// m_kylinNM->setPalette(pal);
mkylinNM->widget(0)->setPalette(pal);
mkylinNM->widget(1)->setPalette(pal);
m_kylinNM->setGeometry(this->width() - mkylinNM->width() - 20,
this->height() - mkylinNM->height() - 100,
mkylinNM->width(),
mkylinNM->height());
}
void LockWidget::switchToGreeter()
{
if(authDialog)
@ -1384,13 +1482,11 @@ void LockWidget::resizeEvent(QResizeEvent *event)
x = x + ui->btnPowerManager->width();
ui->btnPowerManager->move(width() - x,height() - y);
if(ui->btnKeyboard->isVisible()){
x = x+ui->btnKeyboard->width()+16;
ui->btnKeyboard->move(width() - x, height() - y);
}
x = x+ui->btnKeyboard->width()+16;
ui->btnKeyboard->move(width() - x, height() - y);
x = x + ui->btnNetworkManager->width()+16;
ui->btnNetworkManager->move(width() - x, height() - y);
x = x + btnNetworkManager->width()+16;
btnNetworkManager->move(width() - x, height() - y);
if(!ui->btnSwitchUser->isHidden()) {
x = x + ui->btnSwitchUser->width()+16;
@ -1439,9 +1535,7 @@ void LockWidget::resizeEvent(QResizeEvent *event)
powermanager->width(),powermanager->height());
}
if(QX11Info::isPlatformX11()){
// XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
}
// XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
}
@ -1492,24 +1586,6 @@ void LockWidget::onUserAdded(const UserItem &user)
usersMenu->adjustSize();
}
QPixmap LockWidget::PixmapToRound(const QPixmap &src, int radius)
{
if (src.isNull()) {
return QPixmap();
}
QPixmap pixmapa(src);
QPixmap pixmap(radius*2,radius*2);
pixmap.fill(Qt::transparent);
QPainter painter(&pixmap);
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
QPainterPath path;
path.addEllipse(0, 0, radius*2, radius*2);
painter.setClipPath(path);
painter.drawPixmap(0, 0, radius*2, radius*2, pixmapa);
return pixmap;
}
void LockWidget::onUserDeleted(const UserItem &user)
{
for(auto action : usersMenu->actions())
@ -1617,7 +1693,7 @@ bool LockWidget::exitSubWidget()
setCheckedSheet(NETWORKBTN, false);
at_plugins = false;
if(tabAt == BOTTMBTN && horAT == NETWORKBTN)
ui->btnNetworkManager->setStyleSheet(ON_TAB_SHEET);
btnNetworkManager->setStyleSheet(ON_TAB_SHEET);
allExited = false;
} else if(vKeyboard && vKeyboard->isVisible()) {
vKeyboard->hide();

View File

@ -25,6 +25,9 @@
#include <QWidget>
#include <QResizeEvent>
#include <QDBusArgument>
#include <QTabWidget>
#include <kylin-nm/kynetworkicon.h>
#include "kylin-nm/kylin-nm-interface.h"
#include "surewindow.h"
#include "lockchecker.h"
#include "xeventmonitor.h"
@ -99,15 +102,15 @@ private:
void updateNetIcon(int status);
bool getLoadStatus(const QString &name);
int getNetStatus();
QPixmap PixmapToRound(const QPixmap &src, int radius);
void key_OB_release(int key);
void key_tab_release(int key);
void key_shiftTab_release();
void key_LR_release(int key);
void key_enter_release(int key);
int getLoginedNum();
void setBottomBtnSheet();
void setCheckedSheet(int type, bool show);
void loadNetPlugin();
void setBottomBtnSheet();
void setCheckedSheet(int type, bool show);
private Q_SLOTS:
void onUserAdded(const UserItem &user);
void onUserDeleted(const UserItem &user);
@ -149,14 +152,16 @@ private:
QScrollArea *scrollArea;
QWidget *scrollContents;
QWidget *m_kylinNM = nullptr;
BatteryWidget *mBatteryWidget = nullptr;
KylinNM *m_kylinNM = nullptr;
QTabWidget *mkylinNM = nullptr;
QWidget *m_NetManagerWidget;
QStringList m_loginedUser;
bool isNetFinished = false;
int powermanagerType;
int nowAt = -1;
int loginedNum = 0;
QPushButton *btnNetworkManager = nullptr;
bool m_isStartupMode = false;
bool is_switchBtn = true;
bool is_batteryBtn = true;
@ -165,6 +170,7 @@ private:
int horAT = BATTERYBTN;
int at_power = false;
bool at_plugins = false;
QDBusInterface *batInterface = nullptr;
QDBusInterface *iface = nullptr;
QDBusInterface *dface = nullptr;

View File

@ -144,25 +144,6 @@ QPushButton::pressed {
<string/>
</property>
</widget>
<widget class="QPushButton" name="btnNetworkManager">
<property name="geometry">
<rect>
<x>370</x>
<y>10</y>
<width>80</width>
<height>26</height>
</rect>
</property>
<property name="cursor">
<cursorShape>PointingHandCursor</cursorShape>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="text">
<string/>
</property>
</widget>
<widget class="QPushButton" name="btnBatteryStatus">
<property name="geometry">
<rect>

40
src/mytabwidget.cpp Normal file
View File

@ -0,0 +1,40 @@
#include "mytabwidget.h"
#include <QStyleOption>
#include <QPainter>
#include <QBitmap>
MyTabWidget::MyTabWidget(QWidget *parent) : QTabWidget(parent)
{
//隐藏标题栏
// setWindowFlags(Qt::FramelessWindowHint);//无边框 置顶
//设置窗口背景透明
// setAttribute(Qt::WA_TranslucentBackground,false);
//设置样式
// QWidget *w = new QWidget(this);
// QWidget *k = new QWidget(this);
// this->addTab(w,"111");
// this->addTab(k,"222");
}
void MyTabWidget::paintEvent(QPaintEvent *p1)
{
//绘制样式
QStyleOption opt;
opt.initFrom(this);
QPainter p(this);
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);//绘制样式
QBitmap bmp(this->size());
bmp.fill();
QPainter painter(&bmp);
painter.setPen(Qt::NoPen);
painter.setBrush(Qt::black);
painter.setRenderHint(QPainter::Antialiasing);
painter.drawRoundedRect(bmp.rect(), 12, 12);
setMask(bmp);
}

18
src/mytabwidget.h Normal file
View File

@ -0,0 +1,18 @@
#ifndef MYTABWIDGET_H
#define MYTABWIDGET_H
#include <QWidget>
#include <QTabWidget>
class MyTabWidget : public QTabWidget
{
Q_OBJECT
public:
explicit MyTabWidget(QWidget *parent = nullptr);
void paintEvent(QPaintEvent *event);
signals:
};
#endif // WIDGET_H

View File

@ -1,170 +0,0 @@
#include "plasma-shell-manager.h"
#include <QApplication>
#include <KWayland/Client/connection_thread.h>
#include <KWayland/Client/registry.h>
#include <KWayland/Client/surface.h>
#include <unistd.h>
#include <QDebug>
static PlasmaShellManager* global_instance = nullptr;
PlasmaShellManager *PlasmaShellManager::getInstance()
{
if (!global_instance)
{
global_instance = new PlasmaShellManager;
qDebug() << "Here create instance...";
}
qDebug() << "Return instance";
return global_instance;
}
bool PlasmaShellManager::setAppWindowActive()
{
if (!supportPlasmaWindowManagement())
return false;
m_appWindow->requestActivate();
return true;
}
bool PlasmaShellManager::setAppWindowKeepAbove(bool keep)
{
if (!supportPlasmaWindowManagement())
{
qDebug() << "false";
return false;
}
if(keep != m_appWindow->isKeepAbove()) {
qDebug() << "to keep above";
m_appWindow->requestToggleKeepAbove();
}
return true;
}
bool PlasmaShellManager::setMaximized(QWindow *window)
{
if (!supportShell())
return false;
auto surface = KWayland::Client::Surface::fromWindow(window);
if (!surface)
return false;
auto shellSurface = m_shell->createSurface(surface, window);
if (!shellSurface)
return false;
shellSurface->setMaximized();
return true;
}
bool PlasmaShellManager::setRole(QWindow *window, KWayland::Client::PlasmaShellSurface::Role role)
{
if (!supportPlasmaShell())
return false;
auto surface = KWayland::Client::Surface::fromWindow(window);
if (!surface)
return false;
auto plasmaShellSurface = m_plasmaShell->createSurface(surface, window);
if (!plasmaShellSurface)
return false;
plasmaShellSurface->setRole(role);
return true;
}
bool PlasmaShellManager::setPos(QWindow *window, const QPoint &pos)
{
if (!supportPlasmaShell())
return false;
auto surface = KWayland::Client::Surface::fromWindow(window);
if (!surface)
return false;
auto plasmaShellSurface = m_plasmaShell->createSurface(surface, window);
if (!plasmaShellSurface)
return false;
plasmaShellSurface->setPosition(pos);
return true;
}
bool PlasmaShellManager::supportPlasmaShell()
{
return m_plasmaShell;
}
bool PlasmaShellManager::supportShell()
{
return m_shell;
}
bool PlasmaShellManager::supportPlasmaWindowManagement()
{
return m_windowManager && m_appWindow;
}
PlasmaShellManager::PlasmaShellManager(QObject *parent) : QObject(parent)
{
auto connection = KWayland::Client::ConnectionThread::fromApplication(qApp);
auto registry = new KWayland::Client::Registry(this);
registry->create(connection->display());
connect(registry, &KWayland::Client::Registry::plasmaShellAnnounced, this, [=](){
qDebug() << "plasmaShellAnnounced...";
const auto interface = registry->interface(KWayland::Client::Registry::Interface::PlasmaShell);
if (interface.name != 0) {
qDebug() << "createPlasmaShell...";
m_plasmaShell = registry->createPlasmaShell(interface.name, interface.version, this);
}
});
connect(registry, &KWayland::Client::Registry::plasmaWindowManagementAnnounced, this, [=](){
qDebug() << "plasmaWindowManagementAnnounced";
const auto interface = registry->interface(KWayland::Client::Registry::Interface::PlasmaWindowManagement);
if (interface.name != 0) {
qDebug() << "createPlasmaWindowManagement";
m_windowManager = registry->createPlasmaWindowManagement(interface.name, interface.version, this);
}
if(m_windowManager) {
connect(m_windowManager, &KWayland::Client::PlasmaWindowManagement::windowCreated,
[this](KWayland::Client::PlasmaWindow *window) {
qDebug()<< "PlasmaWindow...";
if (window->pid() == getpid()) {
if(isFirstCreate) {
isFirstCreate = false;
m_appWindow = window;
connect(m_appWindow, &KWayland::Client::PlasmaWindow::activeChanged,
[this]() {
this->setAppWindowKeepAbove(true);
this->setAppWindowActive();
});
connect(m_appWindow, &KWayland::Client::PlasmaWindow::keepAboveChanged,
[this]() {
this->setAppWindowKeepAbove(true);
this->setAppWindowActive();
});
}
}
});
}
});
connect(registry, &KWayland::Client::Registry::shellAnnounced, this, [=](){
const auto interface = registry->interface(KWayland::Client::Registry::Interface::Shell);
if (interface.name != 0) {
m_shell = registry->createShell(interface.name, interface.version, this);
}
});
registry->setup();
connection->roundtrip();
}

View File

@ -1,37 +0,0 @@
#ifndef PLASMASHELLMANAGER_H
#define PLASMASHELLMANAGER_H
#include <QObject>
#include <QWindow>
#include <KWayland/Client/plasmawindowmanagement.h>
#include <KWayland/Client/plasmashell.h>
#include <KWayland/Client/shell.h>
class PlasmaShellManager : public QObject
{
Q_OBJECT
public:
static PlasmaShellManager *getInstance();
bool setAppWindowActive();
bool setAppWindowKeepAbove(bool keep);
bool setMaximized(QWindow *window);
bool setRole(QWindow *window, KWayland::Client::PlasmaShellSurface::Role role);
bool setPos(QWindow *window, const QPoint &pos);
bool supportPlasmaShell();
bool supportShell();
bool supportPlasmaWindowManagement();
private:
explicit PlasmaShellManager(QObject *parent = nullptr);
KWayland::Client::PlasmaShell *m_plasmaShell = nullptr;
KWayland::Client::Shell *m_shell = nullptr;
KWayland::Client::PlasmaWindowManagement *m_windowManager = nullptr;
KWayland::Client::PlasmaWindow *m_appWindow = nullptr;
bool isFirstCreate = true;
};
#endif // PLASMASHELLMANAGER_H

View File

@ -51,6 +51,11 @@ PowerManager::PowerManager(int num, QWidget *parent)
lasttime(QTime::currentTime())
{
// resize(ITEM_WIDTH*7, ITEM_HEIGHT);
QFile qssFile(":/qss/assets/authdialog.qss");
if(qssFile.open(QIODevice::ReadOnly)) {
this->setStyleSheet(qssFile.readAll());
}
setObjectName("PowerManager");
setFlow(QListWidget::LeftToRight);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);

View File

@ -143,9 +143,7 @@ bool ScreenSaverWidget::eventFilter(QObject *obj, QEvent *event)
{
if(event->type() == 23)
{
if(QX11Info::isPlatformX11()){
XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
}
XSetInputFocus(QX11Info::display(),this->winId(),RevertToParent,CurrentTime);
}
return false;
}

View File

@ -28,7 +28,6 @@
#include <QDebug>
#include <QDesktopWidget>
#include <QDBusInterface>
#include "plasma-shell-manager.h"
#include <signal.h>
#include <unistd.h>
#include <fcntl.h>
@ -198,11 +197,11 @@ int main(int argc, char *argv[])
window = new FullBackgroundWidget();
QFile qssFile(":/qss/assets/authdialog.qss");
if(qssFile.open(QIODevice::ReadOnly)) {
a.setStyleSheet(qssFile.readAll());
}
qssFile.close();
// QFile qssFile(":/qss/assets/authdialog.qss");
// if(qssFile.open(QIODevice::ReadOnly)) {
// a.setStyleSheet(qssFile.readAll());
// }
// qssFile.close();
// 注册DBus
ScreenSaverWndAdaptor adaptorWnd(window);
@ -226,7 +225,7 @@ int main(int argc, char *argv[])
}
#ifndef USE_INTEL
window->showFullScreen();
window->show();
window->activateWindow();
#endif
if(parser.isSet(lockOption))
@ -267,16 +266,6 @@ int main(int argc, char *argv[])
window->show();
window->activateWindow();
#endif
bool isWayland = false;
if(QString(qgetenv("XDG_SESSION_TYPE")) == "wayland") {
isWayland = true;
}
if (isWayland){
PlasmaShellManager::getInstance();
PlasmaShellManager::getInstance()->setAppWindowKeepAbove(true);
}
QString username = getenv("USER");
int uid = getuid();