From d00912d546d6479c6571d25fbc546a1e26eb72c6 Mon Sep 17 00:00:00 2001 From: JunjieBai Date: Fri, 9 Sep 2022 11:01:13 +0800 Subject: [PATCH] Add app widget plugin. --- frontend/mainwindow.cpp | 6 + frontend/mainwindow.h | 2 + libsearch/global-settings.cpp | 2 + libsearch/global-settings.h | 1 + libsearch/libsearch.pro | 22 +++- .../provider/data/search.conf | 12 ++ .../provider/data/search.png | Bin 0 -> 12438 bytes .../provider/data/search.qml | 105 ++++++++++++++++++ .../provider/data/search.svg | 16 +++ .../provider/data/ukui-search.svg | 23 ++++ ...org.ukui.appwidget.provider.search.service | 3 + .../search-app-widget-plugin/provider/src.qrc | 9 ++ .../search-app-widget-plugin.pri | 6 + .../search-app-widget-plugin.pro | 52 +++++++++ .../search-app-widget-plugin_global.h | 12 ++ libsearch/search-app-widget-plugin/search.cpp | 81 ++++++++++++++ libsearch/search-app-widget-plugin/search.h | 39 +++++++ search-ukcc-plugin/translations/bo_CN.ts | 35 +++--- search-ukcc-plugin/translations/zh_CN.ts | 35 +++--- .../libukui-search/libukui-search_bo_CN.ts | 61 +++++++--- .../libukui-search/libukui-search_zh_CN.ts | 53 ++++++--- 21 files changed, 506 insertions(+), 69 deletions(-) create mode 100644 libsearch/search-app-widget-plugin/provider/data/search.conf create mode 100644 libsearch/search-app-widget-plugin/provider/data/search.png create mode 100755 libsearch/search-app-widget-plugin/provider/data/search.qml create mode 100644 libsearch/search-app-widget-plugin/provider/data/search.svg create mode 100644 libsearch/search-app-widget-plugin/provider/data/ukui-search.svg create mode 100644 libsearch/search-app-widget-plugin/provider/org.ukui.appwidget.provider.search.service create mode 100644 libsearch/search-app-widget-plugin/provider/src.qrc create mode 100644 libsearch/search-app-widget-plugin/search-app-widget-plugin.pri create mode 100644 libsearch/search-app-widget-plugin/search-app-widget-plugin.pro create mode 100644 libsearch/search-app-widget-plugin/search-app-widget-plugin_global.h create mode 100644 libsearch/search-app-widget-plugin/search.cpp create mode 100644 libsearch/search-app-widget-plugin/search.h diff --git a/frontend/mainwindow.cpp b/frontend/mainwindow.cpp index cfe7f16..2851519 100644 --- a/frontend/mainwindow.cpp +++ b/frontend/mainwindow.cpp @@ -89,6 +89,12 @@ MainWindow::MainWindow(QWidget *parent) : // } // }); + m_appWidgetPlugin = new AppWidgetPlugin; + + connect(m_appWidgetPlugin, &AppWidgetPlugin::startSearch, this, [ & ] (QString keyword){ + this->bootOptionsFilter("-s"); + this->setText(keyword); + }); //NEW_TODO, register plugins // SearchPluginManager::getInstance()->registerPlugin(\\); // m_stackedWidget->setPlugins(SearchPluginManager::getInstance()->getPluginIds()); diff --git a/frontend/mainwindow.h b/frontend/mainwindow.h index 124ca4d..1a67aeb 100644 --- a/frontend/mainwindow.h +++ b/frontend/mainwindow.h @@ -46,6 +46,7 @@ #include #include +#include "search-app-widget-plugin/search.h" #include "index-generator.h" #include "libsearch.h" #include "create-index-ask-dialog.h" @@ -143,6 +144,7 @@ private: QTimer * m_researchTimer = nullptr; //创建索引后重新执行一次搜索的计时器 bool m_currentSearchAsked = false; //本次搜索是否已经询问过是否创建索引了 QGSettings * m_search_gsettings = nullptr; + AppWidgetPlugin *m_appWidgetPlugin = nullptr; void setSearchMethod(const bool&); double getTransparentData(); diff --git a/libsearch/global-settings.cpp b/libsearch/global-settings.cpp index 03f87a3..20cf3f8 100644 --- a/libsearch/global-settings.cpp +++ b/libsearch/global-settings.cpp @@ -70,6 +70,7 @@ GlobalSettings::GlobalSettings(QObject *parent) : QObject(parent) { m_cache.remove(TRANSPARENCY_KEY); m_cache.insert(TRANSPARENCY_KEY, m_trans_gsettings->get(TRANSPARENCY_KEY).toDouble()); qApp->paletteChanged(qApp->palette()); + Q_EMIT this->transparencyChanged(m_trans_gsettings->get(TRANSPARENCY_KEY).toDouble()); } }); m_cache.remove(TRANSPARENCY_KEY); @@ -86,6 +87,7 @@ GlobalSettings::GlobalSettings(QObject *parent) : QObject(parent) { m_cache.remove(STYLE_NAME_KEY); m_cache.insert(STYLE_NAME_KEY, m_theme_gsettings->get(STYLE_NAME_KEY).toString()); qApp->paletteChanged(qApp->palette()); + Q_EMIT this->styleChanged(m_theme_gsettings->get(STYLE_NAME_KEY).toString()); } else if(key == FONT_SIZE_KEY) { m_cache.remove(FONT_SIZE_KEY); m_cache.insert(FONT_SIZE_KEY, m_theme_gsettings->get(FONT_SIZE_KEY).toDouble()); diff --git a/libsearch/global-settings.h b/libsearch/global-settings.h index fc643b9..be6fb3f 100644 --- a/libsearch/global-settings.h +++ b/libsearch/global-settings.h @@ -68,6 +68,7 @@ public: Q_SIGNALS: void valueChanged(const QString&); void transparencyChanged(const double&); + void styleChanged(const QString&); public Q_SLOTS: void setValue(const QString&, const QVariant&); diff --git a/libsearch/libsearch.pro b/libsearch/libsearch.pro index fe687c5..d9fdb8e 100644 --- a/libsearch/libsearch.pro +++ b/libsearch/libsearch.pro @@ -40,9 +40,11 @@ include(websearch/websearch.pri) include(searchinterface/search-interface.pri) include(dirwatcher/dirwatcher.pri) include(mailsearch/mailsearch.pri) +include(search-app-widget-plugin/search-app-widget-plugin.pri) LIBS += -L$$OUT_PWD/../libchinese-segmentation/ -lchinese-segmentation LIBS += -lxapian -luchardet -lQt5Xdg -lquazip5 -ltesseract #-L/usr/local/lib/libjemalloc -ljemalloc +LIBS += -lukui-appwidget-manager -lukui-appwidget-provider SOURCES += \ file-utils.cpp \ @@ -62,6 +64,7 @@ HEADERS += \ RESOURCES += \ resource1.qrc \ + search-app-widget-plugin/provider/src.qrc TRANSLATIONS += \ ../translations/libukui-search/libukui-search_zh_CN.ts \ @@ -70,7 +73,22 @@ TRANSLATIONS += \ qm_files.path = /usr/share/ukui-search/translations/ qm_files.files = $$OUT_PWD/.qm/*.qm -INSTALLS += qm_files +qml.files += search-app-widget-plugin/provider/data/search.qml +qml.path = /usr/share/appwidget/qml/ + +appwidgetconf.files += search-app-widget-plugin/provider/data/search.conf +appwidgetconf.path = /usr/share/appwidget/config/ + +service.files += search-app-widget-plugin/provider/org.ukui.appwidget.provider.search.service +service.path += /usr/share/dbus-1/services/ + +preview.files += search-app-widget-plugin/provider/data/search.png +preview.path = /usr/share/appwidget/search/ + +svg.files += search-app-widget-plugin/provider/data/ukui-search.svg +svg.path = /usr/share/appwidget/search/ + +INSTALLS += target qml qm_files appwidgetconf service preview svg # Default rules for deployment. @@ -88,7 +106,7 @@ unix { INSTALLS += target header.path = /usr/include/ukui-search - header.files += *.h index/*.h appsearch/*.h settingsearch/*.h plugininterface/*.h websearch/*.h \ + header.files += *.h index/*.h appsearch/*.h settingsearch/*.h plugininterface/*.h websearch/*.h search-app-widget-plugin/*.h \ searchinterface/ukui-search-task.h \ appdata/app-info-table.h \ searchinterface/search-controller.h \ diff --git a/libsearch/search-app-widget-plugin/provider/data/search.conf b/libsearch/search-app-widget-plugin/provider/data/search.conf new file mode 100644 index 0000000..71d85e3 --- /dev/null +++ b/libsearch/search-app-widget-plugin/provider/data/search.conf @@ -0,0 +1,12 @@ +[AppWidget] +name = search +providerName = search +previewPath = /usr/share/appwidget/search/search.png +qmlFile = /usr/share/appwidget/qml/search.qml +zoom = false +rightButton = false +repeatPlacement = false +minWidget = 640 +minHeight = 100 +updatePeriodMillis = 0 +describe = ukui-search app widget diff --git a/libsearch/search-app-widget-plugin/provider/data/search.png b/libsearch/search-app-widget-plugin/provider/data/search.png new file mode 100644 index 0000000000000000000000000000000000000000..20e90c5b64333c60d1a6584044816f19ac964cde GIT binary patch literal 12438 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 U1tQkl9RL6T07*qoM6N<$g15$)j{pDw literal 0 HcmV?d00001 diff --git a/libsearch/search-app-widget-plugin/provider/data/search.qml b/libsearch/search-app-widget-plugin/provider/data/search.qml new file mode 100755 index 0000000..17ba20f --- /dev/null +++ b/libsearch/search-app-widget-plugin/provider/data/search.qml @@ -0,0 +1,105 @@ +import QtQuick 2.6 +import QtQuick.Window 2.2 +import QtQuick.Controls 2.5 +import QtQuick.Layouts 1.3 +import QtGraphicalEffects 1.0 +import org.ukui.appwidget 1.0 +import org.ukui.qqc2style.private 1.0 as StylePrivate + +AppWidget { + width: 640 + height: 100 + visible: true + id: window + appname: "search" + username: parent.username + + function parseJson(jsonStr) { + try { + var obj = JSON.parse(jsonStr); + return obj; + } catch(e) { + console.log("json解析失败"); + } + return undefined; + } + + function updateSearchBarColor() { + var data = window.parseJson(window.datevalue); + searchBar.color = Qt.rgba(data.red, data.green, data.blue, data.alpha); + placeholderText.color = data.placeHolderTextColor; + } + + onDatevalueChanged: updateSearchBarColor(); + + Rectangle { + id:searchBar + anchors.centerIn: parent + width:448 + height: 64 + radius: searchBar.height / 2 + + Component.onCompleted: { + window.updateSearchBarColor(); + } + + RowLayout { + id: layout + anchors.fill: parent + spacing: 0 + + Image { + id: image_search + Layout.leftMargin: 16 + Layout.rightMargin: 16 + Layout.preferredWidth: 32; + Layout.preferredHeight: 32; + + Layout.alignment: Qt.AlignVCenter + source: "file:///usr/share/appwidget/search/ukui-search.svg" + } + + Item { + clip: true; + Layout.fillWidth: true + Layout.fillHeight: true; + Layout.rightMargin: 32; + + TextInput { + id: searchtext + anchors.fill: parent; + + Keys.enabled: true + Keys.onEnterPressed: { + window.qmldefineeventchangedsignal("enter", "search", searchtext.text); + searchtext.remove(0, searchtext.length); + } + Keys.onReturnPressed: { + window.qmldefineeventchangedsignal("return", "search", searchtext.text); + searchtext.remove(0, searchtext.length); + } + + focus: true + color: StylePrivate.StyleHelper.windowtextcolorrole + maximumLength: 100 + selectByMouse: true + verticalAlignment: Qt.AlignVCenter + font.pixelSize: 21 + + property string placeholderText: /*qsTr("search")*/"全局搜索" + + Text { + id: placeholderText + text: searchtext.placeholderText + font.pixelSize: 21 + + visible: !searchtext.text + anchors.verticalCenter: parent.verticalCenter + } + } + } + } + } +} + + diff --git a/libsearch/search-app-widget-plugin/provider/data/search.svg b/libsearch/search-app-widget-plugin/provider/data/search.svg new file mode 100644 index 0000000..e931c1d --- /dev/null +++ b/libsearch/search-app-widget-plugin/provider/data/search.svg @@ -0,0 +1,16 @@ + + + ukui-global search-search + + + + + + + + + + + + + \ No newline at end of file diff --git a/libsearch/search-app-widget-plugin/provider/data/ukui-search.svg b/libsearch/search-app-widget-plugin/provider/data/ukui-search.svg new file mode 100644 index 0000000..7a3110a --- /dev/null +++ b/libsearch/search-app-widget-plugin/provider/data/ukui-search.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/libsearch/search-app-widget-plugin/provider/org.ukui.appwidget.provider.search.service b/libsearch/search-app-widget-plugin/provider/org.ukui.appwidget.provider.search.service new file mode 100644 index 0000000..9b4866a --- /dev/null +++ b/libsearch/search-app-widget-plugin/provider/org.ukui.appwidget.provider.search.service @@ -0,0 +1,3 @@ +[D-BUS Service] +Name=org.ukui.appwidget.provider.search +Exec=/usr/bin/ukui-search diff --git a/libsearch/search-app-widget-plugin/provider/src.qrc b/libsearch/search-app-widget-plugin/provider/src.qrc new file mode 100644 index 0000000..52b9d51 --- /dev/null +++ b/libsearch/search-app-widget-plugin/provider/src.qrc @@ -0,0 +1,9 @@ + + + org.ukui.appwidget.provider.search.service + data/search.conf + data/search.qml + data/search.png + data/ukui-search.svg + + diff --git a/libsearch/search-app-widget-plugin/search-app-widget-plugin.pri b/libsearch/search-app-widget-plugin/search-app-widget-plugin.pri new file mode 100644 index 0000000..ebc1685 --- /dev/null +++ b/libsearch/search-app-widget-plugin/search-app-widget-plugin.pri @@ -0,0 +1,6 @@ +INCLUDEPATH += $$PWD + +HEADERS += \ + $$PWD/search.h +SOURCES += \ + $$PWD/search.cpp diff --git a/libsearch/search-app-widget-plugin/search-app-widget-plugin.pro b/libsearch/search-app-widget-plugin/search-app-widget-plugin.pro new file mode 100644 index 0000000..3e1c4f4 --- /dev/null +++ b/libsearch/search-app-widget-plugin/search-app-widget-plugin.pro @@ -0,0 +1,52 @@ +QT += dbus widgets + +TEMPLATE = lib +DEFINES += SEARCHAPPWIDGETPLUGIN_LIBRARY + +CONFIG += c++11 link_pkgconfig + +PKGCONFIG += gsettings-qt + +# The following define makes your compiler emit warnings if you use +# any Qt feature that has been marked deprecated (the exact warnings +# depend on your compiler). Please consult the documentation of the +# deprecated API in order to know how to port your code away from it. +DEFINES += QT_DEPRECATED_WARNINGS + +# You can also make your code fail to compile if it uses deprecated APIs. +# In order to do so, uncomment the following line. +# You can also select to disable deprecated APIs only up to a certain version of Qt. +#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 + +TRANSLATIONS += translations/zh_CN.ts + +SOURCES += \ + search.cpp + +HEADERS += \ + search-app-widget-plugin_global.h \ + search.h + +LIBS += -lukui-appwidget-manager -lukui-appwidget-provider + +# Default rules for deployment. + +qml.files += provider/data/search.qml +qml.path = /usr/share/appwidget/qml/ + +qm_files.files = translations/* $$OUT_PWD/.qm/*.qm +qm_files.path = /usr/share/appwidget/search/translations/ + +appwidgetconf.files += provider/data/search.conf +appwidgetconf.path = /usr/share/appwidget/config/ + +service.files += provider/org.ukui.appwidget.provider.search.service +service.path += /usr/share/dbus-1/services/ + +preview.files += provider/data/search.png +preview.path = /usr/share/appwidget/search/ + +svg.files += provider/data/ukui-search.svg +svg.path = /usr/share/appwidget/search/ + +INSTALLS += target qml qm_files appwidgetconf service preview svg diff --git a/libsearch/search-app-widget-plugin/search-app-widget-plugin_global.h b/libsearch/search-app-widget-plugin/search-app-widget-plugin_global.h new file mode 100644 index 0000000..4c83b89 --- /dev/null +++ b/libsearch/search-app-widget-plugin/search-app-widget-plugin_global.h @@ -0,0 +1,12 @@ +#ifndef SEARCHAPPWIDGETPLUGIN_GLOBAL_H +#define SEARCHAPPWIDGETPLUGIN_GLOBAL_H + +#include + +#if defined(SEARCHAPPWIDGETPLUGIN_LIBRARY) +# define SEARCHAPPWIDGETPLUGIN_EXPORT Q_DECL_EXPORT +#else +# define SEARCHAPPWIDGETPLUGIN_EXPORT Q_DECL_IMPORT +#endif + +#endif // SEARCHAPPWIDGETPLUGIN_GLOBAL_H diff --git a/libsearch/search-app-widget-plugin/search.cpp b/libsearch/search-app-widget-plugin/search.cpp new file mode 100644 index 0000000..9d23e48 --- /dev/null +++ b/libsearch/search-app-widget-plugin/search.cpp @@ -0,0 +1,81 @@ +#include "search.h" + +#include +#include +#include +#include +#include +#include +#include + +#define CONTROL_CENTER_PERSONALISE_GSETTINGS_ID "org.ukui.control-center.personalise" +#define TRANSPARENCY_KEY "transparency" +#define THEME_GSETTINGS_ID "org.ukui.style" +#define STYLE_NAME_KEY "styleName" + +using namespace UkuiSearch; + +AppWidgetPlugin::AppWidgetPlugin(QString providername, QObject *parent) : KAppWidgetProvider(providername, parent) +{ + QTranslator* translator = new QTranslator(this); + if(!translator->load("/usr/share/appwidget/search/translations/" + QLocale::system().name()+ ".qm")) { + qWarning() << "/usr/share/appwidget/search/translations/" + QLocale::system().name() << "load failed"; + } + QApplication::installTranslator(translator); + + m_interface = new QDBusInterface("com.ukui.search.service", + "/", + "org.ukui.search.service"); + + m_manager = new AppWidget::KAppWidgetManager(this); + + connect(GlobalSettings::getInstance(), &GlobalSettings::transparencyChanged, [ & ] { + qDebug() << "transparency changed"; + this->appWidgetUpdate(); + }); + + connect(GlobalSettings::getInstance(), &GlobalSettings::styleChanged, [ & ] { + qDebug() << "style changed"; + this->appWidgetUpdate(); + }); +} + +void AppWidgetPlugin::appWidgetRecevie(const QString &eventname, const QString &widgetname, const QDBusVariant &value) +{ + qDebug() << widgetname << value.variant(); + if (eventname == "enter" or eventname == "return") { + QString keyword = value.variant().toString(); + Q_EMIT this->startSearch(keyword); + } else { + qWarning() << "event:" << eventname << "has no trigger now."; + } +} + +void AppWidgetPlugin::appWidgetUpdate() +{ + QString theme = GlobalSettings::getInstance()->getValue(STYLE_NAME_KEY).toString(); + QJsonObject obj; + if (theme == "ukui-dark") { + obj.insert("red", QJsonValue(0)); + obj.insert("green", QJsonValue(0)); + obj.insert("blue", QJsonValue(0)); + obj.insert("placeHolderTextColor", QJsonValue("#72ffffff")); + } else { + obj.insert("red", QJsonValue(255)); + obj.insert("green", QJsonValue(255)); + obj.insert("blue", QJsonValue(255)); + obj.insert("placeHolderTextColor", QJsonValue("#72000000")); + } + + obj.insert("alpha", QJsonValue(GlobalSettings::getInstance()->getValue(TRANSPARENCY_KEY).toDouble())); + QString jsonData = QString(QJsonDocument(obj).toJson()); + + QDBusVariant variant; + variant.setVariant(jsonData); + +// variant.setVariant(QGuiApplication::palette().color(QPalette::Window).name(QColor::HexArgb)); + if(m_manager) { + m_manager->updateAppWidget("search", variant); + qDebug() <<"==========update style and transparency successful."; + } +} diff --git a/libsearch/search-app-widget-plugin/search.h b/libsearch/search-app-widget-plugin/search.h new file mode 100644 index 0000000..c6d0bdd --- /dev/null +++ b/libsearch/search-app-widget-plugin/search.h @@ -0,0 +1,39 @@ +#ifndef SEARCH_H +#define SEARCH_H + +#include "libsearch_global.h" + +#define signals Q_SIGNALS +#define slots Q_SLOTS + +#include "ukui/kappwidgetprovider.h" +#include "ukui/kappwidgetmanager.h" + +#undef signals +#undef slots + +#include "global-settings.h" +#include + +namespace UkuiSearch { +class LIBSEARCH_EXPORT AppWidgetPlugin : public AppWidget::KAppWidgetProvider + +{ + Q_OBJECT +public: + explicit AppWidgetPlugin(QString providername = "search", QObject *parent = nullptr); + void appWidgetRecevie(const QString &eventname, const QString &widgetname, const QDBusVariant &value); + void appWidgetUpdate(); + +Q_SIGNALS: + void startSearch(QString); + +private: + QDBusInterface* m_interface = nullptr; + AppWidget::KAppWidgetManager* m_manager = nullptr; +}; +} + + + +#endif // SEARCH_H diff --git a/search-ukcc-plugin/translations/bo_CN.ts b/search-ukcc-plugin/translations/bo_CN.ts index 83bbaad..426237f 100644 --- a/search-ukcc-plugin/translations/bo_CN.ts +++ b/search-ukcc-plugin/translations/bo_CN.ts @@ -53,75 +53,74 @@ གཤམ་གྱི་ཡིག་སྣོད་འཚོལ་བཤེར་མི་བྱེད། ཡིག་སྣོད་གསར་སྣོན་དང་གསུབ་འཕྲི་བྱས་ཚེ་ཡིག་ཆའི་དཀར་ཆག་སྒྲིག་འགོད་བྱ་ཐུབ། - Choose folder - བསལ་འདེམས་ཀྱི་དཀར་ཆག། + བསལ་འདེམས་ཀྱི་དཀར་ཆག། - + delete བསུབ་པ། - + Directories དཀར་ཆག - + select blocked folder བཀག་སྡོམ་བྱས་པའི་ཡིག་སྣོད་གདམ་གསེས - + Select བདམས་ཐོན་བྱུང་བ། - + Position: གོ་གནས་ནི། - + FileName: ཡིག་ཆའི་མིང་ནི། - + FileType: ཡིག་ཆའི་རིགས་དབྱིབས་ནི། - + Cancel ཕྱིར་འཐེན། - - - - + + + + Warning ཐ་ཚིག་སྒྲོག་པ། - + Add blocked folder failed, choosen path is empty! སྦྱོར་རྟ་ལྐོག་བཀོད་མིང་ཐོ་ཕམ་ཁ་བསལ་འདེམས་ཀྱི་ཐབས་ལམ་སྟོང་བ་རེད། - + Add blocked folder failed, it is not in home path! སྦྱོར་རྟ་ལྐོག་བཀོད་མིང་ཐོ་ཕམ་ཁ་བསལ་འདེམས་ཀྱི་དཀར་ཆག་མི་ཁྱིམ་དཀར་ཆག་འོག། - + Add blocked folder failed, its parent dir is exist! སྦྱོར་རྟ་ལྐོག་བཀོད་མིང་ཐོ་ཕམ་ཁ་བསལ་འདེམས་ཀྱི་དཀར་ཆག་ནི་ལྐོག་བཀོད་མིང་ཐོ་འི་ཁྲོད་ཀྱི་དཀར་ཆག་འོག - + Add blocked folder failed, it has been already blocked! སྦྱོར་རྟ་ལྐོག་བཀོད་མིང་ཐོ་ཕམ་ཁ་བསལ་འདེམས་ཀྱི་དཀར་ཆག་ནི་ལྐོག་བཀོད་མིང་ཐོ་འི་ཁྲོད་ཀྱི་དཀར་ཆག་འོག diff --git a/search-ukcc-plugin/translations/zh_CN.ts b/search-ukcc-plugin/translations/zh_CN.ts index 46235f6..6f66061 100644 --- a/search-ukcc-plugin/translations/zh_CN.ts +++ b/search-ukcc-plugin/translations/zh_CN.ts @@ -53,75 +53,74 @@ 搜索将不查看以下文件夹,通过添加和删除可以设置排除的文件夹位置 - Choose folder - 添加 + 添加 - + delete 删除 - + Directories 文件夹 - + select blocked folder 选择排除的文件夹 - + Select 选择 - + Position: 位置 - + FileName: 文件名 - + FileType: 类型 - + Cancel 取消 - - - - + + + + Warning 警告 - + Add blocked folder failed, choosen path is empty! 添加失败,选择的路径为空! - + Add blocked folder failed, it is not in home path! 添加失败,添加的路径不在家目录下! - + Add blocked folder failed, its parent dir is exist! 添加失败,父目录已被添加! - + Add blocked folder failed, it has been already blocked! 添加失败,这个文件夹已经被添加过了! diff --git a/translations/libukui-search/libukui-search_bo_CN.ts b/translations/libukui-search/libukui-search_bo_CN.ts index 6f2b776..c7664d0 100644 --- a/translations/libukui-search/libukui-search_bo_CN.ts +++ b/translations/libukui-search/libukui-search_bo_CN.ts @@ -9,7 +9,7 @@ ནང་དོན་གྱི་སྟོན་གྲངས་ཆ་མི་ཚང་བ། - + Warning, Can not find home path. ཁྱིམ་གྱི་དཀར་ཆག་རྙེད་ཐབས་མེད། @@ -17,49 +17,66 @@ UkuiSearch::AppMatch - Application Description: - ཉེར་སྤྱོད་གོ་རིམ་གྱི་གསལ་བཤད། + ཉེར་སྤྱོད་གོ་རིམ་གྱི་གསལ་བཤད། UkuiSearch::AppSearchPlugin - + Open སྒོ་ཕྱེ་བ། - + Add Shortcut to Desktop ཅོག་ངོས་སུ་མྱུར་འཐེབ་སྣོན་པ། - + Add Shortcut to Panel ལས་འགན་གྱི་སྒྲོམ་ཐོག་མགྱོགས་མྱུར་གྱི་བྱེད་ཐབས་གསར་སྣོན་བྱ་དགོས - + Install སྒྲིག་སྦྱོར་བྱེད་པ - - + + Application Description: + ཉེར་སྤྱོད་གོ་རིམ་གྱི་གསལ་བཤད། + + + + Applications Search ཉེར་སྤྱོད་གོ་རིམ་འཚོལ་བཤེར། - + Application ཉེར་སྤྱོད་བྱ་རིམ། + + UkuiSearch::AppSearchTask + + + Application + ཉེར་སྤྱོད་བྱ་རིམ། + + + + Application search. + + + UkuiSearch::DirSearchPlugin @@ -338,14 +355,14 @@ UkuiSearch::SearchTaskPluginManager - - + + plugin type: %1, is disabled! ནུས་པ་སྒོ་བརྒྱབ་ཡོད། - - + + plugin type: %1, is not registered! ནུས་པ་ཐོ་འགོད་བྱས་མེད་པ། @@ -374,6 +391,14 @@ སྒྲིག་བཀོད། + + UkuiSearch::UkuiSearchTaskPrivate + + + Current task uuid error or an unregistered plugin is used! + + + UkuiSearch::WebSearchPlugin @@ -389,4 +414,12 @@ དྲ་ངོས། + + search + + + search + + + diff --git a/translations/libukui-search/libukui-search_zh_CN.ts b/translations/libukui-search/libukui-search_zh_CN.ts index 60b1a15..c7ca100 100644 --- a/translations/libukui-search/libukui-search_zh_CN.ts +++ b/translations/libukui-search/libukui-search_zh_CN.ts @@ -9,7 +9,7 @@ - + Warning, Can not find home path. @@ -17,9 +17,8 @@ UkuiSearch::AppMatch - Application Description: - 应用描述: + 应用描述: @@ -33,53 +32,56 @@ UkuiSearch::AppSearchPlugin - + Open 打开 - + Add Shortcut to Desktop 添加到桌面快捷方式 - + Add Shortcut to Panel 添加到任务栏快捷方式 - + Install 安装 - - + + Applications Search 应用 - + Application 应用 + Application Description: - 应用描述: + 应用描述: UkuiSearch::AppSearchTask + Application - 应用 + 应用 + Application search. - 应用搜索 + 应用搜索 @@ -373,14 +375,14 @@ UkuiSearch::SearchTaskPluginManager - - + + plugin type: %1, is disabled! - - + + plugin type: %1, is not registered! @@ -409,6 +411,14 @@ 设置项 + + UkuiSearch::UkuiSearchTaskPrivate + + + Current task uuid error or an unregistered plugin is used! + + + UkuiSearch::WebSearchPlugin @@ -424,4 +434,13 @@ 网页 + + search + + + search + 全局搜索 + 全局搜索 + +