717 lines
27 KiB
Diff
717 lines
27 KiB
Diff
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
|
||
|