feat(network): Adapt network plugin

Description: 适配网络插件

Log: 123734 子 openkylin网络插件化适配 / openkylin网络插件化适配-登录锁屏
This commit is contained in:
winnerym 2022-12-07 21:53:27 +08:00
parent d2cff1fc8e
commit f6e281c8b7
51 changed files with 3183 additions and 743 deletions

View File

@ -10,6 +10,7 @@ find_package(KF5Wayland REQUIRED)
pkg_check_modules(GIOUNIX2 REQUIRED gio-unix-2.0) pkg_check_modules(GIOUNIX2 REQUIRED gio-unix-2.0)
pkg_check_modules(GLIB2 REQUIRED glib-2.0 gio-2.0) pkg_check_modules(GLIB2 REQUIRED glib-2.0 gio-2.0)
pkg_check_modules(kylin-nm-base REQUIRED kylin-nm-base)
pkg_check_modules(KScreen REQUIRED kscreen2) pkg_check_modules(KScreen REQUIRED kscreen2)
# intel # intel

View File

@ -7,12 +7,17 @@ set(CMAKE_AUTORCC ON)
qt5_add_resources(VirtualKeyboard_SRC qt5_add_resources(VirtualKeyboard_SRC
src/keyboard.qrc) src/keyboard.qrc)
qt5_wrap_cpp(VirtualKeyboard_SRC
src/vkstackedwidget.h
)
set(VirtualKeyboard_SRC set(VirtualKeyboard_SRC
${VirtualKeyboard_SRC} ${VirtualKeyboard_SRC}
src/cursormonitor.cpp src/cursormonitor.cpp
src/keyboardwidget.cpp src/keyboardwidget.cpp
src/virtualkeyboard.cpp src/virtualkeyboard.cpp
src/x11keyboard.cpp src/x11keyboard.cpp
src/vkstackedwidget.cpp
src/keyboard.qrc) src/keyboard.qrc)
include_directories( include_directories(

View File

@ -50,25 +50,25 @@
<item> <item>
<layout class="QHBoxLayout" name="hl_main"> <layout class="QHBoxLayout" name="hl_main">
<property name="spacing"> <property name="spacing">
<number>20</number> <number>8</number>
</property> </property>
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SetNoConstraint</enum> <enum>QLayout::SetNoConstraint</enum>
</property> </property>
<property name="leftMargin"> <property name="leftMargin">
<number>10</number> <number>8</number>
</property> </property>
<property name="topMargin"> <property name="topMargin">
<number>10</number> <number>8</number>
</property> </property>
<property name="rightMargin"> <property name="rightMargin">
<number>10</number> <number>8</number>
</property> </property>
<property name="bottomMargin"> <property name="bottomMargin">
<number>10</number> <number>8</number>
</property> </property>
<item> <item>
<widget class="QStackedWidget" name="stackedWidget"> <widget class="VKStackedWidget" name="stackedWidget">
<property name="currentIndex"> <property name="currentIndex">
<number>1</number> <number>1</number>
</property> </property>
@ -107,8 +107,8 @@
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>10</width>
<height>40</height> <height>20</height>
</size> </size>
</property> </property>
</spacer> </spacer>
@ -695,8 +695,8 @@
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>10</width>
<height>40</height> <height>20</height>
</size> </size>
</property> </property>
</spacer> </spacer>
@ -707,9 +707,24 @@
</widget> </widget>
<widget class="QWidget" name="page_number"> <widget class="QWidget" name="page_number">
<layout class="QHBoxLayout" name="horizontalLayout_4"> <layout class="QHBoxLayout" name="horizontalLayout_4">
<property name="spacing">
<number>4</number>
</property>
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SetNoConstraint</enum> <enum>QLayout::SetNoConstraint</enum>
</property> </property>
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<item> <item>
<spacer name="horizontalSpacer_2"> <spacer name="horizontalSpacer_2">
<property name="orientation"> <property name="orientation">
@ -872,7 +887,7 @@
<item row="4" column="1"> <item row="4" column="1">
<widget class="QPushButton" name="btn_backspace_num"> <widget class="QPushButton" name="btn_backspace_num">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -885,7 +900,7 @@
<item row="4" column="2"> <item row="4" column="2">
<widget class="QPushButton" name="btn_enter_num"> <widget class="QPushButton" name="btn_enter_num">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -973,7 +988,7 @@
<item row="3" column="4"> <item row="3" column="4">
<widget class="QPushButton" name="btn_right"> <widget class="QPushButton" name="btn_right">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -986,7 +1001,7 @@
<item row="3" column="2"> <item row="3" column="2">
<widget class="QPushButton" name="btn_left"> <widget class="QPushButton" name="btn_left">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -1012,7 +1027,7 @@
<item row="3" column="3"> <item row="3" column="3">
<widget class="QPushButton" name="btn_down"> <widget class="QPushButton" name="btn_down">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -1025,7 +1040,7 @@
<item row="2" column="3"> <item row="2" column="3">
<widget class="QPushButton" name="btn_up"> <widget class="QPushButton" name="btn_up">
<property name="sizePolicy"> <property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding"> <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch> <horstretch>0</horstretch>
<verstretch>0</verstretch> <verstretch>0</verstretch>
</sizepolicy> </sizepolicy>
@ -1096,8 +1111,8 @@
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>10</width>
<height>40</height> <height>20</height>
</size> </size>
</property> </property>
</spacer> </spacer>
@ -1185,8 +1200,8 @@
</property> </property>
<property name="sizeHint" stdset="0"> <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>10</width>
<height>40</height> <height>20</height>
</size> </size>
</property> </property>
</spacer> </spacer>
@ -1198,6 +1213,14 @@
</layout> </layout>
</widget> </widget>
<layoutdefault spacing="6" margin="11"/> <layoutdefault spacing="6" margin="11"/>
<customwidgets>
<customwidget>
<class>VKStackedWidget</class>
<extends>QStackedWidget</extends>
<header>src/vkstackedwidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/> <resources/>
<connections/> <connections/>
</ui> </ui>

View File

@ -39,10 +39,12 @@ VirtualKeyboard::VirtualKeyboard(QWidget *parent)
keyboardWidget = new KeyboardWidget(this); keyboardWidget = new KeyboardWidget(this);
QHBoxLayout *hl_keyboard = new QHBoxLayout(this); QHBoxLayout *hl_keyboard = new QHBoxLayout(this);
QSpacerItem *spacer = new QSpacerItem(40, 20); hl_keyboard->setContentsMargins(0,0,0,0);
hl_keyboard->setSpacing(0);
QSpacerItem *spacer = new QSpacerItem(10, 5);
hl_keyboard->addSpacerItem(spacer); hl_keyboard->addSpacerItem(spacer);
hl_keyboard->addWidget(keyboardWidget); hl_keyboard->addWidget(keyboardWidget);
QSpacerItem *spacer2 = new QSpacerItem(40, 20); QSpacerItem *spacer2 = new QSpacerItem(10, 5);
hl_keyboard->addSpacerItem(spacer2); hl_keyboard->addSpacerItem(spacer2);
QFile qssFile(":/qss/keyboard.qss"); QFile qssFile(":/qss/keyboard.qss");

View File

@ -0,0 +1,22 @@
#include "vkstackedwidget.h"
VKStackedWidget::VKStackedWidget(QWidget *parent/* = nullptr*/)
: QStackedWidget(parent)
{
}
VKStackedWidget::~VKStackedWidget()
{
}
QSize VKStackedWidget::sizeHint() const
{
return currentWidget()->sizeHint();
}
QSize VKStackedWidget::minimumSizeHint() const
{
return currentWidget()->minimumSizeHint();
}

View File

@ -0,0 +1,18 @@
#ifndef VKSTACKEDWIDGET_H
#define VKSTACKEDWIDGET_H
#include <QStackedWidget>
class VKStackedWidget : public QStackedWidget
{
Q_OBJECT
public:
explicit VKStackedWidget(QWidget *parent = nullptr);
virtual ~VKStackedWidget();
protected:
QSize sizeHint() const override;
QSize minimumSizeHint() const override;
};
#endif // VKSTACKEDWIDGET_H

10
debian/control vendored
View File

@ -16,12 +16,19 @@ Build-Depends: debhelper-compat (= 12),
libx11-dev, libx11-dev,
libxtst-dev, libxtst-dev,
libqt5svg5-dev, libqt5svg5-dev,
libkylin-nm-base (>=3.20.0.9-0k1),
libnm-dev,
libkf5networkmanagerqt-dev,
kylin-nm-plugin,
libkf5wayland-dev, libkf5wayland-dev,
libkf5screen-dev, libkf5screen-dev,
libgsettings-qt-dev, libgsettings-qt-dev,
libkf5windowsystem-dev, libkf5windowsystem-dev,
libmatemixer-dev, libmatemixer-dev,
libukui-log4qt-dev libukui-log4qt-dev,
libkysdk-sysinfo-dev (>> 1.1.0kylin1),
ukui-input-gather (>=1.0.0.2),
libinput-dev
Standards-Version: 4.5.0 Standards-Version: 4.5.0
Rules-Requires-Root: no Rules-Requires-Root: no
Homepage: https://www.github.com/ukui/ukui-screensaver Homepage: https://www.github.com/ukui/ukui-screensaver
@ -34,6 +41,7 @@ Depends: ethtool,
mate-desktop-common, mate-desktop-common,
ukui-session-manager, ukui-session-manager,
libpam-biometric(>=3.20.0.10), libpam-biometric(>=3.20.0.10),
ukui-input-gather(>=1.0.0.2),
${misc:Depends}, ${misc:Depends},
${shlibs:Depends} ${shlibs:Depends}
Replaces: ukui-screensaver-common (<< 2.0.0) Replaces: ukui-screensaver-common (<< 2.0.0)

View File

@ -4,108 +4,131 @@
<context> <context>
<name>AuthDialog</name> <name>AuthDialog</name>
<message> <message>
<location filename="../src/authdialog.cpp" line="653"/> <location filename="../src/authdialog.cpp" line="726"/>
<source>Authentication failure, Please try again</source> <source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="251"/>
<location filename="../src/authdialog.cpp" line="252"/> <location filename="../src/authdialog.cpp" line="252"/>
<location filename="../src/authdialog.cpp" line="315"/> <location filename="../src/authdialog.cpp" line="253"/>
<location filename="../src/authdialog.cpp" line="316"/> <location filename="../src/authdialog.cpp" line="320"/>
<location filename="../src/authdialog.cpp" line="321"/>
<source>Please try again in %1 minutes.</source> <source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="260"/> <location filename="../src/authdialog.cpp" line="262"/>
<location filename="../src/authdialog.cpp" line="261"/> <location filename="../src/authdialog.cpp" line="263"/>
<location filename="../src/authdialog.cpp" line="324"/> <location filename="../src/authdialog.cpp" line="329"/>
<location filename="../src/authdialog.cpp" line="325"/> <location filename="../src/authdialog.cpp" line="330"/>
<source>Please try again in %1 seconds.</source> <source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="269"/> <location filename="../src/authdialog.cpp" line="272"/>
<location filename="../src/authdialog.cpp" line="270"/> <location filename="../src/authdialog.cpp" line="273"/>
<location filename="../src/authdialog.cpp" line="333"/> <location filename="../src/authdialog.cpp" line="338"/>
<location filename="../src/authdialog.cpp" line="334"/> <location filename="../src/authdialog.cpp" line="339"/>
<source>Account locked permanently.</source> <source>Account locked permanently.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="449"/> <location filename="../src/authdialog.cpp" line="459"/>
<source>Verify face recognition or enter password to unlock</source> <source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="454"/> <location filename="../src/authdialog.cpp" line="464"/>
<source>Press fingerprint or enter password to unlock</source> <source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="459"/> <location filename="../src/authdialog.cpp" line="469"/>
<source>Verify voiceprint or enter password to unlock</source> <source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="464"/> <location filename="../src/authdialog.cpp" line="474"/>
<source>Verify finger vein or enter password to unlock</source> <source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="469"/> <location filename="../src/authdialog.cpp" line="479"/>
<source>Verify iris or enter password to unlock</source> <source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="474"/> <location filename="../src/authdialog.cpp" line="484"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source> <source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="526"/> <location filename="../src/authdialog.cpp" line="537"/>
<location filename="../src/authdialog.cpp" line="527"/> <location filename="../src/authdialog.cpp" line="538"/>
<source>Password cannot be empty</source> <source>Password cannot be empty</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="614"/> <location filename="../src/authdialog.cpp" line="686"/>
<source>Password </source> <source>Password </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="616"/> <location filename="../src/authdialog.cpp" line="688"/>
<source>Input Password</source> <source>Input Password</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="678"/> <location filename="../src/authdialog.cpp" line="754"/>
<source>Login</source> <source>Login</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="684"/> <location filename="../src/authdialog.cpp" line="766"/>
<source>Retry</source> <source>Retry</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="912"/> <location filename="../src/authdialog.cpp" line="1011"/>
<source>Failed to verify %1, please enter password to unlock</source> <source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="916"/> <location filename="../src/authdialog.cpp" line="1015"/>
<source>Unable to verify %1, please enter password to unlock</source> <source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="922"/> <location filename="../src/authdialog.cpp" line="1021"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source> <source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="933"/> <location filename="../src/authdialog.cpp" line="1032"/>
<source>NET Exception</source> <source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<location filename="../src/batterywidget.cpp" line="163"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/batterywidget.cpp" line="165"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/batterywidget.cpp" line="169"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/batterywidget.cpp" line="172"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -253,32 +276,32 @@
<context> <context>
<name>DeviceType</name> <name>DeviceType</name>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="42"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="61"/>
<source>FingerPrint</source> <source>FingerPrint</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="44"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="63"/>
<source>FingerVein</source> <source>FingerVein</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="46"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="65"/>
<source>Iris</source> <source>Iris</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="48"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="67"/>
<source>Face</source> <source>Face</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="50"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="69"/>
<source>VoicePrint</source> <source>VoicePrint</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="52"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="71"/>
<source>QRCode</source> <source>QRCode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -327,7 +350,6 @@
<name>DlgConnHidWifi</name> <name>DlgConnHidWifi</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifi.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -381,7 +403,6 @@
<name>DlgConnHidWifiLeap</name> <name>DlgConnHidWifiLeap</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifileap.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -465,7 +486,6 @@
<name>DlgConnHidWifiSecFast</name> <name>DlgConnHidWifiSecFast</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecfast.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -600,7 +620,6 @@
<name>DlgConnHidWifiSecLeap</name> <name>DlgConnHidWifiSecLeap</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecleap.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -699,7 +718,6 @@
<name>DlgConnHidWifiSecPeap</name> <name>DlgConnHidWifiSecPeap</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecpeap.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -849,7 +867,6 @@
<name>DlgConnHidWifiSecPwd</name> <name>DlgConnHidWifiSecPwd</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecpwd.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -948,7 +965,6 @@
<name>DlgConnHidWifiSecTls</name> <name>DlgConnHidWifiSecTls</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisectls.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1092,7 +1108,6 @@
<name>DlgConnHidWifiSecTunnelTLS</name> <name>DlgConnHidWifiSecTunnelTLS</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisectunneltls.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1227,7 +1242,6 @@
<name>DlgConnHidWifiWep</name> <name>DlgConnHidWifiWep</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifiwep.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1331,7 +1345,6 @@
<name>DlgConnHidWifiWpa</name> <name>DlgConnHidWifiWpa</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifiwpa.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1390,7 +1403,6 @@
<name>DlgHotspotCreate</name> <name>DlgHotspotCreate</name>
<message> <message>
<location filename="../KylinNM/hot-spot/dlghotspotcreate.ui" line="14"/> <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> <source>Dialog</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1435,6 +1447,124 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>EngineDevice</name>
<message>
<location filename="../src/enginedevice.cpp" line="101"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="101"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="120"/>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="120"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="284"/>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="290"/>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="295"/>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="301"/>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="303"/>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="309"/>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="314"/>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="334"/>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="338"/>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="342"/>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="346"/>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="350"/>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="354"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="358"/>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="362"/>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="366"/>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="370"/>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="374"/>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="378"/>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>InputInfos</name> <name>InputInfos</name>
<message> <message>
@ -1473,7 +1603,6 @@
<name>KeyboardWidget</name> <name>KeyboardWidget</name>
<message> <message>
<location filename="../VirtualKeyboard/src/keyboardwidget.ui" line="29"/> <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> <source>KeyboardWidget</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1482,7 +1611,6 @@
<name>KylinNM</name> <name>KylinNM</name>
<message> <message>
<location filename="../KylinNM/src/kylinnm.ui" line="14"/> <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> <source>kylin-nm</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1554,7 +1682,7 @@
<location filename="../KylinNM/src/kylinnm.cpp" line="1535"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1535"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="1701"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1701"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2426"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2426"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2517"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2518"/>
<source>Not connected</source> <source>Not connected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1567,7 +1695,7 @@
<location filename="../KylinNM/src/kylinnm.cpp" line="1828"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1828"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="1995"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1995"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2428"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2428"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2519"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2520"/>
<source>Disconnected</source> <source>Disconnected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1593,22 +1721,22 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2705"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2706"/>
<source>Conn Ethernet Success</source> <source>Conn Ethernet Success</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2717"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2718"/>
<source>Conn Ethernet Fail</source> <source>Conn Ethernet Fail</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2742"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2743"/>
<source>Conn Wifi Success</source> <source>Conn Wifi Success</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2751"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2752"/>
<source>Confirm your Wi-Fi password or usable of wireless card</source> <source>Confirm your Wi-Fi password or usable of wireless card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1617,32 +1745,44 @@
<name>LockWidget</name> <name>LockWidget</name>
<message> <message>
<location filename="../src/lockwidget.ui" line="14"/> <location filename="../src/lockwidget.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="80"/>
<source>Form</source> <source>Form</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lockwidget.ui" line="55"/> <location filename="../src/lockwidget.ui" line="72"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="83"/>
<source>Date</source> <source>Date</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lockwidget.ui" line="48"/> <location filename="../src/lockwidget.ui" line="65"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="82"/>
<source>Time</source> <source>Time</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../src/lockwidget.cpp" line="1092"/>
<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="1400"/>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lockwidget.cpp" line="1402"/>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LoginOptionsWidget</name> <name>LoginOptionsWidget</name>
<message> <message>
<location filename="../src/loginoptionswidget.cpp" line="49"/> <location filename="../src/loginoptionswidget.cpp" line="64"/>
<source>Login Options</source> <source>Login Options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/loginoptionswidget.cpp" line="504"/> <location filename="../src/loginoptionswidget.cpp" line="550"/>
<source>Identify device removed!</source> <source>Identify device removed!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1661,7 +1801,6 @@
<name>OneConnForm</name> <name>OneConnForm</name>
<message> <message>
<location filename="../KylinNM/src/oneconnform.ui" line="14"/> <location filename="../KylinNM/src/oneconnform.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_oneconnform.h" line="150"/>
<source>Form</source> <source>Form</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1723,7 +1862,6 @@
<name>OneLancForm</name> <name>OneLancForm</name>
<message> <message>
<location filename="../KylinNM/src/onelancform.ui" line="14"/> <location filename="../KylinNM/src/onelancform.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_onelancform.h" line="127"/>
<source>Form</source> <source>Form</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1824,35 +1962,39 @@
<context> <context>
<name>PowerManager</name> <name>PowerManager</name>
<message> <message>
<location filename="../src/powermanager.cpp" line="217"/> <location filename="../src/powermanager.cpp" line="316"/>
<source>Log Out</source> <source>Log Out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="200"/> <location filename="../src/powermanager.cpp" line="299"/>
<source>lock</source> <source>lock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="235"/> <location filename="../src/powermanager.cpp" line="334"/>
<location filename="../src/powermanager.cpp" line="494"/> <location filename="../src/powermanager.cpp" line="672"/>
<source>Restart</source> <source>Reboot</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="255"/> <location filename="../src/powermanager.cpp" line="354"/>
<location filename="../src/powermanager.cpp" line="510"/>
<source>Power Off</source> <source>Power Off</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="558"/> <location filename="../src/powermanager.cpp" line="691"/>
<source>Suspend</source> <source>Shut Down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="534"/> <location filename="../src/powermanager.cpp" line="718"/>
<source>Sleep</source> <source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="746"/>
<source>Suspend</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1869,20 +2011,95 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>S:</name>
<message>
<location filename="../src/enginedevice.cpp" line="308"/>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="313"/>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="337"/>
<source></source>
<comment>laptop primary battery</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="341"/>
<source></source>
<comment>battery-backed AC power source</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="345"/>
<source></source>
<comment>a monitor is a device to measure voltage and current</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="349"/>
<source></source>
<comment>wireless mice with internal batteries</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="353"/>
<source></source>
<comment>wireless keyboard with internal battery</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="357"/>
<source></source>
<comment>portable device</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="361"/>
<source></source>
<comment>cell phone (mobile...)</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="365"/>
<source></source>
<comment>media player, mp3 etc</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="369"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="373"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context> <context>
<name>Screensaver</name> <name>Screensaver</name>
<message> <message>
<location filename="../screensaver/screensaver.cpp" line="140"/> <location filename="../screensaver/screensaver.cpp" line="153"/>
<source>Picture does not exist</source> <source>Picture does not exist</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/screensaver.cpp" line="1086"/> <location filename="../screensaver/screensaver.cpp" line="1191"/>
<source>View</source> <source>View</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/screensaver.cpp" line="1242"/> <location filename="../screensaver/screensaver.cpp" line="1356"/>
<source>You have new notification</source> <source>You have new notification</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1890,8 +2107,51 @@
<context> <context>
<name>SleepTime</name> <name>SleepTime</name>
<message> <message>
<location filename="../screensaver/sleeptime.cpp" line="70"/> <location filename="../screensaver/sleeptime.cpp" line="64"/>
<source>You have rested:</source> <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> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1911,38 +2171,38 @@
<context> <context>
<name>TabletLockWidget</name> <name>TabletLockWidget</name>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="180"/> <location filename="../src/tabletlockwidget.cpp" line="189"/>
<location filename="../src/tabletlockwidget.cpp" line="200"/> <location filename="../src/tabletlockwidget.cpp" line="209"/>
<location filename="../src/tabletlockwidget.cpp" line="219"/> <location filename="../src/tabletlockwidget.cpp" line="228"/>
<location filename="../src/tabletlockwidget.cpp" line="234"/> <location filename="../src/tabletlockwidget.cpp" line="243"/>
<location filename="../src/tabletlockwidget.cpp" line="373"/> <location filename="../src/tabletlockwidget.cpp" line="382"/>
<location filename="../src/tabletlockwidget.cpp" line="388"/> <location filename="../src/tabletlockwidget.cpp" line="397"/>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="186"/> <location filename="../src/tabletlockwidget.cpp" line="195"/>
<location filename="../src/tabletlockwidget.cpp" line="398"/> <location filename="../src/tabletlockwidget.cpp" line="407"/>
<source>Back</source> <source>Back</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="239"/> <location filename="../src/tabletlockwidget.cpp" line="248"/>
<source>Skip</source> <source>Skip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="266"/> <location filename="../src/tabletlockwidget.cpp" line="275"/>
<source>New password is the same as old</source> <source>New password is the same as old</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="277"/> <location filename="../src/tabletlockwidget.cpp" line="286"/>
<source>Reset password error:%1</source> <source>Reset password error:%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="289"/> <location filename="../src/tabletlockwidget.cpp" line="298"/>
<source>Please scan by correct WeChat</source> <source>Please scan by correct WeChat</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2014,25 +2274,38 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>Widget</name>
<message>
<location filename="../examples/LoadCustomPlugin/widget.ui" line="14"/>
<source>Widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../examples/LoadCustomPlugin/widget.ui" line="26"/>
<source>LoadPlugin</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>main</name> <name>main</name>
<message> <message>
<location filename="../screensaver/main.cpp" line="65"/> <location filename="../screensaver/main.cpp" line="56"/>
<source>Screensaver for ukui-screensaver</source> <source>Screensaver for ukui-screensaver</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="69"/> <location filename="../screensaver/main.cpp" line="60"/>
<source>show on root window</source> <source>show on root window</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="71"/> <location filename="../screensaver/main.cpp" line="62"/>
<source>show on window.</source> <source>show on window.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="72"/> <location filename="../screensaver/main.cpp" line="63"/>
<source>window id</source> <source>window id</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2043,8 +2316,8 @@
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-command.cpp" line="47"/> <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="166"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="186"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="168"/>
<source>lock the screen immediately</source> <source>lock the screen immediately</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2064,23 +2337,23 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="179"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="161"/>
<source>Dialog for the ukui ScreenSaver.</source> <source>Dialog for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="188"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="170"/>
<source>activated by session idle signal</source> <source>activated by session idle signal</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="190"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="172"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="194"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="176"/>
<source>lock the screen and show screensaver immediately</source> <source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="192"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="174"/>
<source>show screensaver immediately</source> <source>show screensaver immediately</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -83,10 +83,6 @@
<source>Login</source> <source>Login</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>NET Exception</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Failed to verify %1, you still have %2 verification opportunities</source> <source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -107,6 +103,29 @@
<source>Input Password</source> <source>Input Password</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>BiometricAuthWidget</name> <name>BiometricAuthWidget</name>
@ -1160,6 +1179,101 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>EngineDevice</name>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>InputInfos</name> <name>InputInfos</name>
<message> <message>
@ -1311,6 +1425,18 @@
<source>SwitchUser</source> <source>SwitchUser</source>
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </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>
<context> <context>
<name>LoginOptionsWidget</name> <name>LoginOptionsWidget</name>
@ -1459,7 +1585,7 @@
<name>PowerManager</name> <name>PowerManager</name>
<message> <message>
<source>Sleep</source> <source>Sleep</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Log Out</source> <source>Log Out</source>
@ -1471,7 +1597,7 @@
</message> </message>
<message> <message>
<source>Restart</source> <source>Restart</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Switch User</source> <source>Switch User</source>
@ -1489,6 +1615,18 @@
<source>lock</source> <source>lock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>
@ -1501,6 +1639,69 @@
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context>
<name>S:</name>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>laptop primary battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>battery-backed AC power source</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>a monitor is a device to measure voltage and current</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless mice with internal batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless keyboard with internal battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>portable device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>cell phone (mobile...)</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>media player, mp3 etc</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context> <context>
<name>Screensaver</name> <name>Screensaver</name>
<message> <message>
@ -1528,7 +1729,46 @@
<name>SleepTime</name> <name>SleepTime</name>
<message> <message>
<source>You have rested:</source> <source>You have rested:</source>
<translation> </translation> <translation type="vanished"> </translation>
</message>
<message>
<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"></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> </message>
</context> </context>
<context> <context>
@ -1621,6 +1861,17 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>Widget</name>
<message>
<source>Widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LoadPlugin</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>main</name> <name>main</name>
<message> <message>

View File

@ -83,10 +83,6 @@
<source>Verify iris or enter password to unlock</source> <source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>NET Exception</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Failed to verify %1, you still have %2 verification opportunities</source> <source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -107,6 +103,29 @@
<source>Input Password</source> <source>Input Password</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>BioAuthWidget</name> <name>BioAuthWidget</name>
@ -1225,6 +1244,101 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>EngineDevice</name>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>InputInfos</name> <name>InputInfos</name>
<message> <message>
@ -1376,6 +1490,18 @@
<source>SwitchUser</source> <source>SwitchUser</source>
<translation type="vanished">Cambiar de usuario</translation> <translation type="vanished">Cambiar de usuario</translation>
</message> </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>
<context> <context>
<name>LoginOptionsWidget</name> <name>LoginOptionsWidget</name>
@ -1534,10 +1660,6 @@
<source>Log Out</source> <source>Log Out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Power Off</source> <source>Power Off</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1547,11 +1669,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Sleep</source> <source>lock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>lock</source> <source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hibernate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1566,6 +1696,69 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>S:</name>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>laptop primary battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>battery-backed AC power source</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>a monitor is a device to measure voltage and current</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless mice with internal batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless keyboard with internal battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>portable device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>cell phone (mobile...)</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>media player, mp3 etc</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context> <context>
<name>Screensaver</name> <name>Screensaver</name>
<message> <message>
@ -1584,7 +1777,42 @@
<context> <context>
<name>SleepTime</name> <name>SleepTime</name>
<message> <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> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1678,6 +1906,17 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>Widget</name>
<message>
<source>Widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LoadPlugin</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>main</name> <name>main</name>
<message> <message>

View File

@ -83,10 +83,6 @@
<source>Verify iris or enter password to unlock</source> <source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>NET Exception</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Failed to verify %1, you still have %2 verification opportunities</source> <source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -107,6 +103,29 @@
<source>Input Password</source> <source>Input Password</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>BioAuthWidget</name> <name>BioAuthWidget</name>
@ -1225,6 +1244,101 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>EngineDevice</name>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>InputInfos</name> <name>InputInfos</name>
<message> <message>
@ -1376,6 +1490,18 @@
<source>SwitchUser</source> <source>SwitchUser</source>
<translation type="vanished">Changer d&apos;utilisateur</translation> <translation type="vanished">Changer d&apos;utilisateur</translation>
</message> </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>
<context> <context>
<name>LoginOptionsWidget</name> <name>LoginOptionsWidget</name>
@ -1534,10 +1660,6 @@
<source>Log Out</source> <source>Log Out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Power Off</source> <source>Power Off</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1547,11 +1669,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Sleep</source> <source>lock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>lock</source> <source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hibernate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1566,6 +1696,69 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>S:</name>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>laptop primary battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>battery-backed AC power source</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>a monitor is a device to measure voltage and current</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless mice with internal batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless keyboard with internal battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>portable device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>cell phone (mobile...)</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>media player, mp3 etc</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context> <context>
<name>Screensaver</name> <name>Screensaver</name>
<message> <message>
@ -1584,7 +1777,42 @@
<context> <context>
<name>SleepTime</name> <name>SleepTime</name>
<message> <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> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1678,6 +1906,17 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>Widget</name>
<message>
<source>Widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LoadPlugin</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>main</name> <name>main</name>
<message> <message>

View File

@ -83,10 +83,6 @@
<source>Verify iris or enter password to unlock</source> <source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>NET Exception</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Failed to verify %1, you still have %2 verification opportunities</source> <source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -107,6 +103,29 @@
<source>Input Password</source> <source>Input Password</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>BioAuthWidget</name> <name>BioAuthWidget</name>
@ -1225,6 +1244,101 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>EngineDevice</name>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>InputInfos</name> <name>InputInfos</name>
<message> <message>
@ -1376,6 +1490,18 @@
<source>SwitchUser</source> <source>SwitchUser</source>
<translation type="vanished">Mudar de utilizador</translation> <translation type="vanished">Mudar de utilizador</translation>
</message> </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>
<context> <context>
<name>LoginOptionsWidget</name> <name>LoginOptionsWidget</name>
@ -1534,10 +1660,6 @@
<source>Log Out</source> <source>Log Out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Power Off</source> <source>Power Off</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1547,11 +1669,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Sleep</source> <source>lock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>lock</source> <source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hibernate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1566,6 +1696,69 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>S:</name>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>laptop primary battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>battery-backed AC power source</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>a monitor is a device to measure voltage and current</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless mice with internal batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless keyboard with internal battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>portable device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>cell phone (mobile...)</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>media player, mp3 etc</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context> <context>
<name>Screensaver</name> <name>Screensaver</name>
<message> <message>
@ -1584,7 +1777,42 @@
<context> <context>
<name>SleepTime</name> <name>SleepTime</name>
<message> <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> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1678,6 +1906,17 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>Widget</name>
<message>
<source>Widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LoadPlugin</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>main</name> <name>main</name>
<message> <message>

View File

@ -83,10 +83,6 @@
<source>Verify iris or enter password to unlock</source> <source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>NET Exception</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Failed to verify %1, you still have %2 verification opportunities</source> <source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -107,6 +103,29 @@
<source>Input Password</source> <source>Input Password</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Abnormal network</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>BatteryWidget</name>
<message>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>BioAuthWidget</name> <name>BioAuthWidget</name>
@ -1225,6 +1244,101 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>EngineDevice</name>
<message>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>InputInfos</name> <name>InputInfos</name>
<message> <message>
@ -1376,6 +1490,18 @@
<source>SwitchUser</source> <source>SwitchUser</source>
<translation type="vanished">Сменить пользователя</translation> <translation type="vanished">Сменить пользователя</translation>
</message> </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>
<context> <context>
<name>LoginOptionsWidget</name> <name>LoginOptionsWidget</name>
@ -1534,10 +1660,6 @@
<source>Log Out</source> <source>Log Out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<source>Restart</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<source>Power Off</source> <source>Power Off</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
@ -1547,11 +1669,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>Sleep</source> <source>lock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<source>lock</source> <source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Shut Down</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Hibernate</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1566,6 +1696,69 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>S:</name>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>laptop primary battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>battery-backed AC power source</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>a monitor is a device to measure voltage and current</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless mice with internal batteries</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>wireless keyboard with internal battery</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>portable device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>cell phone (mobile...)</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>media player, mp3 etc</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
<message>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context> <context>
<name>Screensaver</name> <name>Screensaver</name>
<message> <message>
@ -1584,7 +1777,42 @@
<context> <context>
<name>SleepTime</name> <name>SleepTime</name>
<message> <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> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1678,6 +1906,17 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>Widget</name>
<message>
<source>Widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>LoadPlugin</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>main</name> <name>main</name>
<message> <message>

View File

@ -16,7 +16,7 @@
<translation type="obsolete">Parola</translation> <translation type="obsolete">Parola</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="684"/> <location filename="../src/authdialog.cpp" line="766"/>
<source>Retry</source> <source>Retry</source>
<translation type="unfinished">Yeniden Dene</translation> <translation type="unfinished">Yeniden Dene</translation>
</message> </message>
@ -41,103 +41,103 @@
<translation type="vanished">Kimlik doğrulama hatası, hala %1 kalan denemen var</translation> <translation type="vanished">Kimlik doğrulama hatası, hala %1 kalan denemen var</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="653"/> <location filename="../src/authdialog.cpp" line="726"/>
<source>Authentication failure, Please try again</source> <source>Authentication failure, Please try again</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="251"/>
<location filename="../src/authdialog.cpp" line="252"/> <location filename="../src/authdialog.cpp" line="252"/>
<location filename="../src/authdialog.cpp" line="315"/> <location filename="../src/authdialog.cpp" line="253"/>
<location filename="../src/authdialog.cpp" line="316"/> <location filename="../src/authdialog.cpp" line="320"/>
<location filename="../src/authdialog.cpp" line="321"/>
<source>Please try again in %1 minutes.</source> <source>Please try again in %1 minutes.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="260"/> <location filename="../src/authdialog.cpp" line="262"/>
<location filename="../src/authdialog.cpp" line="261"/> <location filename="../src/authdialog.cpp" line="263"/>
<location filename="../src/authdialog.cpp" line="324"/> <location filename="../src/authdialog.cpp" line="329"/>
<location filename="../src/authdialog.cpp" line="325"/> <location filename="../src/authdialog.cpp" line="330"/>
<source>Please try again in %1 seconds.</source> <source>Please try again in %1 seconds.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="269"/> <location filename="../src/authdialog.cpp" line="272"/>
<location filename="../src/authdialog.cpp" line="270"/> <location filename="../src/authdialog.cpp" line="273"/>
<location filename="../src/authdialog.cpp" line="333"/> <location filename="../src/authdialog.cpp" line="338"/>
<location filename="../src/authdialog.cpp" line="334"/> <location filename="../src/authdialog.cpp" line="339"/>
<source>Account locked permanently.</source> <source>Account locked permanently.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="449"/> <location filename="../src/authdialog.cpp" line="459"/>
<source>Verify face recognition or enter password to unlock</source> <source>Verify face recognition or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="454"/> <location filename="../src/authdialog.cpp" line="464"/>
<source>Press fingerprint or enter password to unlock</source> <source>Press fingerprint or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="459"/> <location filename="../src/authdialog.cpp" line="469"/>
<source>Verify voiceprint or enter password to unlock</source> <source>Verify voiceprint or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="464"/> <location filename="../src/authdialog.cpp" line="474"/>
<source>Verify finger vein or enter password to unlock</source> <source>Verify finger vein or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="469"/> <location filename="../src/authdialog.cpp" line="479"/>
<source>Verify iris or enter password to unlock</source> <source>Verify iris or enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="474"/> <location filename="../src/authdialog.cpp" line="484"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source> <source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="526"/> <location filename="../src/authdialog.cpp" line="537"/>
<location filename="../src/authdialog.cpp" line="527"/> <location filename="../src/authdialog.cpp" line="538"/>
<source>Password cannot be empty</source> <source>Password cannot be empty</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="614"/> <location filename="../src/authdialog.cpp" line="686"/>
<source>Password </source> <source>Password </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="616"/> <location filename="../src/authdialog.cpp" line="688"/>
<source>Input Password</source> <source>Input Password</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="678"/> <location filename="../src/authdialog.cpp" line="754"/>
<source>Login</source> <source>Login</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="912"/> <location filename="../src/authdialog.cpp" line="1011"/>
<source>Failed to verify %1, please enter password to unlock</source> <source>Failed to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="916"/> <location filename="../src/authdialog.cpp" line="1015"/>
<source>Unable to verify %1, please enter password to unlock</source> <source>Unable to verify %1, please enter password to unlock</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="922"/> <location filename="../src/authdialog.cpp" line="1021"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source> <source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="933"/> <location filename="../src/authdialog.cpp" line="1032"/>
<source>NET Exception</source> <source>Abnormal network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
@ -153,6 +153,29 @@
<translation type="obsolete">Diğer Ayıtlar</translation> <translation type="obsolete">Diğer Ayıtlar</translation>
</message> </message>
</context> </context>
<context>
<name>BatteryWidget</name>
<message>
<location filename="../src/batterywidget.cpp" line="163"/>
<source>Charging...</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/batterywidget.cpp" line="165"/>
<source>fully charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/batterywidget.cpp" line="169"/>
<source>PowerMode</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/batterywidget.cpp" line="172"/>
<source>BatteryMode</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>BioDevices</name> <name>BioDevices</name>
<message> <message>
@ -335,32 +358,32 @@
<context> <context>
<name>DeviceType</name> <name>DeviceType</name>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="42"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="61"/>
<source>FingerPrint</source> <source>FingerPrint</source>
<translation type="unfinished">Parmak İzi</translation> <translation type="unfinished">Parmak İzi</translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="44"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="63"/>
<source>FingerVein</source> <source>FingerVein</source>
<translation type="unfinished">Parmak Damarı</translation> <translation type="unfinished">Parmak Damarı</translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="46"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="65"/>
<source>Iris</source> <source>Iris</source>
<translation type="unfinished">Göz</translation> <translation type="unfinished">Göz</translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="48"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="67"/>
<source>Face</source> <source>Face</source>
<translation type="unfinished">Yüz</translation> <translation type="unfinished">Yüz</translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="50"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="69"/>
<source>VoicePrint</source> <source>VoicePrint</source>
<translation type="unfinished">Ses İzi</translation> <translation type="unfinished">Ses İzi</translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="52"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="71"/>
<source>QRCode</source> <source>QRCode</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -409,7 +432,6 @@
<name>DlgConnHidWifi</name> <name>DlgConnHidWifi</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifi.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -463,7 +485,6 @@
<name>DlgConnHidWifiLeap</name> <name>DlgConnHidWifiLeap</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifileap.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -547,7 +568,6 @@
<name>DlgConnHidWifiSecFast</name> <name>DlgConnHidWifiSecFast</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecfast.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -682,7 +702,6 @@
<name>DlgConnHidWifiSecLeap</name> <name>DlgConnHidWifiSecLeap</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecleap.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -781,7 +800,6 @@
<name>DlgConnHidWifiSecPeap</name> <name>DlgConnHidWifiSecPeap</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecpeap.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -931,7 +949,6 @@
<name>DlgConnHidWifiSecPwd</name> <name>DlgConnHidWifiSecPwd</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisecpwd.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1030,7 +1047,6 @@
<name>DlgConnHidWifiSecTls</name> <name>DlgConnHidWifiSecTls</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisectls.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1174,7 +1190,6 @@
<name>DlgConnHidWifiSecTunnelTLS</name> <name>DlgConnHidWifiSecTunnelTLS</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifisectunneltls.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1309,7 +1324,6 @@
<name>DlgConnHidWifiWep</name> <name>DlgConnHidWifiWep</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifiwep.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1413,7 +1427,6 @@
<name>DlgConnHidWifiWpa</name> <name>DlgConnHidWifiWpa</name>
<message> <message>
<location filename="../KylinNM/wireless-security/dlgconnhidwifiwpa.ui" line="14"/> <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> <source>Connect to Hidden Wi-Fi Network</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1472,7 +1485,6 @@
<name>DlgHotspotCreate</name> <name>DlgHotspotCreate</name>
<message> <message>
<location filename="../KylinNM/hot-spot/dlghotspotcreate.ui" line="14"/> <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> <source>Dialog</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1517,6 +1529,124 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>EngineDevice</name>
<message>
<location filename="../src/enginedevice.cpp" line="101"/>
<source>yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="101"/>
<source>no</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="120"/>
<source>Yes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="120"/>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="284"/>
<source>%1% available, charged</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="290"/>
<source>Left %1h %2m (%3%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="295"/>
<source>%1% available</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="301"/>
<source>Left %1h %2m to full</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="303"/>
<source>charging (%1%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="309"/>
<source>%1 waiting to discharge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="314"/>
<source>%1 waiting to charge (%2%)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="334"/>
<source>AC adapter</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="338"/>
<source>Laptop battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="342"/>
<source>UPS</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="346"/>
<source>Monitor</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="350"/>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="354"/>
<source>Keyboard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="358"/>
<source>PDA</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="362"/>
<source>Cell phone</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="366"/>
<source>Media player</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="370"/>
<source>Tablet</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="374"/>
<source>Computer</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="378"/>
<source>unrecognised</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>InputInfos</name> <name>InputInfos</name>
<message> <message>
@ -1555,7 +1685,6 @@
<name>KeyboardWidget</name> <name>KeyboardWidget</name>
<message> <message>
<location filename="../VirtualKeyboard/src/keyboardwidget.ui" line="29"/> <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> <source>KeyboardWidget</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1564,7 +1693,6 @@
<name>KylinNM</name> <name>KylinNM</name>
<message> <message>
<location filename="../KylinNM/src/kylinnm.ui" line="14"/> <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> <source>kylin-nm</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1636,7 +1764,7 @@
<location filename="../KylinNM/src/kylinnm.cpp" line="1535"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1535"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="1701"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1701"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2426"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2426"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2517"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2518"/>
<source>Not connected</source> <source>Not connected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1649,7 +1777,7 @@
<location filename="../KylinNM/src/kylinnm.cpp" line="1828"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1828"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="1995"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1995"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2428"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2428"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2519"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2520"/>
<source>Disconnected</source> <source>Disconnected</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1675,22 +1803,22 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2705"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2706"/>
<source>Conn Ethernet Success</source> <source>Conn Ethernet Success</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2717"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2718"/>
<source>Conn Ethernet Fail</source> <source>Conn Ethernet Fail</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2742"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2743"/>
<source>Conn Wifi Success</source> <source>Conn Wifi Success</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2751"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2752"/>
<source>Confirm your Wi-Fi password or usable of wireless card</source> <source>Confirm your Wi-Fi password or usable of wireless card</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1699,19 +1827,16 @@
<name>LockWidget</name> <name>LockWidget</name>
<message> <message>
<location filename="../src/lockwidget.ui" line="14"/> <location filename="../src/lockwidget.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="80"/>
<source>Form</source> <source>Form</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/lockwidget.ui" line="55"/> <location filename="../src/lockwidget.ui" line="72"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="83"/>
<source>Date</source> <source>Date</source>
<translation type="unfinished">Tarih</translation> <translation type="unfinished">Tarih</translation>
</message> </message>
<message> <message>
<location filename="../src/lockwidget.ui" line="48"/> <location filename="../src/lockwidget.ui" line="65"/>
<location filename="../obj-x86_64-linux-gnu/src/ui_lockwidget.h" line="82"/>
<source>Time</source> <source>Time</source>
<translation type="unfinished">Zaman</translation> <translation type="unfinished">Zaman</translation>
</message> </message>
@ -1723,11 +1848,26 @@
<source>SwitchUser</source> <source>SwitchUser</source>
<translation type="vanished">Kullanıcı Değiştir</translation> <translation type="vanished">Kullanıcı Değiştir</translation>
</message> </message>
<message>
<location filename="../src/lockwidget.cpp" line="1092"/>
<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="1400"/>
<source>LAN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/lockwidget.cpp" line="1402"/>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>LoginOptionsWidget</name> <name>LoginOptionsWidget</name>
<message> <message>
<location filename="../src/loginoptionswidget.cpp" line="49"/> <location filename="../src/loginoptionswidget.cpp" line="64"/>
<source>Login Options</source> <source>Login Options</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1736,7 +1876,7 @@
<translation type="obsolete">Parola</translation> <translation type="obsolete">Parola</translation>
</message> </message>
<message> <message>
<location filename="../src/loginoptionswidget.cpp" line="504"/> <location filename="../src/loginoptionswidget.cpp" line="550"/>
<source>Identify device removed!</source> <source>Identify device removed!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1755,7 +1895,6 @@
<name>OneConnForm</name> <name>OneConnForm</name>
<message> <message>
<location filename="../KylinNM/src/oneconnform.ui" line="14"/> <location filename="../KylinNM/src/oneconnform.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_oneconnform.h" line="150"/>
<source>Form</source> <source>Form</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1817,7 +1956,6 @@
<name>OneLancForm</name> <name>OneLancForm</name>
<message> <message>
<location filename="../KylinNM/src/onelancform.ui" line="14"/> <location filename="../KylinNM/src/onelancform.ui" line="14"/>
<location filename="../obj-x86_64-linux-gnu/KylinNM/ui_onelancform.h" line="127"/>
<source>Form</source> <source>Form</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -1918,7 +2056,7 @@
<context> <context>
<name>PowerManager</name> <name>PowerManager</name>
<message> <message>
<location filename="../src/powermanager.cpp" line="200"/> <location filename="../src/powermanager.cpp" line="299"/>
<source>lock</source> <source>lock</source>
<translation>kilit</translation> <translation>kilit</translation>
</message> </message>
@ -1947,30 +2085,38 @@
<translation type="obsolete">Kullanıcı Değiştir</translation> <translation type="obsolete">Kullanıcı Değiştir</translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="217"/> <location filename="../src/powermanager.cpp" line="316"/>
<source>Log Out</source> <source>Log Out</source>
<translation type="unfinished">Çıkış</translation> <translation type="unfinished">Çıkış</translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="235"/>
<location filename="../src/powermanager.cpp" line="494"/>
<source>Restart</source> <source>Restart</source>
<translation type="unfinished">Yeniden Başlat</translation> <translation type="obsolete">Yeniden Başlat</translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="255"/> <location filename="../src/powermanager.cpp" line="334"/>
<location filename="../src/powermanager.cpp" line="510"/> <location filename="../src/powermanager.cpp" line="672"/>
<source>Reboot</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="354"/>
<source>Power Off</source> <source>Power Off</source>
<translation type="unfinished">Bilgisayarı Kapat</translation> <translation type="unfinished">Bilgisayarı Kapat</translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="558"/> <location filename="../src/powermanager.cpp" line="691"/>
<source>Suspend</source> <source>Shut Down</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="534"/> <location filename="../src/powermanager.cpp" line="718"/>
<source>Sleep</source> <source>Hibernate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/powermanager.cpp" line="746"/>
<source>Suspend</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -1987,6 +2133,81 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>S:</name>
<message>
<location filename="../src/enginedevice.cpp" line="308"/>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="313"/>
<source></source>
<comment>this is only shown for laptops with multiple batteries</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="337"/>
<source></source>
<comment>laptop primary battery</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="341"/>
<source></source>
<comment>battery-backed AC power source</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="345"/>
<source></source>
<comment>a monitor is a device to measure voltage and current</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="349"/>
<source></source>
<comment>wireless mice with internal batteries</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="353"/>
<source></source>
<comment>wireless keyboard with internal battery</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="357"/>
<source></source>
<comment>portable device</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="361"/>
<source></source>
<comment>cell phone (mobile...)</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="365"/>
<source></source>
<comment>media player, mp3 etc</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="369"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
<message>
<location filename="../src/enginedevice.cpp" line="373"/>
<source></source>
<comment>tablet device</comment>
<translation></translation>
</message>
</context>
<context> <context>
<name>Screensaver</name> <name>Screensaver</name>
<message> <message>
@ -1998,17 +2219,17 @@
<translation type="obsolete">çıkış</translation> <translation type="obsolete">çıkış</translation>
</message> </message>
<message> <message>
<location filename="../screensaver/screensaver.cpp" line="140"/> <location filename="../screensaver/screensaver.cpp" line="153"/>
<source>Picture does not exist</source> <source>Picture does not exist</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/screensaver.cpp" line="1086"/> <location filename="../screensaver/screensaver.cpp" line="1191"/>
<source>View</source> <source>View</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/screensaver.cpp" line="1242"/> <location filename="../screensaver/screensaver.cpp" line="1356"/>
<source>You have new notification</source> <source>You have new notification</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2024,8 +2245,51 @@
<context> <context>
<name>SleepTime</name> <name>SleepTime</name>
<message> <message>
<location filename="../screensaver/sleeptime.cpp" line="70"/> <location filename="../screensaver/sleeptime.cpp" line="64"/>
<source>You have rested:</source> <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> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
@ -2045,38 +2309,38 @@
<context> <context>
<name>TabletLockWidget</name> <name>TabletLockWidget</name>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="180"/> <location filename="../src/tabletlockwidget.cpp" line="189"/>
<location filename="../src/tabletlockwidget.cpp" line="200"/> <location filename="../src/tabletlockwidget.cpp" line="209"/>
<location filename="../src/tabletlockwidget.cpp" line="219"/> <location filename="../src/tabletlockwidget.cpp" line="228"/>
<location filename="../src/tabletlockwidget.cpp" line="234"/> <location filename="../src/tabletlockwidget.cpp" line="243"/>
<location filename="../src/tabletlockwidget.cpp" line="373"/> <location filename="../src/tabletlockwidget.cpp" line="382"/>
<location filename="../src/tabletlockwidget.cpp" line="388"/> <location filename="../src/tabletlockwidget.cpp" line="397"/>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="186"/> <location filename="../src/tabletlockwidget.cpp" line="195"/>
<location filename="../src/tabletlockwidget.cpp" line="398"/> <location filename="../src/tabletlockwidget.cpp" line="407"/>
<source>Back</source> <source>Back</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="239"/> <location filename="../src/tabletlockwidget.cpp" line="248"/>
<source>Skip</source> <source>Skip</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="266"/> <location filename="../src/tabletlockwidget.cpp" line="275"/>
<source>New password is the same as old</source> <source>New password is the same as old</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="277"/> <location filename="../src/tabletlockwidget.cpp" line="286"/>
<source>Reset password error:%1</source> <source>Reset password error:%1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="289"/> <location filename="../src/tabletlockwidget.cpp" line="298"/>
<source>Please scan by correct WeChat</source> <source>Please scan by correct WeChat</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -2148,6 +2412,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
</context> </context>
<context>
<name>Widget</name>
<message>
<location filename="../examples/LoadCustomPlugin/widget.ui" line="14"/>
<source>Widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../examples/LoadCustomPlugin/widget.ui" line="26"/>
<source>LoadPlugin</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>main</name> <name>main</name>
<message> <message>
@ -2157,8 +2434,8 @@
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-command.cpp" line="47"/> <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="166"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="186"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="168"/>
<source>lock the screen immediately</source> <source>lock the screen immediately</source>
<translation type="unfinished">Ekranı hemen kilitle</translation> <translation type="unfinished">Ekranı hemen kilitle</translation>
</message> </message>
@ -2178,43 +2455,43 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="179"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="161"/>
<source>Dialog for the ukui ScreenSaver.</source> <source>Dialog for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="188"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="170"/>
<source>activated by session idle signal</source> <source>activated by session idle signal</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="190"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="172"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="194"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="176"/>
<source>lock the screen and show screensaver immediately</source> <source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="192"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="174"/>
<source>show screensaver immediately</source> <source>show screensaver immediately</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="65"/> <location filename="../screensaver/main.cpp" line="56"/>
<source>Screensaver for ukui-screensaver</source> <source>Screensaver for ukui-screensaver</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="69"/> <location filename="../screensaver/main.cpp" line="60"/>
<source>show on root window</source> <source>show on root window</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="71"/> <location filename="../screensaver/main.cpp" line="62"/>
<source>show on window.</source> <source>show on window.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="72"/> <location filename="../screensaver/main.cpp" line="63"/>
<source>window id</source> <source>window id</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -16,7 +16,7 @@
<translation type="obsolete">使</translation> <translation type="obsolete">使</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="681"/> <location filename="../src/authdialog.cpp" line="766"/>
<source>Retry</source> <source>Retry</source>
<translation></translation> <translation></translation>
</message> </message>
@ -45,71 +45,71 @@
<translation type="vanished">%1%2</translation> <translation type="vanished">%1%2</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="251"/>
<location filename="../src/authdialog.cpp" line="252"/> <location filename="../src/authdialog.cpp" line="252"/>
<location filename="../src/authdialog.cpp" line="315"/> <location filename="../src/authdialog.cpp" line="253"/>
<location filename="../src/authdialog.cpp" line="316"/> <location filename="../src/authdialog.cpp" line="320"/>
<location filename="../src/authdialog.cpp" line="321"/>
<source>Please try again in %1 minutes.</source> <source>Please try again in %1 minutes.</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="260"/> <location filename="../src/authdialog.cpp" line="262"/>
<location filename="../src/authdialog.cpp" line="261"/> <location filename="../src/authdialog.cpp" line="263"/>
<location filename="../src/authdialog.cpp" line="324"/> <location filename="../src/authdialog.cpp" line="329"/>
<location filename="../src/authdialog.cpp" line="325"/> <location filename="../src/authdialog.cpp" line="330"/>
<source>Please try again in %1 seconds.</source> <source>Please try again in %1 seconds.</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="269"/> <location filename="../src/authdialog.cpp" line="272"/>
<location filename="../src/authdialog.cpp" line="270"/> <location filename="../src/authdialog.cpp" line="273"/>
<location filename="../src/authdialog.cpp" line="333"/> <location filename="../src/authdialog.cpp" line="338"/>
<location filename="../src/authdialog.cpp" line="334"/> <location filename="../src/authdialog.cpp" line="339"/>
<source>Account locked permanently.</source> <source>Account locked permanently.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="449"/> <location filename="../src/authdialog.cpp" line="459"/>
<source>Verify face recognition or enter password to unlock</source> <source>Verify face recognition or enter password to unlock</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="454"/> <location filename="../src/authdialog.cpp" line="464"/>
<source>Press fingerprint or enter password to unlock</source> <source>Press fingerprint or enter password to unlock</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="459"/> <location filename="../src/authdialog.cpp" line="469"/>
<source>Verify voiceprint or enter password to unlock</source> <source>Verify voiceprint or enter password to unlock</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="464"/> <location filename="../src/authdialog.cpp" line="474"/>
<source>Verify finger vein or enter password to unlock</source> <source>Verify finger vein or enter password to unlock</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="469"/> <location filename="../src/authdialog.cpp" line="479"/>
<source>Verify iris or enter password to unlock</source> <source>Verify iris or enter password to unlock</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="613"/> <location filename="../src/authdialog.cpp" line="688"/>
<source>Input Password</source> <source>Input Password</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="909"/> <location filename="../src/authdialog.cpp" line="1011"/>
<source>Failed to verify %1, please enter password to unlock</source> <source>Failed to verify %1, please enter password to unlock</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="913"/> <location filename="../src/authdialog.cpp" line="1015"/>
<source>Unable to verify %1, please enter password to unlock</source> <source>Unable to verify %1, please enter password to unlock</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="937"/> <location filename="../src/authdialog.cpp" line="1032"/>
<source>Abnormal network</source> <source>Abnormal network</source>
<translation></translation> <translation></translation>
</message> </message>
@ -118,8 +118,8 @@
<translation type="vanished">使</translation> <translation type="vanished">使</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="527"/> <location filename="../src/authdialog.cpp" line="537"/>
<location filename="../src/authdialog.cpp" line="528"/> <location filename="../src/authdialog.cpp" line="538"/>
<source>Password cannot be empty</source> <source>Password cannot be empty</source>
<translation></translation> <translation></translation>
</message> </message>
@ -132,7 +132,7 @@
<translation type="vanished">%1.</translation> <translation type="vanished">%1.</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="919"/> <location filename="../src/authdialog.cpp" line="1021"/>
<source>Failed to verify %1, you still have %2 verification opportunities</source> <source>Failed to verify %1, you still have %2 verification opportunities</source>
<translation>%1%2</translation> <translation>%1%2</translation>
</message> </message>
@ -145,9 +145,8 @@
<translation type="vanished">/%1</translation> <translation type="vanished">/%1</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="930"/>
<source>NET Exception</source> <source>NET Exception</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<source>Password Incorrect, Please try again</source> <source>Password Incorrect, Please try again</source>
@ -162,22 +161,22 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="650"/> <location filename="../src/authdialog.cpp" line="726"/>
<source>Authentication failure, Please try again</source> <source>Authentication failure, Please try again</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="474"/> <location filename="../src/authdialog.cpp" line="484"/>
<source>Use the bound wechat scanning code or enter the password to unlock</source> <source>Use the bound wechat scanning code or enter the password to unlock</source>
<translation>使</translation> <translation>使</translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="611"/> <location filename="../src/authdialog.cpp" line="686"/>
<source>Password </source> <source>Password </source>
<translation> </translation> <translation> </translation>
</message> </message>
<message> <message>
<location filename="../src/authdialog.cpp" line="675"/> <location filename="../src/authdialog.cpp" line="754"/>
<source>Login</source> <source>Login</source>
<translation></translation> <translation></translation>
</message> </message>
@ -205,24 +204,22 @@
<context> <context>
<name>BatteryWidget</name> <name>BatteryWidget</name>
<message> <message>
<location filename="../src/batterywidget.cpp" line="71"/> <location filename="../src/batterywidget.cpp" line="172"/>
<location filename="../src/batterywidget.cpp" line="139"/>
<source>BatteryMode</source> <source>BatteryMode</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/batterywidget.cpp" line="71"/> <location filename="../src/batterywidget.cpp" line="169"/>
<location filename="../src/batterywidget.cpp" line="136"/>
<source>PowerMode</source> <source>PowerMode</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/batterywidget.cpp" line="129"/> <location filename="../src/batterywidget.cpp" line="163"/>
<source>Charging...</source> <source>Charging...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<message> <message>
<location filename="../src/batterywidget.cpp" line="131"/> <location filename="../src/batterywidget.cpp" line="165"/>
<source>fully charged</source> <source>fully charged</source>
<translation></translation> <translation></translation>
</message> </message>
@ -421,32 +418,32 @@
<context> <context>
<name>DeviceType</name> <name>DeviceType</name>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="42"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="61"/>
<source>FingerPrint</source> <source>FingerPrint</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="44"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="63"/>
<source>FingerVein</source> <source>FingerVein</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="46"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="65"/>
<source>Iris</source> <source>Iris</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="48"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="67"/>
<source>Face</source> <source>Face</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="50"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="69"/>
<source>VoicePrint</source> <source>VoicePrint</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="52"/> <location filename="../BiometricAuth/biometricdeviceinfo.cpp" line="71"/>
<source>QRCode</source> <source>QRCode</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1917,7 +1914,7 @@
<location filename="../KylinNM/src/kylinnm.cpp" line="1535"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1535"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="1701"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1701"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2426"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2426"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2517"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2518"/>
<source>Not connected</source> <source>Not connected</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1930,7 +1927,7 @@
<location filename="../KylinNM/src/kylinnm.cpp" line="1828"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1828"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="1995"/> <location filename="../KylinNM/src/kylinnm.cpp" line="1995"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2428"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2428"/>
<location filename="../KylinNM/src/kylinnm.cpp" line="2519"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2520"/>
<source>Disconnected</source> <source>Disconnected</source>
<translation></translation> <translation></translation>
</message> </message>
@ -1966,7 +1963,7 @@
<translation type="obsolete">线</translation> <translation type="obsolete">线</translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2751"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2752"/>
<source>Confirm your Wi-Fi password or usable of wireless card</source> <source>Confirm your Wi-Fi password or usable of wireless card</source>
<translation type="unfinished">Wi-Fi密码或无线设备</translation> <translation type="unfinished">Wi-Fi密码或无线设备</translation>
</message> </message>
@ -2022,17 +2019,17 @@
<translation type="vanished"> Wi-Fi列表</translation> <translation type="vanished"> Wi-Fi列表</translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2705"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2706"/>
<source>Conn Ethernet Success</source> <source>Conn Ethernet Success</source>
<translation>线</translation> <translation>线</translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2717"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2718"/>
<source>Conn Ethernet Fail</source> <source>Conn Ethernet Fail</source>
<translation>线</translation> <translation>线</translation>
</message> </message>
<message> <message>
<location filename="../KylinNM/src/kylinnm.cpp" line="2742"/> <location filename="../KylinNM/src/kylinnm.cpp" line="2743"/>
<source>Conn Wifi Success</source> <source>Conn Wifi Success</source>
<translation>线</translation> <translation>线</translation>
</message> </message>
@ -2045,12 +2042,12 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/lockwidget.ui" line="55"/> <location filename="../src/lockwidget.ui" line="72"/>
<source>Date</source> <source>Date</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/lockwidget.ui" line="48"/> <location filename="../src/lockwidget.ui" line="65"/>
<source>Time</source> <source>Time</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2063,17 +2060,17 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../src/lockwidget.cpp" line="523"/> <location filename="../src/lockwidget.cpp" line="1092"/>
<source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source> <source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
<translation>退</translation> <translation>退</translation>
</message> </message>
<message> <message>
<location filename="../src/lockwidget.cpp" line="727"/> <location filename="../src/lockwidget.cpp" line="1400"/>
<source>LAN</source> <source>LAN</source>
<translation type="unfinished">线</translation> <translation type="unfinished">线</translation>
</message> </message>
<message> <message>
<location filename="../src/lockwidget.cpp" line="729"/> <location filename="../src/lockwidget.cpp" line="1402"/>
<source>WLAN</source> <source>WLAN</source>
<translation type="unfinished">线</translation> <translation type="unfinished">线</translation>
</message> </message>
@ -2081,7 +2078,7 @@
<context> <context>
<name>LoginOptionsWidget</name> <name>LoginOptionsWidget</name>
<message> <message>
<location filename="../src/loginoptionswidget.cpp" line="49"/> <location filename="../src/loginoptionswidget.cpp" line="64"/>
<source>Login Options</source> <source>Login Options</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2094,7 +2091,7 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../src/loginoptionswidget.cpp" line="504"/> <location filename="../src/loginoptionswidget.cpp" line="550"/>
<source>Identify device removed!</source> <source>Identify device removed!</source>
<translation>!</translation> <translation>!</translation>
</message> </message>
@ -2302,7 +2299,7 @@
<context> <context>
<name>PowerManager</name> <name>PowerManager</name>
<message> <message>
<location filename="../src/powermanager.cpp" line="380"/> <location filename="../src/powermanager.cpp" line="299"/>
<source>lock</source> <source>lock</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2331,38 +2328,37 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="397"/> <location filename="../src/powermanager.cpp" line="316"/>
<source>Log Out</source> <source>Log Out</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="415"/>
<location filename="../src/powermanager.cpp" line="699"/>
<source>Restart</source> <source>Restart</source>
<translation></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="325"/> <location filename="../src/powermanager.cpp" line="334"/>
<location filename="../src/powermanager.cpp" line="672"/>
<source>Reboot</source> <source>Reboot</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="345"/> <location filename="../src/powermanager.cpp" line="354"/>
<source>Power Off</source> <source>Power Off</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="717"/> <location filename="../src/powermanager.cpp" line="691"/>
<source>Shut Down</source> <source>Shut Down</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="743"/> <location filename="../src/powermanager.cpp" line="718"/>
<source>Hibernate</source> <source>Hibernate</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/powermanager.cpp" line="770"/> <location filename="../src/powermanager.cpp" line="746"/>
<source>Suspend</source> <source>Suspend</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2389,7 +2385,7 @@
<message> <message>
<location filename="../src/enginedevice.cpp" line="308"/> <location filename="../src/enginedevice.cpp" line="308"/>
<source></source> <source></source>
<comment>this is only shown for laptops with multiple batteries</comment> <comment>tablet device</comment>
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
@ -2404,7 +2400,7 @@
<translation type="vanished">退</translation> <translation type="vanished">退</translation>
</message> </message>
<message> <message>
<location filename="../screensaver/screensaver.cpp" line="140"/> <location filename="../screensaver/screensaver.cpp" line="153"/>
<source>Picture does not exist</source> <source>Picture does not exist</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2421,12 +2417,12 @@
<translation type="obsolete">%1</translation> <translation type="obsolete">%1</translation>
</message> </message>
<message> <message>
<location filename="../screensaver/screensaver.cpp" line="1289"/> <location filename="../screensaver/screensaver.cpp" line="1356"/>
<source>You have new notification</source> <source>You have new notification</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/screensaver.cpp" line="1133"/> <location filename="../screensaver/screensaver.cpp" line="1191"/>
<source>View</source> <source>View</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2434,9 +2430,8 @@
<context> <context>
<name>SleepTime</name> <name>SleepTime</name>
<message> <message>
<location filename="../screensaver/sleeptime.cpp" line="70"/>
<source>You have rested:</source> <source>You have rested:</source>
<translation>:</translation> <translation type="vanished">:</translation>
</message> </message>
<message> <message>
<location filename="../screensaver/sleeptime.cpp" line="64"/> <location filename="../screensaver/sleeptime.cpp" line="64"/>
@ -2457,17 +2452,16 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/surewindow.ui" line="108"/> <location filename="../src/surewindow.ui" line="157"/>
<source>Cancel</source> <source>Cancel</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/surewindow.ui" line="127"/> <location filename="../src/surewindow.ui" line="176"/>
<source>Confirm</source> <source>Confirm</source>
<translation></translation> <translation></translation>
</message> </message>
<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> <source>Multiple users are logged in at the same time.Are you sure you want to reboot this system?</source>
<translation type="vanished">退</translation> <translation type="vanished">退</translation>
</message> </message>
@ -2527,38 +2521,38 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="266"/> <location filename="../src/tabletlockwidget.cpp" line="275"/>
<source>New password is the same as old</source> <source>New password is the same as old</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="277"/> <location filename="../src/tabletlockwidget.cpp" line="286"/>
<source>Reset password error:%1</source> <source>Reset password error:%1</source>
<translation>:%1</translation> <translation>:%1</translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="289"/> <location filename="../src/tabletlockwidget.cpp" line="298"/>
<source>Please scan by correct WeChat</source> <source>Please scan by correct WeChat</source>
<translation>使</translation> <translation>使</translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="180"/> <location filename="../src/tabletlockwidget.cpp" line="189"/>
<location filename="../src/tabletlockwidget.cpp" line="200"/> <location filename="../src/tabletlockwidget.cpp" line="209"/>
<location filename="../src/tabletlockwidget.cpp" line="219"/> <location filename="../src/tabletlockwidget.cpp" line="228"/>
<location filename="../src/tabletlockwidget.cpp" line="234"/> <location filename="../src/tabletlockwidget.cpp" line="243"/>
<location filename="../src/tabletlockwidget.cpp" line="373"/> <location filename="../src/tabletlockwidget.cpp" line="382"/>
<location filename="../src/tabletlockwidget.cpp" line="388"/> <location filename="../src/tabletlockwidget.cpp" line="397"/>
<source>Cancel</source> <source>Cancel</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="186"/> <location filename="../src/tabletlockwidget.cpp" line="195"/>
<location filename="../src/tabletlockwidget.cpp" line="398"/> <location filename="../src/tabletlockwidget.cpp" line="407"/>
<source>Back</source> <source>Back</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../src/tabletlockwidget.cpp" line="239"/> <location filename="../src/tabletlockwidget.cpp" line="248"/>
<source>Skip</source> <source>Skip</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2634,6 +2628,19 @@
<translation type="vanished"></translation> <translation type="vanished"></translation>
</message> </message>
</context> </context>
<context>
<name>Widget</name>
<message>
<location filename="../examples/LoadCustomPlugin/widget.ui" line="14"/>
<source>Widget</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../examples/LoadCustomPlugin/widget.ui" line="26"/>
<source>LoadPlugin</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>main</name> <name>main</name>
<message> <message>
@ -2643,8 +2650,8 @@
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-command.cpp" line="47"/> <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="166"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="165"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="168"/>
<source>lock the screen immediately</source> <source>lock the screen immediately</source>
<translation></translation> <translation></translation>
</message> </message>
@ -2664,43 +2671,43 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="158"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="161"/>
<source>Dialog for the ukui ScreenSaver.</source> <source>Dialog for the ukui ScreenSaver.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="167"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="170"/>
<source>activated by session idle signal</source> <source>activated by session idle signal</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="169"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="172"/>
<location filename="../src/ukui-screensaver-dialog.cpp" line="173"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="176"/>
<source>lock the screen and show screensaver immediately</source> <source>lock the screen and show screensaver immediately</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../src/ukui-screensaver-dialog.cpp" line="171"/> <location filename="../src/ukui-screensaver-dialog.cpp" line="174"/>
<source>show screensaver immediately</source> <source>show screensaver immediately</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="65"/> <location filename="../screensaver/main.cpp" line="56"/>
<source>Screensaver for ukui-screensaver</source> <source>Screensaver for ukui-screensaver</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="69"/> <location filename="../screensaver/main.cpp" line="60"/>
<source>show on root window</source> <source>show on root window</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="71"/> <location filename="../screensaver/main.cpp" line="62"/>
<source>show on window.</source> <source>show on window.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../screensaver/main.cpp" line="72"/> <location filename="../screensaver/main.cpp" line="63"/>
<source>window id</source> <source>window id</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -2,107 +2,166 @@
OL=天生我材必有用,千金散尽还复来。 OL=天生我材必有用,千金散尽还复来。
author=李白《将进酒》 author=李白《将进酒》
[2] [2]
OL=新时代的伟大成就是党和人民一道拼出来、干出来、奋斗出来的。
author=习近平
[3]
OL=莫愁前路无知己,天下谁人不识君。 OL=莫愁前路无知己,天下谁人不识君。
author=高适《别董大二首》 author=高适《别董大二首》
[3] [4]
OL=莫听穿林打叶声,何妨吟啸且徐行。 OL=莫听穿林打叶声,何妨吟啸且徐行。
author=苏轼《定风波》 author=苏轼《定风波》
[4] [5]
OL=党用伟大奋斗创造了百年伟业,也一定能用新的伟大奋斗创造新的伟业。
author=习近平
[6]
OL=巧言令色,鲜矣仁! OL=巧言令色,鲜矣仁!
author=《论语》 author=《论语》
[5] [7]
FL=与君初相识,犹如故人归。 FL=与君初相识,犹如故人归。
SL=天涯明月新,朝暮最相思。 SL=天涯明月新,朝暮最相思。
author=杜牧《会友》 author=杜牧《会友》
[6] [8]
FL=一个饱经沧桑而初心不变的党,才能基业常青;
SL=一个铸就辉煌仍勇于自我革命的党,才能无坚不摧。
author=习近平
[9]
OL=见贤思齐焉,见不贤而内自省也。 OL=见贤思齐焉,见不贤而内自省也。
author=《论语》 author=《论语》
[7] [10]
OL=为政以德,譬如北辰,居其所而众星共之。 OL=为政以德,譬如北辰,居其所而众星共之。
author=《论语》 author=《论语》
[8] [11]
FL=道阻且长,行则将至。前进道路上,无论是风高浪急还是惊涛骇浪,
SL=人民永远是我们最坚实的依托、最强大的底气。
author=习近平
[12]
OL=知彼知己,百战不殆。 OL=知彼知己,百战不殆。
author=《孙子兵法》 author=《孙子兵法》
[9] [13]
OL=人患不知其过,既知之,不能改,是无勇也。 OL=人患不知其过,既知之,不能改,是无勇也。
author=韩愈《五箴》 author=韩愈《五箴》
[10] [14]
FL=新征程是充满光荣和梦想的远征。蓝图已经绘就,号角已经吹响。
SL=我们要踔厉奋发、勇毅前行,努力创造更加灿烂的明天。
author=习近平
[15]
OL=万物并育而不相害,道并行而不相悖 OL=万物并育而不相害,道并行而不相悖
author=《礼记·中庸》 author=《礼记·中庸》
[11] [16]
OL=自信人生二百年,会当水击三千里 OL=自信人生二百年,会当水击三千里
author=毛泽东《七古·残句》 author=毛泽东《七古·残句》
[12] [17]
OL=我们完全有信心有能力在新时代新征程创造令世人刮目相看的新的更大奇迹。
author=习近平
[18]
OL=青春虚度无所成,白首衔悲亦何及。 OL=青春虚度无所成,白首衔悲亦何及。
author=权德舆《放歌行》 author=权德舆《放歌行》
[13] [19]
OL=劳动模范是民族的精英、人民的楷模,是共和国的功臣。 OL=劳动模范是民族的精英、人民的楷模,是共和国的功臣。
author=习近平 author=习近平
[14] [20]
FL=当前最重要的任务是撸起袖子加油干,
SL=一步一个脚印把党的二十大作出的重大决策部署付诸行动、见之于成效。
author=习近平
[21]
FL=广大人民群众坚持爱国奉献,无怨无悔,让我感到千千万万普通人最伟大, FL=广大人民群众坚持爱国奉献,无怨无悔,让我感到千千万万普通人最伟大,
SL=同时让我感到幸福都是奋斗出来的。 SL=同时让我感到幸福都是奋斗出来的。
author=2018新年贺词 习近平 author=2018新年贺词 习近平
[15] [22]
OL=中华文化既是历史的、也是当代的,既是民族的、也是世界的。 OL=中华文化既是历史的、也是当代的,既是民族的、也是世界的。
author=习近平 author=习近平
[16] [23]
OL=没有坚实的物质技术基础,就不可能全面建成社会主义现代化强国。
author=习近平
[24]
OL=我们党没有自己的特殊利益,党在任何时候都是把群众利益放在第一位。 OL=我们党没有自己的特殊利益,党在任何时候都是把群众利益放在第一位。
author=习近平 author=习近平
[17] [25]
OL=知者行之始。行者知之成。 OL=知者行之始。行者知之成。
author=王阳明《传习录·卷上·门人陆澄录》 author=王阳明《传习录·卷上·门人陆澄录》
[18] [26]
FL=江山就是人民,人民就是江山。
SL=中国共产党领导人民打江山、守江山,守的是人民的心,治国有常,利民为本。
author=习近平
[27]
OL=此心不动,随机而动。 OL=此心不动,随机而动。
author=王阳明 author=王阳明
[19] [28]
OL=你未看此花时,此花与汝心同归于寂。 OL=你未看此花时,此花与汝心同归于寂。
author=《传习录·卷下·门人黄省曾录》 author=《传习录·卷下·门人黄省曾录》
[20] [29]
FL=时代呼唤我们,人民期待着我们,
SL=唯有矢志不渝、笃行不怠,方能不负时代、不负人民。
author=习近平
[30]
OL=省察是有事时存养,存养是无事时省察。 OL=省察是有事时存养,存养是无事时省察。
author=王阳明《传习录》 author=王阳明《传习录》
[21] [31]
OL=路漫漫其修远兮,吾将上下而求索。 OL=路漫漫其修远兮,吾将上下而求索。
author=《离骚》 author=《离骚》
[22] [32]
OL=当代中国青年生逢其时,施展才干的舞台无比广阔,实现梦想的前景无比光明。
author=习近平
[33]
FL=解决台湾问题是中国人自己的事,要由中国人来决定。
SL=国家统一、民族复兴的历史车轮滚滚向前,祖国完全统一一定要实现,也一定能够实现。
author=习近平
[34]
OL=悲莫悲兮生别离,乐莫乐兮新相知。 OL=悲莫悲兮生别离,乐莫乐兮新相知。
author=《九歌·少司命》 author=《九歌·少司命》
[23] [35]
OL=风飒飒兮木萧萧,思公子兮徒离忧。 OL=风飒飒兮木萧萧,思公子兮徒离忧。
author=《九歌·山鬼》 author=《九歌·山鬼》
[24] [36]
OL=善守者,藏于九地之下,善攻者,动于九天之上。 OL=善守者,藏于九地之下,善攻者,动于九天之上。
author=《孙子兵法》 author=《孙子兵法》
[25] [37]
FL=我们正意气风发迈向全面建设社会主义现代化国家新征程,
SL=向第二个百年奋斗目标进军,以中国式现代化全面推进中华民族伟大复兴。
author=习近平
[38]
OL=善战者,致人而不致于人。 OL=善战者,致人而不致于人。
author=《孙子兵法·虚实第六》 author=《孙子兵法·虚实第六》
[26] [39]
OL=乱生于治,怯生于勇,弱生于强。 OL=乱生于治,怯生于勇,弱生于强。
author=《孙子兵法·兵势第五》 author=《孙子兵法·兵势第五》
[27] [40]
FL=中国式现代化是中国共产党和中国人民长期实践探索的成果,
SL=是一项伟大而艰巨的事业。惟其艰巨,所以伟大;惟其艰巨,更显光荣。
author=习近平
[41]
OL=不战而屈人之兵,善之善者也。 OL=不战而屈人之兵,善之善者也。
author=《孙子兵法·谋攻第三》 author=《孙子兵法·谋攻第三》
[28] [42]
OL=天行健,君子以自强不息。 OL=天行健,君子以自强不息。
author=《周易.乾卦》 author=《周易.乾卦》
[29] [43]
FL=中国开放的大门只会越来越大。我们将坚定不移全面深化改革开放,
SL=坚定不移推动高质量发展,以自身发展为世界创造更多机遇。
author=习近平
[44]
OL=积善之家,必有余庆;积不善之家,必有余殃。 OL=积善之家,必有余庆;积不善之家,必有余殃。
author=《周易.坤卦》 author=《周易.坤卦》
[30] [45]
OL=穷则变,变则通,通则久。 OL=穷则变,变则通,通则久。
author=《周易.系辞下》 author=《周易.系辞下》
[31] [46]
FL=我们历来主张,人类的前途命运应该由世界各国人民来把握和决定。
SL=只要共行天下大道,各国就能够和睦相处、合作共赢,携手创造世界的美好未来。
author=习近平
[47]
OL=天若有情天亦老,人间正道是沧桑 OL=天若有情天亦老,人间正道是沧桑
author=毛泽东《七律·人民解放军占领南京》 author=毛泽东《七律·人民解放军占领南京》
[32] [48]
OL=仰天大笑出门去,我辈岂是蓬蒿人。 OL=仰天大笑出门去,我辈岂是蓬蒿人。
author=李白《南陵别儿童入京》 author=李白《南陵别儿童入京》
[33] [49]
OL=落叶秋风生渭水,落叶满长安。 OL=落叶秋风生渭水,落叶满长安。
author=贾岛《忆江上吴处士》 author=贾岛《忆江上吴处士》
[34] [50]
OL=人生来是精神所附丽的物质,免不掉物质所常有的惰性。 OL=人生来是精神所附丽的物质,免不掉物质所常有的惰性。
author=朱光潜《朝抵抗力最大的路径走》 author=朱光潜《朝抵抗力最大的路径走》
[35] [51]
FL=能朝抵抗力最大的路径走,是人的特点。 FL=能朝抵抗力最大的路径走,是人的特点。
SL=人在能尽量发挥这特点时,就足见出他有富裕的生活力。 SL=人在能尽量发挥这特点时,就足见出他有富裕的生活力。
author=朱光潜《朝抵抗力最大的路径走》 author=朱光潜《朝抵抗力最大的路径走》

View File

@ -857,12 +857,10 @@ void Screensaver::initUI()
if(qssFile.open(QIODevice::ReadOnly)) { if(qssFile.open(QIODevice::ReadOnly)) {
setStyleSheet(qssFile.readAll()); setStyleSheet(qssFile.readAll());
qDebug()<<qssFile.readAll();
} }
qssFile.close(); qssFile.close();
#ifdef USE_INTEL #ifdef USE_INTEL
m_weatherManager = new WeatherManager(this);
setWeatherLayout(); setWeatherLayout();
setDatelayout(); setDatelayout();
setCenterWidget(); setCenterWidget();

View File

@ -156,7 +156,6 @@ private:
QTimer *movieTimer = nullptr; QTimer *movieTimer = nullptr;
int currentCount = 0; int currentCount = 0;
QDateTime m_lastDateTime; QDateTime m_lastDateTime;
bool bControlFlg = true;
bool isScreensaver = false; bool isScreensaver = false;
protected: protected:
void paintEvent(QPaintEvent *event); 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(GLIB REQUIRED glib-2.0)
pkg_check_modules(MMIX REQUIRED libmatemixer) pkg_check_modules(MMIX REQUIRED libmatemixer)
pkg_check_modules(kylin-nm-base REQUIRED kylin-nm-base)
find_library(PAM_LIBRARIES pam) find_library(PAM_LIBRARIES pam)
@ -26,7 +27,7 @@ include_directories(
${QGS_INCLUDE_DIRS} ${QGS_INCLUDE_DIRS}
${GLIB_INCLUDE_DIRS} ${GLIB_INCLUDE_DIRS}
${MMIX_INCLUDE_DIRS} ${MMIX_INCLUDE_DIRS}
${MMIX_INCLUDE_DIRS} ${kylin-nm-base_INCLUDE_DIRS}
${KF5Wayland_LIBRARIES} ${KF5Wayland_LIBRARIES}
) )
@ -44,6 +45,8 @@ set(EXTRA_LIBS
-lpthread -lpthread
-lKF5WaylandServer -lKF5WaylandServer
-lKF5WaylandClient -lKF5WaylandClient
-llibnm-icon-kylin
-lukuiinputgatherclient
) )
qt5_wrap_ui(dialog_SRC qt5_wrap_ui(dialog_SRC
@ -97,6 +100,7 @@ qt5_wrap_cpp(dialog_SRC
loginedusers.h loginedusers.h
lockchecker.h lockchecker.h
servicemanager.h servicemanager.h
mytabwidget.h
plasma-shell-manager.h plasma-shell-manager.h
PhysicalDeviceSet/brightnessdeviceset.h PhysicalDeviceSet/brightnessdeviceset.h
PhysicalDeviceSet/flightmodeset.h PhysicalDeviceSet/flightmodeset.h
@ -105,6 +109,7 @@ qt5_wrap_cpp(dialog_SRC
device.h device.h
enginedevice.h enginedevice.h
batterywidget.h batterywidget.h
libinputswitchevent.h
) )
set(dialog_SRC set(dialog_SRC
@ -147,6 +152,7 @@ set(dialog_SRC
loginedusers.cpp loginedusers.cpp
lockchecker.cpp lockchecker.cpp
servicemanager.cpp servicemanager.cpp
mytabwidget.cpp
plasma-shell-manager.cpp plasma-shell-manager.cpp
PhysicalDeviceSet/brightnessdeviceset.cpp PhysicalDeviceSet/brightnessdeviceset.cpp
PhysicalDeviceSet/flightmodeset.cpp PhysicalDeviceSet/flightmodeset.cpp
@ -155,6 +161,7 @@ set(dialog_SRC
device.cpp device.cpp
enginedevice.cpp enginedevice.cpp
batterywidget.cpp batterywidget.cpp
libinputswitchevent.cpp
) )
add_executable(ukui-screensaver-dialog ${dialog_SRC}) add_executable(ukui-screensaver-dialog ${dialog_SRC})
add_definitions(-DAPP_API_MAJOR=0 -DAPP_API_MINOR=11 -DAPP_API_FUNC=0) add_definitions(-DAPP_API_MAJOR=0 -DAPP_API_MINOR=11 -DAPP_API_FUNC=0)

View File

@ -5,9 +5,7 @@
<qresource prefix="/image"> <qresource prefix="/image">
<file>assets/show-password.png</file> <file>assets/show-password.png</file>
<file>assets/hide-password.png</file> <file>assets/hide-password.png</file>
<file>assets/keyboard.png</file>
<file>assets/switchGreeter.png</file> <file>assets/switchGreeter.png</file>
<file>assets/switchUser.png</file>
<file>assets/waiting.png</file> <file>assets/waiting.png</file>
<file>assets/capslock.png</file> <file>assets/capslock.png</file>
<file>assets/combobox_down.png</file> <file>assets/combobox_down.png</file>
@ -25,13 +23,8 @@
<file>assets/unlock-button-pressed.png</file> <file>assets/unlock-button-pressed.png</file>
<file>assets/iconFace.png</file> <file>assets/iconFace.png</file>
<file>assets/iconFace.svg</file> <file>assets/iconFace.svg</file>
<file>assets/powerManager.png</file>
<file>assets/lock.png</file> <file>assets/lock.png</file>
<file>assets/logout.png</file> <file>assets/logout.png</file>
<file>assets/shutdown.png</file>
<file>assets/suspend.png</file>
<file>assets/hibernate.png</file>
<file>assets/reboot.png</file>
<file>assets/bio-login.png</file> <file>assets/bio-login.png</file>
<file>assets/password-login.png</file> <file>assets/password-login.png</file>
<file>assets/weather/68.png</file> <file>assets/weather/68.png</file>
@ -125,5 +118,10 @@
<file>assets/ukui-loginopt-lose.svg</file> <file>assets/ukui-loginopt-lose.svg</file>
<file>assets/01-default-commercial.png</file> <file>assets/01-default-commercial.png</file>
<file>assets/01-default-community.png</file> <file>assets/01-default-community.png</file>
<file>assets/suspend.svg</file>
<file>assets/shutdown.svg</file>
<file>assets/reboot.svg</file>
<file>assets/hibernate.svg</file>
<file>assets/switchuser.svg</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@ -101,11 +101,6 @@ QLineEdit::focus{
/* 登录按钮 */ /* 登录按钮 */
#loginButton{ #loginButton{
min-width: 24px;
max-width: 24px;
min-height: 24px;
max-height: 24px;
icon-size: 24px;
background:#3D6BE5; background:#3D6BE5;
border-radius:12px; border-radius:12px;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 902 B

1
src/assets/hibernate.svg Normal file
View File

@ -0,0 +1 @@
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M41.06,31.53A18.5,18.5,0,0,1,16,6.44a1.51,1.51,0,0,0-2-2A21.5,21.5,0,1,0,43.1,33.57a1.51,1.51,0,0,0-2-2ZM24.22,41.78A18.5,18.5,0,0,1,11.39,10a21.27,21.27,0,0,0-.67,5.33,21.52,21.52,0,0,0,21.5,21.5,21.27,21.27,0,0,0,5.33-.67A18.49,18.49,0,0,1,24.22,41.78Z" fill="#fff"/><path d="M26,31h6.8a1,1,0,0,0,0-2H28.41l4.3-4.29a1,1,0,0,0,.21-1.09A1,1,0,0,0,32,23H26.4a1,1,0,0,0,0,2h3.19l-4.3,4.29a1,1,0,0,0-.21,1.09A1,1,0,0,0,26,31Z" fill="#fff"/><path d="M29,20h6.8a1,1,0,0,0,0-2H31.41l4.3-4.29a1,1,0,0,0,.21-1.09A1,1,0,0,0,35,12H29.4a1,1,0,0,0,0,2h3.19l-4.3,4.29a1,1,0,0,0-.21,1.09A1,1,0,0,0,29,20Z" fill="#fff"/><path d="M43.8,27H39.41l4.3-4.29a1,1,0,0,0,.21-1.09A1,1,0,0,0,43,21H37.4a1,1,0,0,0,0,2h3.19l-4.3,4.29a1,1,0,0,0-.21,1.09A1,1,0,0,0,37,29h6.8a1,1,0,0,0,0-2Z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 885 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 501 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/reboot.svg Normal file
View File

@ -0,0 +1 @@
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M42.44,21.88A1.5,1.5,0,0,0,41,23.43,17,17,0,0,1,12,36,17,17,0,0,1,34.91,11L32,13.91h8.29V5.62L37,8.84a20,20,0,1,0,7,14.49A1.46,1.46,0,0,0,42.44,21.88Z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

1
src/assets/shutdown.svg Normal file
View File

@ -0,0 +1 @@
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M37.09,11.38a1.5,1.5,0,0,0-2,2.28A16.58,16.58,0,0,1,41,26.29a17,17,0,0,1-34,0,16.59,16.59,0,0,1,5.88-12.65,1.5,1.5,0,1,0-2-2.28A19.61,19.61,0,0,0,4,26.29,19.88,19.88,0,0,0,24,46,19.88,19.88,0,0,0,44,26.29,19.6,19.6,0,0,0,37.09,11.38Z" fill="#fff"/><rect x="22" y="2" width="4" height="24" rx="1.92" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 422 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 817 B

1
src/assets/suspend.svg Normal file
View File

@ -0,0 +1 @@
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M42.06,30.53A18.5,18.5,0,0,1,17,5.44a1.51,1.51,0,0,0-2-2A21.5,21.5,0,1,0,44.1,32.57a1.51,1.51,0,0,0-2-2ZM25.22,40.78A18.5,18.5,0,0,1,12.39,9a21.27,21.27,0,0,0-.67,5.33,21.52,21.52,0,0,0,21.5,21.5,21.27,21.27,0,0,0,5.33-.67A18.49,18.49,0,0,1,25.22,40.78Z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 424 B

View File

@ -0,0 +1 @@
<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path d="M27.73,8h.19A6.25,6.25,0,0,1,29.2,20.37a9.44,9.44,0,0,1-1.38,2,8.61,8.61,0,0,1-1.08,1A9.24,9.24,0,1,0,27.92,5a9.08,9.08,0,0,0-3.5.71c.17.07.34.13.5.21A9.21,9.21,0,0,1,27.73,8Z" fill="#fff"/><path d="M18.92,24.5a9.25,9.25,0,1,0-9.25-9.25A9.22,9.22,0,0,0,18.92,24.5Zm0-15.5a6.62,6.62,0,0,1,1.1.1,6.25,6.25,0,0,1,0,12.3,6.52,6.52,0,0,1-1.1.1,6.25,6.25,0,0,1,0-12.5Z" fill="#fff"/><path d="M37.75,25.81H33.08A8.28,8.28,0,0,1,36,28.34c.12.15.22.31.33.47h1.4A5.08,5.08,0,0,1,38.24,39,8,8,0,0,1,37,41a8.41,8.41,0,0,1-1,1h1.71a8.1,8.1,0,0,0,0-16.19Z" fill="#fff"/><path d="M35,29.81a8.09,8.09,0,0,0-6.27-3H9.09A8.1,8.1,0,0,0,9.09,43H28.75A8.08,8.08,0,0,0,35,29.81ZM28.75,40H9.09a5.1,5.1,0,0,1,0-10.19H28.75a5.1,5.1,0,0,1,0,10.19Z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 846 B

View File

@ -57,6 +57,12 @@ AuthDialog::AuthDialog(const UserItem &user, QWidget *parent) :
w_timer(nullptr), w_timer(nullptr),
m_uniauthService(new UniAuthService(this)) m_uniauthService(new UniAuthService(this))
{ {
setObjectName("AuthDialog");
QFile qssFile(":/qss/assets/authdialog.qss");
if(qssFile.open(QIODevice::ReadOnly)) {
this->setStyleSheet(qssFile.readAll());
}
initUI(); initUI();
pam_tally_init(); //这里写函数声明 pam_tally_init(); //这里写函数声明
@ -102,24 +108,6 @@ void AuthDialog::stopAuth()
// m_passwdWidget->hide(); // 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() void AuthDialog::initUI()
{ {
if (scale < 0.5) { if (scale < 0.5) {
@ -412,9 +400,9 @@ void AuthDialog::setChildrenGeometry()
width()-(m_passwdWidget->width() - 240)/2, 36); width()-(m_passwdWidget->width() - 240)/2, 36);
m_messageLabel->setMinimumHeight(36); m_messageLabel->setMinimumHeight(36);
m_messageButton->setGeometry((m_passwdWidget->width() - 200)/2, 0, 200, 40); m_messageButton->setGeometry((m_passwdWidget->width() - 200)/2, 0, 200, 40);
m_messageButton->setStyleSheet("QPushButton:!checked:!pressed:!hover{background-color: rgba(255,255,255,40)}" // m_messageButton->setStyleSheet("QPushButton:!checked:!pressed:!hover{background-color: rgba(255,255,255,40)}"
"QPushButton:!checked:!pressed:hover{background-color: rgba(255,255,255,100)}" // "QPushButton:!checked:!pressed:hover{background-color: rgba(255,255,255,100)}"
"QPushButton:pressed{background-color: rgba(255,255,255,40)}"); // "QPushButton:pressed{background-color: rgba(255,255,255,40)}");
setBiometricWidgetGeometry(); setBiometricWidgetGeometry();
@ -600,33 +588,52 @@ void AuthDialog::setX11Focus()
void AuthDialog::setFocusin(int target) void AuthDialog::setFocusin(int target)
{ {
if(m_passwordEdit && m_widgetLoginOpts) { if(m_passwordEdit) {
switch (target) { switch (target) {
case REMOVE: //焦点清除 case REMOVE: //焦点清除
m_widgetLoginOpts->tabOptionSelected(2); if(m_widgetLoginOpts)
m_widgetLoginOpts->tabOptionSelected(2);
m_passwordEdit->setFocusin(2); m_passwordEdit->setFocusin(2);
if(is_showMessageBtn) {
m_messageButton->clearFocus();
m_messageButton->setStyleSheet("QPushButton:!checked:!pressed:!hover{background-color: rgba(255,255,255,40)}"
"QPushButton:!checked:!pressed:hover{background-color: rgba(255,255,255,100)}"
"QPushButton:pressed{background-color: rgba(255,255,255,40)}");
}
m_nameLabel->setFocus(); m_nameLabel->setFocus();
break; break;
case IN_LIGIN: //焦点在登录按钮 case IN_LIGIN: //焦点在登录按钮
m_widgetLoginOpts->tabOptionSelected(2); if(m_widgetLoginOpts)
m_widgetLoginOpts->tabOptionSelected(2);
m_passwordEdit->setFocusin(1); m_passwordEdit->setFocusin(1);
break; break;
case BIO_RIGHT: //登录选项焦点右移 case BIO_RIGHT: //登录选项焦点右移
m_widgetLoginOpts->tabOptionSelected(0); if(m_widgetLoginOpts)
m_widgetLoginOpts->tabOptionSelected(0);
m_passwordEdit->setFocusin(2); m_passwordEdit->setFocusin(2);
m_nameLabel->setFocus(); m_nameLabel->setFocus();
break; break;
case BIO_LEFT: //登录选项焦点左移 case BIO_LEFT: //登录选项焦点左移
m_widgetLoginOpts->tabOptionSelected(1); if(m_widgetLoginOpts)
m_widgetLoginOpts->tabOptionSelected(1);
m_passwordEdit->setFocusin(target); m_passwordEdit->setFocusin(target);
m_nameLabel->setFocus(); m_nameLabel->setFocus();
break; break;
case IN_LINEEDIT: //焦点在密码输入框 case IN_LINEEDIT: //焦点在密码输入框
m_widgetLoginOpts->tabOptionSelected(2); if(m_widgetLoginOpts)
m_widgetLoginOpts->tabOptionSelected(2);
m_passwordEdit->setFocusin(0); m_passwordEdit->setFocusin(0);
break; break;
case ON_MESSAGEBTN: //免密登录按钮
if(m_widgetLoginOpts)
m_widgetLoginOpts->tabOptionSelected(2);
m_passwordEdit->setFocusin(2);
m_messageButton->setFocus();
m_messageButton->setStyleSheet("QPushButton{background-color: rgba(255,255,255,15%); border-radius: 4px; border: 2px solid #2C73C8;}");
break;
default: default:
m_passwordEdit->setFocusin(target); if(m_widgetLoginOpts)
m_passwordEdit->setFocusin(target);
m_widgetLoginOpts->tabOptionSelected(2); m_widgetLoginOpts->tabOptionSelected(2);
break; break;
} }
@ -733,9 +740,11 @@ void AuthDialog::show_authenticated(bool successful)
m_passwdWidget->show(); m_passwdWidget->show();
m_passwordEdit->hide(); m_passwordEdit->hide();
m_passwordEdit->setFocusPolicy(Qt::NoFocus); m_passwordEdit->setFocusPolicy(Qt::NoFocus);
m_messageButton->setFocusPolicy(Qt::StrongFocus); // m_messageButton->setFocusPolicy(Qt::StrongFocus);
setFocusProxy(m_messageButton); // setFocusProxy(m_messageButton);
m_messageButton->show(); m_messageButton->show();
is_showMessageBtn = true;
Q_EMIT showMessageBtn(is_showMessageBtn);
m_messageButton->setFocus(); m_messageButton->setFocus();
m_messageButton->setDefault(true); m_messageButton->setDefault(true);
@ -769,6 +778,7 @@ void AuthDialog::onMessageButtonClicked()
else else
{ {
m_messageButton->hide(); m_messageButton->hide();
is_showMessageBtn = false;
authMode = PASSWORD; authMode = PASSWORD;
m_messageLabel->setText(""); m_messageLabel->setText("");
@ -776,8 +786,17 @@ void AuthDialog::onMessageButtonClicked()
} }
} }
bool AuthDialog::getLineeditStatus()
{
return is_showMessageBtn;
}
void AuthDialog::onRespond(const QString &text) void AuthDialog::onRespond(const QString &text)
{ {
if (!prompted && text != BIOMETRIC_SUCCESS) {
qInfo()<<"Wait for input passwd!";
return;
}
unacknowledged_messages=false; unacknowledged_messages=false;
clearMessage(); clearMessage();
startWaiting(); startWaiting();

View File

@ -52,6 +52,7 @@ enum FOCUS {
BIO_RIGHT, BIO_RIGHT,
BIO_LEFT, BIO_LEFT,
IN_LINEEDIT, IN_LINEEDIT,
ON_MESSAGEBTN,
}; };
extern float scale; extern float scale;
@ -69,6 +70,7 @@ public:
void setClick(); void setClick();
void checkPassword(); void checkPassword();
int getBioNum(); int getBioNum();
bool getLineeditStatus();
private: private:
void initUI(); void initUI();
void startWaiting(); void startWaiting();
@ -79,7 +81,6 @@ private:
void initBiometricWidget(); void initBiometricWidget();
void setChildrenGeometry(); void setChildrenGeometry();
void setBiometricWidgetGeometry(); void setBiometricWidgetGeometry();
QPixmap PixmapToRound(const QPixmap &src, int radius);
void startBioAuth(unsigned uTimeout = 1000); void startBioAuth(unsigned uTimeout = 1000);
void show_authenticated (bool successful = true); void show_authenticated (bool successful = true);
void setLoginTypeTip(QString strLoginTypeTip); void setLoginTypeTip(QString strLoginTypeTip);
@ -125,6 +126,7 @@ Q_SIGNALS:
void authenticateCompete(bool result); void authenticateCompete(bool result);
void clickPassword(bool clicked); void clickPassword(bool clicked);
void loginOptionClicked(); void loginOptionClicked();
void showMessageBtn(bool is_show);
private: private:
UserItem user; UserItem user;
Auth *auth; Auth *auth;
@ -157,6 +159,7 @@ private:
IconEdit *m_passwordEdit; //密码输入框 IconEdit *m_passwordEdit; //密码输入框
QLabel *m_messageLabel; //PAM消息显示 QLabel *m_messageLabel; //PAM消息显示
QPushButton *m_messageButton; QPushButton *m_messageButton;
bool is_showMessageBtn = false;
QLabel *m_labelFace = nullptr; QLabel *m_labelFace = nullptr;
QLabel *m_labelLoginTypeTip = nullptr; // 登录类型提示 QLabel *m_labelLoginTypeTip = nullptr; // 登录类型提示

View File

@ -38,7 +38,8 @@ void BatteryWidget::initUi()
}"); }");
mValueLabel = new QLabel(this); mValueLabel = new QLabel(this);
mValueLabel->setFixedSize(48, 48); mValueLabel->setFixedHeight(48);
mValueLabel->setMidLineWidth(48);
mStatusLabel = new QLabel(this); mStatusLabel = new QLabel(this);
mStatusLabel->setFixedHeight(36); mStatusLabel->setFixedHeight(36);
@ -56,22 +57,29 @@ void BatteryWidget::initUi()
void BatteryWidget::setupComponent() void BatteryWidget::setupComponent()
{ {
QDBusInterface *batInterface = new QDBusInterface( QString batteryPath = "";
"org.ukui.upower", "/upower/BatteryInfo", "org.ukui.upower.battery", QDBusConnection::sessionBus(), this); dface = new QDBusInterface(UPOWER_SERVICE, UPOWER_PATH, UPOWER_INTERFACE, QDBusConnection::systemBus(), this);
QDBusReply<QList<QDBusObjectPath>> reply = dface->call("EnumerateDevices");
if (dface->isValid()) {
for (QDBusObjectPath op : reply.value()) {
if (op.path().contains("battery_")) {
batteryPath = op.path();
qDebug() << "battery path is :" << batteryPath;
break;
}
}
} else {
qDebug() << "Enumerate devices failed";
}
batInterface = new QDBusInterface(UPOWER_SERVICE, batteryPath, FREEDESKTOP_UPOWER, QDBusConnection::systemBus(), this);
QDBusInterface *powerInterface = new QDBusInterface( QDBusConnection::systemBus().connect(
"org.ukui.upower", "/upower", "org.ukui.upower", QDBusConnection::sessionBus(), this); UPOWER_SERVICE, batteryPath, FREEDESKTOP_UPOWER, "PropertiesChanged", this, SLOT(dealMessage(QDBusMessage)));
iface = new QDBusInterface(UPOWER_SERVICE, UPOWER_PATH, FREEDESKTOP_UPOWER, QDBusConnection::systemBus());
if (batInterface->isValid()) { if (dface->isValid()) {
QDBusReply<QString> iconreply = batInterface->call("IconName");
mIconBtn->setIconSize(QSize(48, 32)); mIconBtn->setIconSize(QSize(48, 32));
mIconBtn->setFocusPolicy(Qt::NoFocus); mIconBtn->setFocusPolicy(Qt::NoFocus);
mIconBtn->setIcon(QIcon::fromTheme(iconreply)); mIconBtn->setIcon(QIcon::fromTheme(getBatteryIconName()));
QDBusConnection::sessionBus().connect(
QString(), "/upower/BatteryInfo", "org.ukui.upower.battery", "BatteryIcon", this, SLOT(setBatteryIcon(QString)));
QDBusReply<bool> batteryreply = powerInterface->call("OnBattery");
mModeLabel->setText(batteryreply ? tr("BatteryMode") : tr("PowerMode"));
} }
ed = EngineDevice::getInstance(); ed = EngineDevice::getInstance();
onBatteryChanged(ed->engine_get_state()); onBatteryChanged(ed->engine_get_state());
@ -96,6 +104,29 @@ void BatteryWidget::setPoint(QPoint point)
mPoint = point; mPoint = point;
} }
QString BatteryWidget::getBatteryIconName()
{
if (dface->isValid() && iface->isValid()) {
bool batteryState = false;
QDBusReply<QVariant> reply = iface->call("Get", UPOWER_SERVICE, "OnBattery");
if (reply.isValid()) {
batteryState = reply.value().toBool();
}
double percentage = -1.0;
QDBusReply<QVariant> percentage_reply = batInterface->call("Get", UPOWER_DIVICES_SERVICE, "Percentage");
if (percentage_reply.isValid()) {
percentage = percentage_reply.value().toDouble();
}
if (batteryState) {
return QString("battery-level-%1-symbolic").arg((int)percentage / 10 * 10);
} else {
return QString("battery-level-%1-charging-symbolic").arg((int)percentage / 10 * 10);
}
}
return QString();
}
void BatteryWidget::showEvent(QShowEvent *event) void BatteryWidget::showEvent(QShowEvent *event)
{ {
QPoint pos = QPoint(mPoint.x(), QPoint pos = QPoint(mPoint.x(),
@ -133,7 +164,6 @@ void BatteryWidget::onBatteryChanged(QStringList args)
} else if (batteryState == 4) { } else if (batteryState == 4) {
mStatusLabel->setText(tr("fully charged")); mStatusLabel->setText(tr("fully charged"));
} }
if (batteryState == 4 || batteryState == 1 || batteryState == 5) { if (batteryState == 4 || batteryState == 1 || batteryState == 5) {
mStatusLabel->setVisible(true); mStatusLabel->setVisible(true);
mModeLabel->setText(tr("PowerMode")); mModeLabel->setText(tr("PowerMode"));
@ -141,5 +171,11 @@ void BatteryWidget::onBatteryChanged(QStringList args)
mStatusLabel->setVisible(false); mStatusLabel->setVisible(false);
mModeLabel->setText(tr("BatteryMode")); mModeLabel->setText(tr("BatteryMode"));
} }
mValueLabel->setText(QString("<font size='5';font color=#262626>%1</font>%").arg(battery)); mValueLabel->setText(QString("<font size='5';font color=#262626>%1</font>%").arg(battery));
} }
void BatteryWidget::dealMessage(QDBusMessage)
{
mIconBtn->setIcon(QIcon::fromTheme(getBatteryIconName()));
}

View File

@ -9,6 +9,13 @@
#include <QPoint> #include <QPoint>
#include "enginedevice.h" #include "enginedevice.h"
#define FREEDESKTOP_UPOWER "org.freedesktop.DBus.Properties"
#define UPOWER_INTERFACE "org.freedesktop.UPower"
#define UPOWER_PATH "/org/freedesktop/UPower"
#define UPOWER_SERVICE "org.freedesktop.UPower"
#define UPOWER_DISPLAY_PATH "/org/freedesktop/UPower/devices/DisplayDevice"
#define UPOWER_DIVICES_SERVICE "org.freedesktop.UPower.Device"
class BatteryWidget : public QWidget class BatteryWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT
@ -18,6 +25,7 @@ public:
void initUi(); void initUi();
void setupComponent(); void setupComponent();
void setPoint(QPoint point); void setPoint(QPoint point);
QString getBatteryIconName();
protected: protected:
void showEvent(QShowEvent *event); void showEvent(QShowEvent *event);
@ -31,12 +39,15 @@ private:
QPoint mPoint; QPoint mPoint;
QDBusInterface *batInterface; QDBusInterface *batInterface;
QDBusInterface *iface;
QDBusInterface *dface;
EngineDevice* ed; EngineDevice* ed;
private Q_SLOTS: private Q_SLOTS:
void setBatteryIcon(QString icon); void setBatteryIcon(QString icon);
void onBatteryChanged(QStringList args); void onBatteryChanged(QStringList args);
void dealMessage(QDBusMessage);
}; };

View File

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

View File

@ -34,6 +34,7 @@
#include <QImageReader> #include <QImageReader>
#include "plasma-shell-manager.h" #include "plasma-shell-manager.h"
#include <QX11Info> #include <QX11Info>
#include "lockwidget.h"
#include <X11/Xatom.h> #include <X11/Xatom.h>
#include <X11/Xlib.h> #include <X11/Xlib.h>
#include <X11/Xutil.h> #include <X11/Xutil.h>
@ -50,7 +51,6 @@
#include <sys/syslog.h> #include <sys/syslog.h>
#include <xcb/xcb.h> #include <xcb/xcb.h>
#include "lockwidget.h"
#include "xeventmonitor.h" #include "xeventmonitor.h"
#include "monitorwatcher.h" #include "monitorwatcher.h"
#include "configuration.h" #include "configuration.h"
@ -211,21 +211,21 @@ FullBackgroundWidget::FullBackgroundWidget(QWidget *parent)
qDebug() << "init - screenStatus: " << screenStatus; qDebug() << "init - screenStatus: " << screenStatus;
m_listWndIds.clear(); m_listWndIds.clear();
setMouseTracking(true); setMouseTracking(true);
// connect(monitorWatcher, &MonitorWatcher::monitorCountChanged, // connect(monitorWatcher, &MonitorWatcher::monitorCountChanged,
// this, &FullBackgroundWidget::onScreenCountChanged); // this, &FullBackgroundWidget::onScreenCountChanged);
// QDesktopWidget *desktop = QApplication::desktop(); QDesktopWidget *desktop = QApplication::desktop();
// connect(desktop, &QDesktopWidget::resized, connect(desktop, &QDesktopWidget::resized,
// this, &FullBackgroundWidget::onDesktopResized); this, &FullBackgroundWidget::onDesktopResized);
// connect(desktop, &QDesktopWidget::workAreaResized, // connect(desktop, &QDesktopWidget::workAreaResized,
// this, &FullBackgroundWidget::onDesktopResized); // this, &FullBackgroundWidget::onDesktopResized);
// connect(desktop, &QDesktopWidget::primaryScreenChanged, connect(desktop, &QDesktopWidget::primaryScreenChanged,
// this, &FullBackgroundWidget::onDesktopResized); this, &FullBackgroundWidget::onDesktopResized);
// connect(desktop, &QDesktopWidget::screenCountChanged, connect(desktop, &QDesktopWidget::screenCountChanged,
// this, &FullBackgroundWidget::onDesktopResized); this, &FullBackgroundWidget::onDesktopResized);
connect(QApplication::primaryScreen(),&QScreen::geometryChanged, this, &FullBackgroundWidget::onDesktopResized); // connect(QApplication::primaryScreen(),&QScreen::geometryChanged, this, &FullBackgroundWidget::onDesktopResized);
connect(QApplication::screens().at(0), &QScreen::virtualGeometryChanged, this,&FullBackgroundWidget::onDesktopResized); // connect(QApplication::screens().at(0), &QScreen::virtualGeometryChanged, this,&FullBackgroundWidget::onDesktopResized);
QDBusInterface *iface = new QDBusInterface("org.freedesktop.login1", QDBusInterface *iface = new QDBusInterface("org.freedesktop.login1",
"/org/freedesktop/login1", "/org/freedesktop/login1",
@ -256,10 +256,6 @@ FullBackgroundWidget::FullBackgroundWidget(QWidget *parent)
this, SLOT(propertiesChangedSlot(QString, QMap<QString, QVariant>, QStringList))); this, SLOT(propertiesChangedSlot(QString, QMap<QString, QVariant>, QStringList)));
#endif #endif
if(QX11Info::isPlatformX11()){
xEventMonitor = new XEventMonitor(this);
}
init(); init();
qApp->installNativeEventFilter(this); qApp->installNativeEventFilter(this);
installEventFilter(this); installEventFilter(this);
@ -311,8 +307,8 @@ void FullBackgroundWidget::laterActivate()
raiseOtherWnd(); raiseOtherWnd();
setFocus(); setFocus();
if(lockWidget && lockWidget->isVisible()) { if(lockWidget && lockWidget->isVisible()) {
//lockWidget->setFocus(); lockWidget->setFocus();
lockWidget->onActiveWindpw();//将焦点设置到密码框 lockWidget->onActiveLineedit();//将焦点设置到密码框
} }
update(); update();
} }
@ -323,8 +319,8 @@ void FullBackgroundWidget::laterOtherActivate()
raiseOtherWnd(); raiseOtherWnd();
//setFocus(); //setFocus();
if(lockWidget && lockWidget->isVisible()) { if(lockWidget && lockWidget->isVisible()) {
//lockWidget->setFocus(); lockWidget->setFocus();
lockWidget->onActiveWindpw();//将焦点设置到密码框 lockWidget->onActiveLineedit();//将焦点设置到密码框
} }
} }
@ -346,15 +342,17 @@ void FullBackgroundWidget::setLockState()
bool FullBackgroundWidget::eventFilter(QObject *obj, QEvent *event) bool FullBackgroundWidget::eventFilter(QObject *obj, QEvent *event)
{ {
if(event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseMove || event->type() == 7){ if (!QX11Info::isPlatformX11()) {
if(screenStatus & SCREEN_SAVER){ if(event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseMove || event->type() == 7){
clearScreensavers(); if(screenStatus & SCREEN_SAVER && !isBlank){
clearScreensavers();
}
} }
} }
if(event->type() == QEvent::WindowDeactivate){ if(event->type() == QEvent::WindowDeactivate){
QTimer::singleShot(50,this,SLOT(laterActivate())); QTimer::singleShot(50,this,SLOT(laterActivate()));
}else if(event->type() == QEvent::WindowActivate){ }else if(event->type() == QEvent::WindowActivate){
if(QString(qgetenv("XDG_SESSION_TYPE")) == "wayland") { if(QString(qgetenv("XDG_SESSION_TYPE")) == "wayland") {
PlasmaShellManager::getInstance()->setAppWindowKeepAbove(true); PlasmaShellManager::getInstance()->setAppWindowKeepAbove(true);
} }
@ -563,13 +561,13 @@ bool FullBackgroundWidget::nativeEventFilter(const QByteArray &eventType, void *
return false; return false;
} }
} else if (responseType == XCB_KEY_PRESS) { } else if (responseType == XCB_KEY_PRESS) {
//xcb_key_press_event_t *xc = reinterpret_cast<xcb_key_press_event_t*>(event); // xcb_key_press_event_t *xc = reinterpret_cast<xcb_key_press_event_t*>(event);
//qDebug()<<"---------------------XCB_KEY_PRESS:"<<xc->detail; // qDebug()<<"---------------------XCB_KEY_PRESS:"<<xc->detail;
//onGlobalKeyPress(xc->detail); //onGlobalKeyPress(xc->detail);
} else if (responseType == XCB_KEY_RELEASE) { } else if (responseType == XCB_KEY_RELEASE) {
//xcb_key_release_event_t *xc = reinterpret_cast<xcb_key_release_event_t*>(event); xcb_key_release_event_t *xc = reinterpret_cast<xcb_key_release_event_t*>(event);
//qDebug()<<"---------------------XCB_KEY_RELEASE:"<<xc->detail; qDebug()<<"---------------------XCB_KEY_RELEASE:"<<xc->detail;
//onGlobalKeyRelease(xc->detail); onGlobalKeyRelease(xc->detail);
} else if(responseType == XCB_GE_GENERIC){ } else if(responseType == XCB_GE_GENERIC){
xcb_ge_generic_event_t *xc = reinterpret_cast<xcb_ge_generic_event_t*>(event); xcb_ge_generic_event_t *xc = reinterpret_cast<xcb_ge_generic_event_t*>(event);
if(xc->event_type == XCB_BUTTON_PRESS){ //此处获取的是窗口内的点击事件,光标坐标不需要使用就直接使用QCursor接口获取了 if(xc->event_type == XCB_BUTTON_PRESS){ //此处获取的是窗口内的点击事件,光标坐标不需要使用就直接使用QCursor接口获取了
@ -648,17 +646,6 @@ void FullBackgroundWidget::init()
XSelectInput( QX11Info::display(), QX11Info::appRootWindow(), XSelectInput( QX11Info::display(), QX11Info::appRootWindow(),
SubstructureNotifyMask|rootAttr.your_event_mask ); 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()<<"----------------------------------------------------------------开始异步调用"; qDebug()<<"----------------------------------------------------------------开始异步调用";
@ -667,7 +654,7 @@ void FullBackgroundWidget::init()
reader.setFileName(configuration->getBackground()); reader.setFileName(configuration->getBackground());
reader.setAutoTransform(true); reader.setAutoTransform(true);
reader.setDecideFormatFromContent(true); reader.setDecideFormatFromContent(true);
reader.setScaledSize(QApplication::primaryScreen()->size()); //reader.setScaledSize(QApplication::primaryScreen()->size());
background = QPixmap::fromImageReader(&reader); background = QPixmap::fromImageReader(&reader);
if(!background.isNull()){ if(!background.isNull()){
@ -715,11 +702,13 @@ void FullBackgroundWidget::onCursorMoved(const QPoint &pos)
{ {
return; return;
} }
bool chkInOneScreen = false;
for(auto screen : QGuiApplication::screens()) for(auto screen : QGuiApplication::screens())
{ {
#ifdef USE_INTEL #ifdef USE_INTEL
if(screen == qApp->primaryScreen()){ if(screen == qApp->primaryScreen()){
lockWidget->setGeometry(screen->geometry()); lockWidget->setGeometry(screen->geometry());
chkInOneScreen = true;
break; break;
} }
#else #else
@ -732,10 +721,24 @@ void FullBackgroundWidget::onCursorMoved(const QPoint &pos)
lockWidget->hide(); lockWidget->hide();
lockWidget->setGeometry(screen->geometry()); lockWidget->setGeometry(screen->geometry());
lockWidget->show(); lockWidget->show();
chkInOneScreen = true;
break; break;
} }
#endif #endif
} }
if (!chkInOneScreen) {
for(auto screen : QGuiApplication::screens()) {
if(screen == qApp->primaryScreen()){
/*避免切换时闪烁*/
qInfo()<<"LockWidget:"<<screen->geometry()<<lockWidget->geometry();
lockWidget->hide();
lockWidget->setGeometry(screen->geometry());
lockWidget->show();
chkInOneScreen = true;
break;
}
}
}
} }
void FullBackgroundWidget::lock() void FullBackgroundWidget::lock()
@ -830,11 +833,11 @@ void FullBackgroundWidget::showScreensaver(bool isPreview/* = false*/)
{ {
ScreenSaver *saver = configuration->getScreensaver(); ScreenSaver *saver = configuration->getScreensaver();
/*锁屏设置的Qt::WA_TranslucentBackground属性会导致第三方屏保变得透明因此在使用第三方屏保时 /*锁屏设置的Qt::WA_TranslucentBackground属性会导致第三方屏保变得透明因此在使用第三方屏保时
* */ * */
if(saver->path != "/usr/lib/ukui-screensaver/ukui-screensaver-default") if(saver->path != "/usr/lib/ukui-screensaver/ukui-screensaver-default")
{ {
setAttribute(Qt::WA_TranslucentBackground,false); setAttribute(Qt::WA_TranslucentBackground,false);
} }
ScreenSaverWidget *saverWidget = new ScreenSaverWidget(saver, this); ScreenSaverWidget *saverWidget = new ScreenSaverWidget(saver, this);
qDebug() << " new ScreenSaverWidget"; qDebug() << " new ScreenSaverWidget";
@ -1080,8 +1083,12 @@ void FullBackgroundWidget::onGlobalKeyRelease(int key)
// 键盘上的num_lock生效、不需要登录界面进行管理 // 键盘上的num_lock生效、不需要登录界面进行管理
} }
#else #else
if(key == Qt::Key_Escape && screenStatus == SCREEN_LOCK) // "escape" if (key == 65) { // "Space"
{ if (lockWidget && lockWidget->isVisible()) {/*keyReleaseEvent有时候监听不到Space的按键事件 原因未知
Space按键放到nativeEventFilter里面*/
lockWidget->key_enter_release(Qt::Key_Space);
}
} else if (key == Qt::Key_Escape && screenStatus == SCREEN_LOCK) { // "escape"
bool canShow = true; bool canShow = true;
if (lockWidget && !lockWidget->exitSubWidget()) if (lockWidget && !lockWidget->exitSubWidget())
canShow = false; canShow = false;
@ -1091,9 +1098,7 @@ void FullBackgroundWidget::onGlobalKeyRelease(int key)
canShow = false; canShow = false;
if (canShow) if (canShow)
showScreensaver(); showScreensaver();
} } else if (screenStatus & SCREEN_SAVER && !isBlank) {
else if(screenStatus & SCREEN_SAVER && !isBlank)
{
clearScreensavers(); clearScreensavers();
} }
#endif #endif
@ -1193,7 +1198,7 @@ void FullBackgroundWidget::onDesktopResized()
QDesktopWidget *desktop = QApplication::desktop(); QDesktopWidget *desktop = QApplication::desktop();
setGeometry(desktop->geometry()); setGeometry(desktop->geometry());
if(lockWidget) if(lockWidget)
onCursorMoved(QCursor::pos()); onCursorMoved(QCursor::pos());
if(screenStatus & SCREEN_SAVER) if(screenStatus & SCREEN_SAVER)
{ {
clearScreensavers(); clearScreensavers();

View File

@ -68,6 +68,8 @@ IconEdit::IconEdit(QWidget *parent)
m_capsIcon->load(QString(":/image/assets/capslock.svg")); m_capsIcon->load(QString(":/image/assets/capslock.svg"));
m_iconButton = new QPushButton(this); m_iconButton = new QPushButton(this);
m_iconButton->setFixedSize(24, 24);
m_iconButton->setIconSize(QSize(24, 24));
m_iconButton->setObjectName(QStringLiteral("loginButton")); m_iconButton->setObjectName(QStringLiteral("loginButton"));
m_iconButton->setCursor(QCursor(Qt::PointingHandCursor)); m_iconButton->setCursor(QCursor(Qt::PointingHandCursor));
m_iconButton->installEventFilter(this); m_iconButton->installEventFilter(this);
@ -186,17 +188,15 @@ void IconEdit::setFocusin(int target)
switch (target) { switch (target) {
case 0: case 0:
m_edit->setFocus(); m_edit->setFocus();
m_iconButton->setStyleSheet("min-width: 24px; max-width: 24px; min-height: 24px; max-height: 24px;" m_iconButton->setStyleSheet("border-radius:12px; border:2px solid #3D6BE5;");
"icon-size: 22px; background:#3D6BE5; border-radius:12px;");
break; break;
case 1: case 1:
m_edit->clearFocus(); m_edit->clearFocus();
m_iconButton->setStyleSheet("min-width: 24px; max-width: 24px; min-height: 24px; max-height: 24px;" m_iconButton->setFocus();
"icon-size: 22px; background:#000000; border-radius:12px;"); m_iconButton->setStyleSheet("border-radius:12px; border:2px solid #000000;");
break; break;
default: default:
m_iconButton->setStyleSheet("min-width: 24px; max-width: 24px; min-height: 24px; max-height: 24px;" m_iconButton->setStyleSheet("border-radius:12px; border:2px solid #3D6BE5;");
"icon-size: 22px; background:#3D6BE5; border-radius:12px;");
m_edit->clearFocus(); m_edit->clearFocus();
break; break;
} }

View File

@ -109,7 +109,10 @@ bool Interface::GetSlpState()
bool Interface::GetLockState() bool Interface::GetLockState()
{ {
return ((process.state() != QProcess::NotRunning) && lockState); if(process.state() != QProcess::NotRunning)
return lockState;
else
return checkScreenDialogRunning();
} }
bool Interface::GetBlankState() bool Interface::GetBlankState()
@ -125,11 +128,13 @@ void Interface::SetLockState()
void Interface::emitLockState(bool val) void Interface::emitLockState(bool val)
{ {
qDebug()<<"emitLockState state = "<<val; qDebug()<<"emitLockState state = "<<val;
QDBusInterface interface("org.kde.KWin", if (QString(qgetenv("XDG_SESSION_TYPE")) == "wayland") {
QDBusInterface interface("org.kde.KWin",
"/kglobalaccel", "/kglobalaccel",
"org.kde.KGlobalAccel", "org.kde.KGlobalAccel",
QDBusConnection::sessionBus()); QDBusConnection::sessionBus());
interface.call("blockGlobalShortcuts",val); interface.call("blockGlobalShortcuts",val);
}
QDBusMessage message; QDBusMessage message;
if(val){ if(val){
message = QDBusMessage::createSignal(SS_DBUS_PATH, message = QDBusMessage::createSignal(SS_DBUS_PATH,
@ -268,11 +273,14 @@ bool Interface::checkScreenDialogRunning()
lock.l_whence = SEEK_SET; lock.l_whence = SEEK_SET;
if(fcntl(fd, F_GETLK, &lock) < 0) { if(fcntl(fd, F_GETLK, &lock) < 0) {
close(fd);
return false; return false;
} else { } else {
if (lock.l_type == F_UNLCK) { if (lock.l_type == F_UNLCK) {
close(fd);
return false; return false;
} else { } else {
close(fd);
return true; return true;
} }
} }

View File

@ -0,0 +1,65 @@
/*
* Copyright 2022 KylinSoft Co., Ltd.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with thi1s program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#include "libinputswitchevent.h"
typedef std::function<void(Event*)> sendEvent;
LibinputSwitchEvent::LibinputSwitchEvent(QObject *parent) : QObject(parent)
{
sendEvent se = std::bind(&LibinputSwitchEvent::dealEvent, this, std::placeholders::_1);
m_inputGatherClient = new UKUIInputGatherClient;
m_inputGatherClient->setEventCallBack(se);
m_inputGatherClient->startToReceiveEvent();
}
LibinputSwitchEvent::~LibinputSwitchEvent()
{
delete m_inputGatherClient;
}
bool LibinputSwitchEvent::geInitDevicesStatus()
{
//0 非平板
//1 平板
//-1 不支持
int status = m_inputGatherClient->libinputTabletSwitchState();
qInfo() << __FILE__ << __LINE__<< "当前设备的状态:" << status;
if(status == 1)
return true;
else
return false;
}
void LibinputSwitchEvent::dealEvent(Event* e)
{
switch (e->type) {
case LIBINPUT_EVENT_SWITCH_TOGGLE:
qInfo() << __FILE__ << __LINE__ << "=LIBINPUT_EVENT_SWITCH_TOGGLE=";
if(e->event.switchEventDate.switchType == LIBINPUT_SWITCH_TABLET_MODE) {
qInfo() << __FILE__ << __LINE__ << "switch type" << e->event.switchEventDate.switchType;
qInfo() << __FILE__ << __LINE__ << "switch status" << e->event.switchEventDate.switchState;
if(e->event.switchEventDate.switchState == 1) {
Q_EMIT tabletModeStatusChanged(1);
}else {
Q_EMIT tabletModeStatusChanged(0);
}
}
break;
default:
break;
}
}

40
src/libinputswitchevent.h Normal file
View File

@ -0,0 +1,40 @@
/*
* Copyright 2022 KylinSoft Co., Ltd.
*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef LIBINPUTSWITCHEVENT_H
#define LIBINPUTSWITCHEVENT_H
#include <QObject>
#include <QDebug>
#include <ukui/event.h>
#include <ukui/ukuiinputgatherclient.h>
//头文件以及顺序不可改,不可删
class LibinputSwitchEvent : public QObject
{
Q_OBJECT
public:
explicit LibinputSwitchEvent(QObject *parent = nullptr);
~LibinputSwitchEvent();
UKUIInputGatherClient * m_inputGatherClient = nullptr;
bool geInitDevicesStatus();
signals:
void tabletModeStatusChanged(int tabletmode);
private:
void dealEvent(Event* e);
};
#endif // LIBINPUTSWITCHEVENT_H

File diff suppressed because it is too large Load Diff

View File

@ -25,10 +25,14 @@
#include <QWidget> #include <QWidget>
#include <QResizeEvent> #include <QResizeEvent>
#include <QDBusArgument> #include <QDBusArgument>
#include <QTabWidget>
#include <kylin-nm/kynetworkicon.h>
#include "kylin-nm/kylin-nm-interface.h"
#include "surewindow.h" #include "surewindow.h"
#include "lockchecker.h" #include "lockchecker.h"
#include "xeventmonitor.h" #include "xeventmonitor.h"
#include "batterywidget.h" #include "batterywidget.h"
#include "libinputswitchevent.h"
namespace Ui { namespace Ui {
class LockWidget; class LockWidget;
@ -61,6 +65,7 @@ enum TABAT {
BIOBTN, BIOBTN,
BOTTMBTN, BOTTMBTN,
POWERMANAGER, POWERMANAGER,
MESSAGEBTN,
}; };
enum HORIZONBTN { enum HORIZONBTN {
@ -84,7 +89,9 @@ public:
void setX11Focus(); void setX11Focus();
bool exitSubWidget(); bool exitSubWidget();
void setStartupMode(bool mode); void setStartupMode(bool mode);
void onActiveWindpw(); void onActiveLineedit();
QString getBatteryIconName();
void key_enter_release(int key);
Q_SIGNALS: Q_SIGNALS:
void closed(); void closed();
@ -98,20 +105,20 @@ private:
void updateNetIcon(int status); void updateNetIcon(int status);
bool getLoadStatus(const QString &name); bool getLoadStatus(const QString &name);
int getNetStatus(); int getNetStatus();
QPixmap PixmapToRound(const QPixmap &src, int radius);
void key_OB_release(int key); void key_OB_release(int key);
void key_tab_release(int key); void key_tab_release(int key);
void key_shiftTab_release(); void key_shiftTab_release();
void key_LR_release(int key); void key_LR_release(int key);
void key_enter_release(int key);
int getLoginedNum(); int getLoginedNum();
void setBottomBtnSheet(); void loadNetPlugin();
void setCheckedSheet(int type, bool show); void setBottomBtnSheet();
void setCheckedSheet(int type, bool show);
private Q_SLOTS: private Q_SLOTS:
void onUserAdded(const UserItem &user); void onUserAdded(const UserItem &user);
void onUserDeleted(const UserItem &user); void onUserDeleted(const UserItem &user);
void onUserMenuTrigged(QAction *action); void onUserMenuTrigged(QAction *action);
void showVirtualKeyboard(); void showVirtualKeyboard();
void netInPutStatus();
void showPowerManager(bool keynavigation = false); void showPowerManager(bool keynavigation = false);
void showUserMenu(); void showUserMenu();
void showNetManager(bool keynavigation = false); void showNetManager(bool keynavigation = false);
@ -125,6 +132,8 @@ private Q_SLOTS:
void hideBottomPlugins(); void hideBottomPlugins();
void resetNavigation(); void resetNavigation();
void setBatteryIcon(QString str); void setBatteryIcon(QString str);
void dealMessage(QDBusMessage);
void onShowMessageBtn(bool is_show);
protected: protected:
bool eventFilter(QObject *obj, QEvent *event); bool eventFilter(QObject *obj, QEvent *event);
@ -147,14 +156,16 @@ private:
QScrollArea *scrollArea; QScrollArea *scrollArea;
QWidget *scrollContents; QWidget *scrollContents;
QWidget *m_kylinNM = nullptr;
BatteryWidget *mBatteryWidget = nullptr; BatteryWidget *mBatteryWidget = nullptr;
KylinNM *m_kylinNM = nullptr; QTabWidget *mkylinNM = nullptr;
QWidget *m_NetManagerWidget; QWidget *m_NetManagerWidget;
QStringList m_loginedUser; QStringList m_loginedUser;
bool isNetFinished = false; bool isNetFinished = false;
int powermanagerType; int powermanagerType;
int nowAt = -1; int nowAt = -1;
int loginedNum = 0; int loginedNum = 0;
QPushButton *btnNetworkManager = nullptr;
bool m_isStartupMode = false; bool m_isStartupMode = false;
bool is_switchBtn = true; bool is_switchBtn = true;
bool is_batteryBtn = true; bool is_batteryBtn = true;
@ -163,6 +174,15 @@ private:
int horAT = BATTERYBTN; int horAT = BATTERYBTN;
int at_power = false; int at_power = false;
bool at_plugins = false; bool at_plugins = false;
QDBusInterface *batInterface = nullptr;
QDBusInterface *iface = nullptr;
QDBusInterface *dface = nullptr;
// 监听键盘插拔
LibinputSwitchEvent *libswitch = nullptr;
bool isTableMode = false;
}; };
#endif // LOCKWIDGET_H #endif // LOCKWIDGET_H

View File

@ -144,25 +144,6 @@ QPushButton::pressed {
<string/> <string/>
</property> </property>
</widget> </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"> <widget class="QPushButton" name="btnBatteryStatus">
<property name="geometry"> <property name="geometry">
<rect> <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

@ -51,6 +51,11 @@ PowerManager::PowerManager(int num, QWidget *parent)
lasttime(QTime::currentTime()) lasttime(QTime::currentTime())
{ {
// resize(ITEM_WIDTH*7, ITEM_HEIGHT); // 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); setFlow(QListWidget::LeftToRight);
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@ -197,7 +202,8 @@ void PowerManager::clearStatus()
void::PowerManager::setButtonStyle(QString Style) void::PowerManager::setButtonStyle(QString Style)
{ {
if(Style == "normal") if(Style == "normal")
listLabel.at(nowAt)->setStyleSheet("background-color: rgba(255, 255, 255, 15%);QLabel:hover{background-color:rgba(255,255,255,40%)};QLabel:pressed:!hover{background-color:rgba(255,255,255,30%)}"); listLabel.at(nowAt)->setStyleSheet("background-color: rgba(255, 255, 255, 15%);\
QPushButton:hover{background-color:rgba(255,255,255,40%)};QPushButton:pressed:!hover{background-color:rgba(255,255,255,30%)}");
else if(Style == "focus") else if(Style == "focus")
listLabel.at(nowAt)->setStyleSheet("background-color: rgba(255, 255, 255, 20%);border: 1px solid #296CD9; border-radius: 64px;"); listLabel.at(nowAt)->setStyleSheet("background-color: rgba(255, 255, 255, 20%);border: 1px solid #296CD9; border-radius: 64px;");
} }
@ -655,13 +661,14 @@ void PowerManager::initUI()
rebootWidget->setObjectName("rebootWidget"); rebootWidget->setObjectName("rebootWidget");
QWidget *rbLabelWidget = new QWidget(this); QWidget *rbLabelWidget = new QWidget(this);
rbLabelWidget->setFixedSize(130, 130); rbLabelWidget->setFixedSize(130, 130);
rebootFace = new QLabel(rbLabelWidget); rebootFace = new QPushButton(rbLabelWidget);
rebootFace->setObjectName("rebootFace"); rebootFace->setObjectName("rebootFace");
QLabel *rebootLabel = new QLabel(this); QLabel *rebootLabel = new QLabel(this);
rebootFace->setAlignment(Qt::AlignCenter); //rebootFace->setAlignment(Qt::AlignCenter);
rebootFace->installEventFilter(this); rebootFace->installEventFilter(this);
rebootLabel->setAlignment(Qt::AlignCenter); rebootLabel->setAlignment(Qt::AlignCenter);
rebootFace->setPixmap(QPixmap(":/image/assets/reboot.png").scaled(58,58)); rebootFace->setIcon(QIcon(":/image/assets/reboot.svg"));
rebootFace->setIconSize(QSize(48, 48));
rebootLabel->setText(tr("Reboot")); rebootLabel->setText(tr("Reboot"));
rebootWidget->setFixedSize(ITEM_WIDTH,ITEM_HEIGHT); rebootWidget->setFixedSize(ITEM_WIDTH,ITEM_HEIGHT);
QVBoxLayout *rebootlayout = new QVBoxLayout(rebootWidget); QVBoxLayout *rebootlayout = new QVBoxLayout(rebootWidget);
@ -673,15 +680,16 @@ void PowerManager::initUI()
shutdownWidget->setObjectName("shutdownWidget"); shutdownWidget->setObjectName("shutdownWidget");
QWidget *shLabelWidget = new QWidget(this); QWidget *shLabelWidget = new QWidget(this);
shLabelWidget->setFixedSize(130, 130); shLabelWidget->setFixedSize(130, 130);
shutdownFace = new QLabel(shLabelWidget); shutdownFace = new QPushButton(shLabelWidget);
shutdownFace->setObjectName("shutdownFace"); shutdownFace->setObjectName("shutdownFace");
QLabel *shutdownLabel = new QLabel(this); QLabel *shutdownLabel = new QLabel(this);
shutdownLabel->setAlignment(Qt::AlignCenter); shutdownLabel->setAlignment(Qt::AlignCenter);
shutdownFace->setAlignment(Qt::AlignCenter); //shutdownFace->setAlignment(Qt::AlignCenter);
shutdownFace->installEventFilter(this); shutdownFace->installEventFilter(this);
shutdownFace->setPixmap(QPixmap(":/image/assets/shutdown.png").scaled(58,58)); shutdownFace->setIcon(QIcon(":/image/assets/shutdown.svg"));
shutdownFace->setIconSize(QSize(48, 48));
shutdownLabel->setText(tr("Shut Down")); shutdownLabel->setText(tr("Shut Down"));
shutdownWidget->setFixedSize(ITEM_WIDTH,ITEM_HEIGHT); shutdownWidget->setFixedSize(ITEM_WIDTH, ITEM_HEIGHT);
QVBoxLayout *shutdownlayout = new QVBoxLayout(shutdownWidget); QVBoxLayout *shutdownlayout = new QVBoxLayout(shutdownWidget);
shutdownlayout->addWidget(shLabelWidget); shutdownlayout->addWidget(shLabelWidget);
shutdownlayout->addWidget(shutdownLabel); shutdownlayout->addWidget(shutdownLabel);
@ -699,13 +707,14 @@ void PowerManager::initUI()
hibernateWidget->setObjectName("hibernateWidget"); hibernateWidget->setObjectName("hibernateWidget");
QWidget *hbLabelWidget = new QWidget(this); QWidget *hbLabelWidget = new QWidget(this);
hbLabelWidget->setFixedSize(130, 130); hbLabelWidget->setFixedSize(130, 130);
hibernateFace = new QLabel(hbLabelWidget); hibernateFace = new QPushButton(hbLabelWidget);
hibernateFace->setObjectName("hibernateFace"); hibernateFace->setObjectName("hibernateFace");
QLabel *hibernateLabel = new QLabel(this); QLabel *hibernateLabel = new QLabel(this);
hibernateLabel->setAlignment(Qt::AlignCenter); hibernateLabel->setAlignment(Qt::AlignCenter);
hibernateFace->setAlignment(Qt::AlignCenter); //hibernateFace->setAlignment(Qt::AlignCenter);
hibernateFace->installEventFilter(this); hibernateFace->installEventFilter(this);
hibernateFace->setPixmap(QPixmap(":/image/assets/hibernate.png").scaled(48,48)); hibernateFace->setIcon(QIcon(":/image/assets/hibernate.svg"));
hibernateFace->setIconSize(QSize(48, 48));
hibernateLabel->setText(tr("Hibernate")); hibernateLabel->setText(tr("Hibernate"));
hibernateWidget->setFixedSize(ITEM_WIDTH,ITEM_HEIGHT); hibernateWidget->setFixedSize(ITEM_WIDTH,ITEM_HEIGHT);
QVBoxLayout *hibernatelayout = new QVBoxLayout(hibernateWidget); QVBoxLayout *hibernatelayout = new QVBoxLayout(hibernateWidget);
@ -726,13 +735,14 @@ void PowerManager::initUI()
suspendWidget->setObjectName("suspendWidget"); suspendWidget->setObjectName("suspendWidget");
QWidget *spLabelWidget = new QWidget(this); QWidget *spLabelWidget = new QWidget(this);
spLabelWidget->setFixedSize(130, 130); spLabelWidget->setFixedSize(130, 130);
suspendFace = new QLabel(spLabelWidget); suspendFace = new QPushButton(spLabelWidget);
suspendFace->setObjectName("suspendFace"); suspendFace->setObjectName("suspendFace");
QLabel *suspendLabel = new QLabel(this); QLabel *suspendLabel = new QLabel(this);
suspendLabel->setAlignment(Qt::AlignCenter); suspendLabel->setAlignment(Qt::AlignCenter);
suspendFace->setAlignment(Qt::AlignCenter); //suspendFace->setAlignment(Qt::AlignCenter);
suspendFace->installEventFilter(this); suspendFace->installEventFilter(this);
suspendFace->setPixmap(QPixmap(":/image/assets/suspend.png").scaled(48,48)); suspendFace->setIcon(QIcon(":/image/assets/suspend.svg"));
suspendFace->setIconSize(QSize(48, 48));
suspendLabel->setText(tr("Suspend")); suspendLabel->setText(tr("Suspend"));
suspendWidget->setFixedSize(ITEM_WIDTH,ITEM_HEIGHT); suspendWidget->setFixedSize(ITEM_WIDTH,ITEM_HEIGHT);
QVBoxLayout *suspendlayout = new QVBoxLayout(suspendWidget); QVBoxLayout *suspendlayout = new QVBoxLayout(suspendWidget);

View File

@ -45,6 +45,7 @@ enum stateType {
}; };
class QLabel; class QLabel;
class QPushButton;
class QListWidget; class QListWidget;
class QListWidgetItem; class QListWidgetItem;
class QDBusInterface; class QDBusInterface;
@ -76,7 +77,7 @@ private:
void setQSS(); void setQSS();
QWidget *list; QWidget *list;
#else #else
QList<QLabel *> listLabel; QList<QPushButton *> listLabel;
int nowAt = -1; int nowAt = -1;
QListWidget *list; QListWidget *list;
QWidget *suspendWidget; QWidget *suspendWidget;
@ -97,10 +98,10 @@ private:
QWidget *rebootWidget; QWidget *rebootWidget;
QWidget *shutdownWidget; QWidget *shutdownWidget;
QTime lasttime; QTime lasttime;
QLabel *rebootFace; QPushButton *rebootFace;
QLabel *shutdownFace; QPushButton *shutdownFace;
QLabel *hibernateFace; QPushButton *hibernateFace;
QLabel *suspendFace; QPushButton *suspendFace;
int loginedNum = 0; int loginedNum = 0;
bool m_isStartupMode = false; bool m_isStartupMode = false;

View File

@ -198,11 +198,11 @@ int main(int argc, char *argv[])
window = new FullBackgroundWidget(); window = new FullBackgroundWidget();
QFile qssFile(":/qss/assets/authdialog.qss"); // QFile qssFile(":/qss/assets/authdialog.qss");
if(qssFile.open(QIODevice::ReadOnly)) { // if(qssFile.open(QIODevice::ReadOnly)) {
a.setStyleSheet(qssFile.readAll()); // a.setStyleSheet(qssFile.readAll());
} // }
qssFile.close(); // qssFile.close();
// 注册DBus // 注册DBus
ScreenSaverWndAdaptor adaptorWnd(window); ScreenSaverWndAdaptor adaptorWnd(window);
@ -226,7 +226,10 @@ int main(int argc, char *argv[])
} }
#ifndef USE_INTEL #ifndef USE_INTEL
window->showFullScreen(); if (QString(qgetenv("XDG_SESSION_TYPE")) == "wayland")
window->showFullScreen();
else
window->show();
window->activateWindow(); window->activateWindow();
#endif #endif
if(parser.isSet(lockOption)) if(parser.isSet(lockOption))