代码拉取完成,页面将自动刷新
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
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。