Projects
Eulaceura:Mainline
kiran-session-guard
_service:obs_scm:0018-feat-greeter-plugin-Adjus...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:0018-feat-greeter-plugin-Adjusting-the-Greeter-Control-Ce.patch of Package kiran-session-guard
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
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2