kiran-session-guard/0018-feat-greeter-plugin-Adjusting-the-Greeter-Control-Ce.patch

717 lines
27 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

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

From bd524c337a59d070da621c5dbcd749d2b8354db7 Mon Sep 17 00:00:00 2001
From: liuxinhao <liuxinhao@kylinsec.com.cn>
Date: Mon, 22 Apr 2024 13:45:35 +0800
Subject: [PATCH] feat(greeter plugin): Adjusting the Greeter Control Center
plugin to use a new version of the interface for keyword search
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 调整Greeter控制中心插件使用新版本接口并支持关键字搜索
Closes #35280
---
data/kiran-cpanel-greeter.desktop.in | 33 --------
.../kiran-cpanel-greeter/CMakeLists.txt | 8 +-
...cp-interface.cpp => greeter-interface.cpp} | 58 ++++++-------
.../kiran-cpanel-greeter/greeter-interface.h | 46 ++++++++++
.../kiran-cpanel-greeter/greeter-subitem.cpp | 84 +++++++++++++++++++
.../kiran-cpanel-greeter/greeter-subitem.h | 57 +++++++++++++
.../kiran-cpanel-greeter/kcp-interface.h | 50 -----------
.../kiran-cpanel-greeter/setting-window.cpp | 28 ++++++-
.../kiran-cpanel-greeter/setting-window.h | 3 +
translations/kiran-cpanel-greeter.zh_CN.ts | 68 +++++++--------
10 files changed, 277 insertions(+), 158 deletions(-)
delete mode 100644 data/kiran-cpanel-greeter.desktop.in
rename src/lightdm-greeter/kiran-cpanel-greeter/{kcp-interface.cpp => greeter-interface.cpp} (59%)
create mode 100644 src/lightdm-greeter/kiran-cpanel-greeter/greeter-interface.h
create mode 100644 src/lightdm-greeter/kiran-cpanel-greeter/greeter-subitem.cpp
create mode 100644 src/lightdm-greeter/kiran-cpanel-greeter/greeter-subitem.h
delete mode 100644 src/lightdm-greeter/kiran-cpanel-greeter/kcp-interface.h
diff --git a/data/kiran-cpanel-greeter.desktop.in b/data/kiran-cpanel-greeter.desktop.in
deleted file mode 100644
index db1065d..0000000
--- a/data/kiran-cpanel-greeter.desktop.in
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/env xdg-open
-[Desktop Entry]
-Encoding=UTF-8
-Name=Greeter Settings
-Name[zh_CN]=登录选项
-Comment=kiran greeter settings
-Comment=Kiran登录界面选项
-#通过启动器单独执行 <kiran-cpanel-launcher -cpanel-plugin 插件的desktop文件名>
-Exec=kiran-cpanel-launcher --cpanel-plugin=kiran-cpanel-greeter
-Icon=kcp-greeter
-Terminal=false
-Type=Application
-Categories=Lightdm;Greeter;Core;Settings;System;X-Common-Features;X-Common-Features;
-X-KIRAN-NoDisplay=true
-
-[Kiran Control Panel Plugin]
-#插件排序
-Weight=99
-#插件分类
-Category=login-settings
-#插件共享库位置,若以'/'开头则为绝对路径,也可支持通过共享库名去插件安装目录去查找
-Library=libkiran-cpanel-greeter.so
-SubItems=Greeter
-
-[Greeter]
-#插件子项名 该值提供给控制中心形成子项列表
-Name=Greeter Settings
-Name[zh_CN] = 登录选项
-#插件Icon
-Icon=kcp-greeter
-#插件关键字 该值提供给控制中心形成搜索列表
-Keywords[zh_CN]=登录选项
-Keywords = Greeter
\ No newline at end of file
diff --git a/src/lightdm-greeter/kiran-cpanel-greeter/CMakeLists.txt b/src/lightdm-greeter/kiran-cpanel-greeter/CMakeLists.txt
index e556b36..16cde77 100644
--- a/src/lightdm-greeter/kiran-cpanel-greeter/CMakeLists.txt
+++ b/src/lightdm-greeter/kiran-cpanel-greeter/CMakeLists.txt
@@ -10,8 +10,8 @@ pkg_get_variable(CPANEL_DESKTOP_DIR kiran-control-panel plugin_desktop_location)
file(GLOB CPANEL_GREETER_SRC "../common/*.cpp" "../common/*.h" "./*.cpp" "./*.h" "./*.ui")
set(CPANEL_GREETER_RESOURCE ${CMAKE_SOURCE_DIR}/resources/kcp-greeter-resources.qrc)
file(GLOB CPANEL_GREETER_TRANSLATION ${CMAKE_SOURCE_DIR}/translations/kiran-cpanel-greeter.*.ts)
-qt5_create_translation(GREETER_SETTINS_QM_FILES
- ${CMAKE_CURRENT_SOURCE_DIR}
+qt5_create_translation(GREETER_SETTINS_QM_FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}
${CPANEL_GREETER_TRANSLATION}
OPTIONS -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CMAKE_CURRENT_BINARY_DIR} )
@@ -45,10 +45,6 @@ target_link_libraries(${TARGET_NAME}
${KIRAN_STYLE_HELPER_LIBRARIES})
# 安装
-#安装插件desktop文件
-configure_file(${CMAKE_SOURCE_DIR}/data/kiran-cpanel-greeter.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/kiran-cpanel-greeter.desktop @ONLY)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kiran-cpanel-greeter.desktop DESTINATION ${CPANEL_DESKTOP_DIR}/)
-
#安装插件
install(TARGETS ${TARGET_NAME} DESTINATION ${CPANEL_PLUGIN_DIR}/)
#翻译文件
diff --git a/src/lightdm-greeter/kiran-cpanel-greeter/kcp-interface.cpp b/src/lightdm-greeter/kiran-cpanel-greeter/greeter-interface.cpp
similarity index 59%
rename from src/lightdm-greeter/kiran-cpanel-greeter/kcp-interface.cpp
rename to src/lightdm-greeter/kiran-cpanel-greeter/greeter-interface.cpp
index 3d5691c..0b346bc 100644
--- a/src/lightdm-greeter/kiran-cpanel-greeter/kcp-interface.cpp
+++ b/src/lightdm-greeter/kiran-cpanel-greeter/greeter-interface.cpp
@@ -1,5 +1,5 @@
/**
- * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
+ * Copyright (c) 2020 ~ 2024 KylinSec Co., Ltd.
* kiran-session-guard is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
@@ -9,34 +9,35 @@
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
*
- * Author: liuxinhao <liuxinhao@kylinos.com.cn>
+ * Author: liuxinhao <liuxinhao@kylinsec.com.cn>
*/
+#include "greeter-interface.h"
+#include "greeter-subitem.h"
-#include "kcp-interface.h"
-#include "setting-window.h"
-
-#include <qt5-log-i.h>
-#include <QApplication>
+#include <QCoreApplication>
#include <QTranslator>
-
-#define KCP_SUBITEM_GREETER_ID "Greeter"
+#include <QLocale>
+#include <qt5-log-i.h>
namespace Kiran
{
namespace SessionGuard
{
-namespace Greeter
-{
-KcpInterface::KcpInterface()
+GreeterInterface::GreeterInterface(QObject* parent)
+ :QObject()
{
+
}
-KcpInterface::~KcpInterface()
+GreeterInterface::~GreeterInterface()
{
+
}
-int KcpInterface::init()
+int GreeterInterface::init(KiranControlPanel::PanelInterface* interface)
{
+ m_panelInterface = interface;
+
if (m_translator != nullptr)
{
QCoreApplication::removeTranslator(m_translator);
@@ -51,7 +52,7 @@ int KcpInterface::init()
"/usr/share/lightdm-kiran-greeter/translations",
".qm"))
{
- KLOG_ERROR() << "load translator failed!";
+ KLOG_ERROR() << "greeter plugin load translator failed!";
m_translator->deleteLater();
m_translator = nullptr;
}
@@ -60,32 +61,23 @@ int KcpInterface::init()
QCoreApplication::installTranslator(m_translator);
}
+ m_subitem.reset(new GreeterSubItem(interface, this));
return 0;
}
-void KcpInterface::uninit()
+void GreeterInterface::uninit()
{
-}
-QWidget* KcpInterface::getSubItemWidget(QString subItemName)
-{
- QWidget* widget = nullptr;
- if (subItemName == KCP_SUBITEM_GREETER_ID)
+ if (m_translator != nullptr)
{
- widget = new SettingWindow;
+ qApp->removeTranslator(m_translator);
+ m_translator->deleteLater();
+ m_translator = nullptr;
}
- m_currentWidget = widget;
- return m_currentWidget;
}
-bool KcpInterface::haveUnsavedOptions()
+QVector<KiranControlPanel::SubItemPtr> GreeterInterface::getSubItems()
{
- return false;
+ return {m_subitem};
+}
}
-
-QStringList KcpInterface::visibleSubItems()
-{
- return QStringList() << KCP_SUBITEM_GREETER_ID;
}
-} // namespace Greeter
-} // namespace SessionGuard
-} // namespace Kiran
\ No newline at end of file
diff --git a/src/lightdm-greeter/kiran-cpanel-greeter/greeter-interface.h b/src/lightdm-greeter/kiran-cpanel-greeter/greeter-interface.h
new file mode 100644
index 0000000..6cea16a
--- /dev/null
+++ b/src/lightdm-greeter/kiran-cpanel-greeter/greeter-interface.h
@@ -0,0 +1,46 @@
+/**
+ * Copyright (c) 2020 ~ 2024 KylinSec Co., Ltd.
+ * kiran-session-guard is licensed under Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ *
+ * Author: liuxinhao <liuxinhao@kylinsec.com.cn>
+ */
+#pragma once
+#include <QObject>
+#include <plugin-interface-v2.h>
+#include <panel-interface.h>
+
+class QTranslator;
+namespace Kiran
+{
+namespace SessionGuard
+{
+class GreeterInterface: public QObject,public KiranControlPanel::PluginInterfaceV2
+{
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID KiranControlPanel_PluginInterfaceV2_iid)
+ Q_INTERFACES(KiranControlPanel::PluginInterfaceV2)
+public:
+ GreeterInterface(QObject* parent = nullptr);
+ ~GreeterInterface();
+
+ virtual int init(KiranControlPanel::PanelInterface* interface) override;
+ virtual void uninit() override;
+
+ // 功能项数组,生存周期由插件维护
+ // 功能项发生变更时应调用init时传入KcpInterface接口通知主面板相关信息变更,及时加载新的功能项信息
+ virtual QVector<KiranControlPanel::SubItemPtr> getSubItems() override;
+
+private:
+ KiranControlPanel::PanelInterface* m_panelInterface = nullptr;
+ QTranslator* m_translator = nullptr;
+ KiranControlPanel::SubItemPtr m_subitem;
+};
+}
+}
\ No newline at end of file
diff --git a/src/lightdm-greeter/kiran-cpanel-greeter/greeter-subitem.cpp b/src/lightdm-greeter/kiran-cpanel-greeter/greeter-subitem.cpp
new file mode 100644
index 0000000..8b323e2
--- /dev/null
+++ b/src/lightdm-greeter/kiran-cpanel-greeter/greeter-subitem.cpp
@@ -0,0 +1,84 @@
+/**
+ * Copyright (c) 2020 ~ 2024 KylinSec Co., Ltd.
+ * kiran-session-guard is licensed under Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ *
+ * Author: liuxinhao <liuxinhao@kylinsec.com.cn>
+ */
+#include "greeter-subitem.h"
+#include "setting-window.h"
+
+using namespace Kiran::SessionGuard::Greeter;
+
+GreeterSubItem::GreeterSubItem(KiranControlPanel::PanelInterface* interface, QObject* parent)
+ : QObject(parent),
+ m_interface(interface)
+{
+}
+
+GreeterSubItem ::~GreeterSubItem()
+{
+}
+
+QString GreeterSubItem::getID()
+{
+ return "Greeter";
+}
+
+QString GreeterSubItem::getName()
+{
+ return tr("Greeter Settings");
+}
+
+QString GreeterSubItem::getCategory()
+{
+ return "login-settings";
+}
+
+QString GreeterSubItem::getDesc()
+{
+ return "";
+}
+
+QString GreeterSubItem::getIcon()
+{
+ return "kcp-greeter";
+}
+
+int GreeterSubItem::getWeight()
+{
+ return 999;
+}
+
+QVector<QPair<QString, QString>> GreeterSubItem::getSearchKeys()
+{
+ auto res = SettingWindow::getSearchKeys();
+ return res;
+}
+
+QWidget* GreeterSubItem::createWidget()
+{
+ m_subitemWidget = new SettingWindow();
+ m_subitemWidget->installEventFilter(this);
+ return m_subitemWidget;
+}
+
+bool GreeterSubItem::jumpToSearchEntry(const QString& key)
+{
+ if (!m_subitemWidget)
+ return false;
+
+ m_subitemWidget->jumpToSearchKey(key);
+ return true;
+}
+
+bool GreeterSubItem::haveUnSavedOptions()
+{
+ return false;
+}
\ No newline at end of file
diff --git a/src/lightdm-greeter/kiran-cpanel-greeter/greeter-subitem.h b/src/lightdm-greeter/kiran-cpanel-greeter/greeter-subitem.h
new file mode 100644
index 0000000..474392c
--- /dev/null
+++ b/src/lightdm-greeter/kiran-cpanel-greeter/greeter-subitem.h
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2020 ~ 2024 KylinSec Co., Ltd.
+ * kiran-session-guard is licensed under Mulan PSL v2.
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
+ * You may obtain a copy of Mulan PSL v2 at:
+ * http://license.coscl.org.cn/MulanPSL2
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
+ * See the Mulan PSL v2 for more details.
+ *
+ * Author: liuxinhao <liuxinhao@kylinsec.com.cn>
+ */
+#pragma once
+#include <QDBusObjectPath>
+#include <QObject>
+#include <panel-interface.h>
+#include <plugin-subitem-interface.h>
+
+namespace Kiran
+{
+namespace SessionGuard
+{
+namespace Greeter
+{
+class SettingWindow;
+}
+} // namespace SessionGuard
+} // namespace Kiran
+
+class GreeterSubItem : public QObject,
+ public KiranControlPanel::PluginSubitemInterface
+{
+ Q_OBJECT
+public:
+ GreeterSubItem(KiranControlPanel::PanelInterface* interface, QObject* parent = nullptr);
+ ~GreeterSubItem();
+
+ QString getID() override;
+ QString getName() override;
+ QString getCategory() override;
+ QString getDesc() override;
+ QString getIcon() override;
+ int getWeight() override;
+
+ // 获取自定义搜索关键词
+ // QVector< 显示文本(已翻译)搜索跳转标识ID >
+ QVector<QPair<QString, QString>> getSearchKeys() override;
+
+ QWidget* createWidget() override;
+ bool jumpToSearchEntry(const QString& key) override;
+ bool haveUnSavedOptions() override;
+
+private:
+ KiranControlPanel::PanelInterface* m_interface = nullptr;
+ Kiran::SessionGuard::Greeter::SettingWindow* m_subitemWidget = nullptr;
+};
diff --git a/src/lightdm-greeter/kiran-cpanel-greeter/kcp-interface.h b/src/lightdm-greeter/kiran-cpanel-greeter/kcp-interface.h
deleted file mode 100644
index 4759f99..0000000
--- a/src/lightdm-greeter/kiran-cpanel-greeter/kcp-interface.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * Copyright (c) 2020 ~ 2021 KylinSec Co., Ltd.
- * kiran-session-guard is licensed under Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * http://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
- * See the Mulan PSL v2 for more details.
- *
- * Author: liuxinhao <liuxinhao@kylinos.com.cn>
- */
-#pragma once
-#include <kcp-plugin-interface.h>
-
-
-QT_BEGIN_NAMESPACE
-class QTranslator;
-QT_END_NAMESPACE
-
-namespace Kiran
-{
-namespace SessionGuard
-{
-namespace Greeter
-{
-class KcpInterface : public QObject, public KcpPluginInterface
-{
- Q_OBJECT
- Q_PLUGIN_METADATA(IID KcpPluginInterface_iid)
- Q_INTERFACES(KcpPluginInterface)
-public:
- KcpInterface();
- ~KcpInterface() override;
-
- int init() override;
- void uninit() override;
-
- QWidget* getSubItemWidget(QString subItemName) override;
- bool haveUnsavedOptions() override;
- QStringList visibleSubItems() override;
-
-private:
- QWidget* m_currentWidget = nullptr;
- QTranslator* m_translator = nullptr;
-};
-} // namespace Greeter
-} // namespace SessionGuard
-} // namespace Kiran
\ No newline at end of file
diff --git a/src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp b/src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp
index 45c9fb9..3712051 100644
--- a/src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp
+++ b/src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp
@@ -39,6 +39,9 @@
#define BACKGROUND_SAVE_LOCATION "/usr/share/lightdm-kiran-greeter/background"
+#define ITEM_GENERAL_SETTINGS QT_TRANSLATE_NOOP("Kiran::SessionGuard::Greeter::SettingWindow","general settings")
+#define ITEM_AUTO_LOGIN_SETTINGS QT_TRANSLATE_NOOP("Kiran::SessionGuard::Greeter::SettingWindow","autologin")
+
enum GreeterSettingsPageEnum
{
GreeterSettings_Appearance,
@@ -91,11 +94,11 @@ void SettingWindow::initUI()
layoutSideWidget->addWidget(m_sidebarWidget);
QListWidgetItem *item;
- item = new QListWidgetItem(tr("general settings"), m_sidebarWidget);
+ item = new QListWidgetItem(tr(ITEM_GENERAL_SETTINGS), m_sidebarWidget);
item->setIcon(QIcon(":/kcp-greeter/images/appearance_setting.png"));
m_sidebarWidget->addItem(item);
- item = new QListWidgetItem(tr("autologin"), m_sidebarWidget);
+ item = new QListWidgetItem(tr(ITEM_AUTO_LOGIN_SETTINGS), m_sidebarWidget);
item->setIcon(QIcon(":/kcp-greeter/images/user_login_setting.png"));
m_sidebarWidget->addItem(item);
@@ -703,6 +706,27 @@ QSize SettingWindow::sizeHint() const
return {940, 653};
}
+QVector<QPair<QString,QString>> SettingWindow::getSearchKeys()
+{
+ QVector<QPair<QString,QString>> searchEntries = {
+ {tr(ITEM_GENERAL_SETTINGS),tr(ITEM_GENERAL_SETTINGS)},
+ {tr(ITEM_AUTO_LOGIN_SETTINGS),tr(ITEM_AUTO_LOGIN_SETTINGS)}
+ };
+
+ return searchEntries;
+}
+
+void SettingWindow::jumpToSearchKey(const QString& subItem)
+{
+ auto resList = m_sidebarWidget->findItems(subItem,Qt::MatchFixedString);
+ if( resList.isEmpty() )
+ {
+ KLOG_ERROR() << "greeter plugin can't find SubItem:" << subItem;
+ return;
+ }
+ m_sidebarWidget->setCurrentItem(resList.at(0));
+}
+
void SettingWindow::onLoginOptionsChanged()
{
auto changedSwitch = qobject_cast<KiranSwitchButton *>(sender());
diff --git a/src/lightdm-greeter/kiran-cpanel-greeter/setting-window.h b/src/lightdm-greeter/kiran-cpanel-greeter/setting-window.h
index 1c95a1c..4975275 100644
--- a/src/lightdm-greeter/kiran-cpanel-greeter/setting-window.h
+++ b/src/lightdm-greeter/kiran-cpanel-greeter/setting-window.h
@@ -99,6 +99,9 @@ public:
QSize sizeHint() const override;
+ static QVector<QPair<QString,QString>> getSearchKeys();
+ void jumpToSearchKey(const QString& subItem);
+
private:
void initUI();
diff --git a/translations/kiran-cpanel-greeter.zh_CN.ts b/translations/kiran-cpanel-greeter.zh_CN.ts
index 5468e6f..d76b4b5 100644
--- a/translations/kiran-cpanel-greeter.zh_CN.ts
+++ b/translations/kiran-cpanel-greeter.zh_CN.ts
@@ -3,14 +3,6 @@
<TS version="2.1" language="zh_CN">
<context>
<name>GreeterSettingWindow</name>
- <message>
- <source>autologin</source>
- <translation type="vanished">自动登录</translation>
- </message>
- <message>
- <source>general settings</source>
- <translation type="vanished">登录选项</translation>
- </message>
<message>
<source>auto login user(take effect after restart)</source>
<translation type="vanished">自动登录用户(重启后生效)</translation>
@@ -86,113 +78,121 @@ Select discard to discard the modification and reload the new configuration</sou
<translation type="vanished">保存成功</translation>
</message>
</context>
+<context>
+ <name>GreeterSubItem</name>
+ <message>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/greeter-subitem.cpp" line="36"/>
+ <source>Greeter Settings</source>
+ <translation>登录选项</translation>
+ </message>
+</context>
<context>
<name>Kiran::SessionGuard::Greeter::SettingWindow</name>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="94"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="42"/>
<source>general settings</source>
<translation>登录选项</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="98"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="43"/>
<source>autologin</source>
<translation>自动登录</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="165"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="168"/>
<source>auto login user(take effect after restart)</source>
<translation>自动登录用户(重启后生效)</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="199"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="202"/>
<source>auto login delay(seconds)(take effect after restart)</source>
<translation>自动登录延时(秒)(重启后生效)</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="235"/>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="399"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="238"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="402"/>
<source>Save</source>
<translation>保存</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="249"/>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="413"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="252"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="416"/>
<source>Reset</source>
<translation>重置</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="272"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="275"/>
<source>login background setting</source>
<translation>登录背景设置</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="289"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="292"/>
<source>Scale Mode</source>
<translation>缩放模式</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="300"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="303"/>
<source>auto</source>
<translation>自动</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="301"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="304"/>
<source>manual</source>
<translation>手动</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="302"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="305"/>
<source>disable</source>
<translation>禁用</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="308"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="311"/>
<source>Scale Factor</source>
<translation>缩放比例</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="333"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="336"/>
<source>Enable manual input user login</source>
<translation>允许手动输入用户名登录</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="358"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="361"/>
<source>Show User List</source>
<translation>显示用户列表</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="465"/>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="541"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="467"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="543"/>
<source>Configuration changed</source>
<translation>配置已改变</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="466"/>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="542"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="468"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="544"/>
<source>The external configuration file has changed
If you choose to save, all external changes will be overwritten
Select discard to discard the modification and reload the new configuration</source>
<translation>配置文件已被修改,如果继续保存所有额外的修改将会被覆盖,选择丢弃将丢弃所有的修改并重新加载新的配置文件</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="519"/>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="589"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="521"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="591"/>
<source>Save failed, reload</source>
<translation>保存失败,已重新加载</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="523"/>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="599"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="525"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="601"/>
<source>Saved successfully</source>
<translation>保存成功</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="593"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="595"/>
<source>Save failed: %1</source>
<translation>保存失败: %1</translation>
</message>
<message>
- <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="718"/>
+ <location filename="../src/lightdm-greeter/kiran-cpanel-greeter/setting-window.cpp" line="730"/>
<source>Please ensure that one of the two options is turned on!</source>
<translation>请确保两个选项之一被打开!</translation>
</message>
--
2.33.0