forked from openkylin/ukui-search
commit
ae44103f19
|
@ -54,25 +54,31 @@ AppMatch::~AppMatch(){
|
|||
}
|
||||
}
|
||||
|
||||
QStringList AppMatch::startMatchApp(QString input){
|
||||
input.replace(" ","");
|
||||
m_sourceText=input;
|
||||
m_softWareCenterMap.clear();
|
||||
m_matchInstallAppMap.clear();
|
||||
m_returnResult1.clear();
|
||||
if(input.isEmpty()){
|
||||
return m_returnResult;
|
||||
}
|
||||
softWareCenterSearch();
|
||||
getAppName();
|
||||
returnAppMap();
|
||||
m_returnResult1=m_midResult;
|
||||
m_midResult.clear();
|
||||
qWarning()<<"m_returnResult :"<<m_returnResult1;
|
||||
return m_returnResult;
|
||||
}
|
||||
//QStringList AppMatch::startMatchApp(QString input){
|
||||
// input.replace(" ","");
|
||||
// m_sourceText=input;
|
||||
// m_softWareCenterMap.clear();
|
||||
// m_matchInstallAppMap.clear();
|
||||
// m_returnResult1.clear();
|
||||
// if(input.isEmpty()){
|
||||
// return m_returnResult;
|
||||
// }
|
||||
// softWareCenterSearch();
|
||||
// getAppName();
|
||||
// returnAppMap();
|
||||
// m_returnResult1=m_midResult;
|
||||
// m_midResult.clear();
|
||||
// qWarning()<<"m_returnResult :"<<m_returnResult1;
|
||||
// return m_returnResult;
|
||||
//}
|
||||
|
||||
QMap<QString,QList<QString>> AppMatch::startMatchApp(QString input,int i){
|
||||
/**
|
||||
* @brief AppMatch::startMatchApp 查询应用,含所有已安装与未安装
|
||||
* @param input 关键词
|
||||
* @param i
|
||||
* @return QMap<QString,QList<QString>> QMap<应用名,{.desktop(未安装为空),图标(安装的是名字,未安装是路径)}>
|
||||
*/
|
||||
QMap<QString,QList<QString>> AppMatch::startMatchApp(QString input){
|
||||
input.replace(" ","");
|
||||
m_sourceText=input;
|
||||
m_softWareCenterMap.clear();
|
||||
|
|
|
@ -35,8 +35,8 @@ class AppMatch : public QObject
|
|||
public:
|
||||
explicit AppMatch(QObject *parent = nullptr);
|
||||
~AppMatch();
|
||||
QStringList startMatchApp(QString input);
|
||||
QMap<QString,QList<QString>> startMatchApp(QString input,int i);
|
||||
// QStringList startMatchApp(QString input);
|
||||
QMap<QString,QList<QString>> startMatchApp(QString input);
|
||||
|
||||
private:
|
||||
void getAllDesktopFilePath(QString path);
|
||||
|
|
|
@ -248,7 +248,7 @@ void ContentWidget::setupConnect(SearchListView * listview) {
|
|||
} else if (type == SearchItem::SearchType::Best && !m_bestContent.isEmpty() && listview->currentIndex().row() == listview->getLength() - 1) {
|
||||
m_detailView->setContent(m_bestContent, m_keyword);
|
||||
m_detailView->isContent = true;
|
||||
m_detailView->setupWidget(type == SearchItem::SearchType::Contents, path);
|
||||
m_detailView->setupWidget(SearchItem::SearchType::Contents, path);
|
||||
listview->is_current_list = true;
|
||||
Q_EMIT this->currentItemChanged();
|
||||
listview->is_current_list = false;
|
||||
|
@ -258,6 +258,15 @@ void ContentWidget::setupConnect(SearchListView * listview) {
|
|||
}
|
||||
if (type == SearchItem::SearchType::Web) {
|
||||
m_detailView->setWebWidget(this->m_keyword);
|
||||
} else if (type == SearchItem::SearchType::Apps) {
|
||||
int index = listview->currentIndex().row();
|
||||
m_detailView->setAppWidget(m_appList.at(index), m_appPathList.at(index), m_appIconList.at(index));
|
||||
} else if (type == SearchItem::SearchType::Best) {
|
||||
if (m_bestList.at(listview->currentIndex().row()).first == SearchItem::SearchType::Apps) {
|
||||
m_detailView->setAppWidget(m_appList.at(0), m_appPathList.at(0), m_appIconList.at(0));
|
||||
} else {
|
||||
m_detailView->setupWidget(m_bestList.at(listview->currentIndex().row()).first, m_bestList.at(listview->currentIndex().row()).second);
|
||||
}
|
||||
} else {
|
||||
m_detailView->setupWidget(type, path);
|
||||
}
|
||||
|
@ -326,6 +335,13 @@ void ContentWidget::resetListHeight()
|
|||
m_resultList->setFixedHeight(height);
|
||||
}
|
||||
|
||||
void ContentWidget::appendBestItem(const int &type, const QString &path)
|
||||
{
|
||||
m_bestList.append(QPair<int, QString>(type, path));
|
||||
m_bestListView->appendBestItem(QPair<int, QString>(type, path));
|
||||
appendSearchItem(SearchItem::SearchType::Best, path);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ContentWidget::initHomePage 向homepage填充内容
|
||||
* @param lists 三个列表:常用,最近,快捷
|
||||
|
@ -416,10 +432,10 @@ int ContentWidget::currentPage() {
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief ContentWidget::refreshSearchList 刷新/构建搜索结果列表
|
||||
* @param lists 获取到的应用与设置结果列表,list.at(0)是应用, list.at(1)是设置
|
||||
* @brief ContentWidget::resetSearchList 在构建新的搜索结果列表前,先重置所有控件
|
||||
*/
|
||||
void ContentWidget::refreshSearchList(const QVector<QStringList>& lists) {
|
||||
void ContentWidget::resetSearchList()
|
||||
{
|
||||
this->hideListView();
|
||||
if (m_fileListView) {
|
||||
m_fileListView->hide();
|
||||
|
@ -480,6 +496,7 @@ void ContentWidget::refreshSearchList(const QVector<QStringList>& lists) {
|
|||
m_fileShowMoreLabel->resetLabel();
|
||||
m_contentShowMoreLabel->resetLabel();
|
||||
|
||||
m_bestList.clear();
|
||||
if (! m_appList.isEmpty())
|
||||
m_appList.clear();
|
||||
if (! m_settingList.isEmpty())
|
||||
|
@ -490,34 +507,62 @@ void ContentWidget::refreshSearchList(const QVector<QStringList>& lists) {
|
|||
m_fileList.clear();
|
||||
if (! m_contentList.isEmpty())
|
||||
m_contentList.clear();
|
||||
if (! m_appPathList.isEmpty())
|
||||
m_appPathList.clear();
|
||||
if (! m_appIconList.isEmpty())
|
||||
m_appIconList.clear();
|
||||
}
|
||||
|
||||
if (!lists.at(0).isEmpty()) {
|
||||
m_appList = lists.at(0);
|
||||
qDebug()<<"Append a best item into list: "<<lists.at(0).at(0);
|
||||
appendSearchItem(SearchItem::SearchType::Best, lists.at(0).at(0));
|
||||
m_appListView->show();
|
||||
m_appTitleLabel->show();
|
||||
m_appListView->isHidden = false;
|
||||
if (m_appList.length() <= 5) {
|
||||
m_appListView->setList(m_appList);
|
||||
} else {
|
||||
m_appShowMoreLabel->show();
|
||||
m_appListView->setList(m_appList.mid(0, 5));
|
||||
}
|
||||
/**
|
||||
* @brief ContentWidget::setSettingList 插入设置项搜索结果列表
|
||||
* @param settingList
|
||||
*/
|
||||
void ContentWidget::setSettingList(const QStringList & settingList)
|
||||
{
|
||||
if (settingList.isEmpty())
|
||||
return;
|
||||
m_settingList = settingList;
|
||||
qDebug()<<"Append a best item into list: "<<settingList.at(0);
|
||||
this->appendBestItem(SearchItem::SearchType::Settings, settingList.at(0));
|
||||
m_settingListView->show();
|
||||
m_settingTitleLabel->show();
|
||||
m_settingListView->isHidden = false;
|
||||
if (m_settingList.length() <= 5) {
|
||||
m_settingListView->setList(m_settingList);
|
||||
} else {
|
||||
m_settingShowMoreLabel->show();
|
||||
m_settingListView->setList(m_settingList.mid(0, 5));
|
||||
}
|
||||
if (!lists.at(1).isEmpty()) {
|
||||
m_settingList = lists.at(1);
|
||||
qDebug()<<"Append a best item into list: "<<lists.at(1).at(0);
|
||||
appendSearchItem(SearchItem::SearchType::Best, lists.at(1).at(0));
|
||||
m_settingListView->show();
|
||||
m_settingTitleLabel->show();
|
||||
m_settingListView->isHidden = false;
|
||||
if (m_settingList.length() <= 5) {
|
||||
m_settingListView->setList(m_settingList);
|
||||
} else {
|
||||
m_settingShowMoreLabel->show();
|
||||
m_settingListView->setList(m_settingList.mid(0, 5));
|
||||
}
|
||||
this->resetListHeight();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief ContentWidget::setAppList 插入应用搜索结果
|
||||
* @param appList QVector<namelist,pathlist,iconlist>
|
||||
*/
|
||||
void ContentWidget::setAppList(const QVector<QStringList>& appList) {
|
||||
if (appList.at(0).isEmpty())
|
||||
return;
|
||||
m_appList = appList.at(0);
|
||||
m_appPathList = appList.at(1);
|
||||
m_appIconList = appList.at(2);
|
||||
m_appListView->setAppList(m_appPathList, m_appIconList);
|
||||
qDebug()<<"Append a best item into list: "<<appList.at(0).at(0);
|
||||
SearchItemModel * model = qobject_cast<SearchItemModel *>(m_bestListView->model());
|
||||
if (appList.at(1).at(0).isEmpty() || appList.at(1).at(0) == "") {
|
||||
model->setBestAppIcon(appList.at(2).at(0), false);
|
||||
} else {
|
||||
model->setBestAppIcon(appList.at(2).at(0), true);
|
||||
}
|
||||
this->appendBestItem(SearchItem::SearchType::Apps, appList.at(0).at(0));
|
||||
m_appListView->show();
|
||||
m_appTitleLabel->show();
|
||||
m_appListView->isHidden = false;
|
||||
if (m_appList.length() <= 5) {
|
||||
m_appListView->setList(m_appList);
|
||||
} else {
|
||||
m_appShowMoreLabel->show();
|
||||
m_appListView->setList(m_appList.mid(0, 5));
|
||||
}
|
||||
this->resetListHeight();
|
||||
}
|
||||
|
@ -542,40 +587,12 @@ void ContentWidget::appendSearchItem(const int& type, const QString& path, QStri
|
|||
}
|
||||
break;
|
||||
}
|
||||
// case SearchItem::SearchType::Apps: {
|
||||
// if (m_appListView->isHidden) {
|
||||
// m_appListView->show();
|
||||
// m_appTitleLabel->show();
|
||||
// m_appListView->isHidden = false;
|
||||
// if (!m_detailView->isEmpty() && m_detailView->getType() > type) {
|
||||
// m_appListView->setCurrentIndex(m_appListView->model()->index(0, 0, QModelIndex()));
|
||||
// }
|
||||
// }
|
||||
// m_appListView->appendItem(path);
|
||||
// currentList = m_appListView;
|
||||
|
||||
// this->resetListHeight();
|
||||
// break;
|
||||
// }
|
||||
// case SearchItem::SearchType::Settings: {
|
||||
// if (m_settingListView->isHidden) {
|
||||
// m_settingListView->show();
|
||||
// m_settingTitleLabel->show();
|
||||
// m_settingListView->isHidden = false;
|
||||
// if (!m_detailView->isEmpty() && m_detailView->getType() > type) {
|
||||
// m_settingListView->setCurrentIndex(m_settingListView->model()->index(0, 0, QModelIndex()));
|
||||
// }
|
||||
// }
|
||||
// m_settingListView->appendItem(path);
|
||||
// currentList = m_settingListView;
|
||||
// break;
|
||||
// }
|
||||
case SearchItem::SearchType::Files: {
|
||||
if (m_fileListView->isHidden) {
|
||||
m_fileListView->show();
|
||||
m_fileTitleLabel->show();
|
||||
m_fileListView->isHidden = false;
|
||||
appendSearchItem(SearchItem::SearchType::Best, path);
|
||||
this->appendBestItem(SearchItem::SearchType::Files, path);
|
||||
}
|
||||
if (m_fileListView->getLength() < 5) { //当已搜索结果列表少于5项,直接将搜索结果添加到列表中
|
||||
m_fileListView->appendItem(path);
|
||||
|
@ -592,7 +609,7 @@ void ContentWidget::appendSearchItem(const int& type, const QString& path, QStri
|
|||
m_dirListView->show();
|
||||
m_dirTitleLabel->show();
|
||||
m_dirListView->isHidden = false;
|
||||
appendSearchItem(SearchItem::SearchType::Best, path);
|
||||
this->appendBestItem(SearchItem::SearchType::Dirs, path);
|
||||
}
|
||||
if (m_dirListView->getLength() < 5) {
|
||||
m_dirListView->appendItem(path);
|
||||
|
@ -615,7 +632,7 @@ void ContentWidget::appendSearchItem(const int& type, const QString& path, QStri
|
|||
m_bestContent.append("\n");
|
||||
}
|
||||
}
|
||||
appendSearchItem(SearchItem::SearchType::Best, path);
|
||||
this->appendBestItem(SearchItem::SearchType::Contents, path);
|
||||
}
|
||||
if (m_contentListView->getLength() < 5) {
|
||||
m_contentListView->appendItem(path);
|
||||
|
|
|
@ -39,7 +39,9 @@ public:
|
|||
|
||||
void setPage(const int&);
|
||||
int currentPage();
|
||||
void refreshSearchList(const QVector<QStringList>&);
|
||||
void resetSearchList();
|
||||
void setSettingList(const QStringList&);
|
||||
void setAppList(const QVector<QStringList>&);
|
||||
void appendSearchItem(const int& type, const QString& path, QStringList contents = QStringList());
|
||||
void initHomePage();
|
||||
void setContentList(const QStringList&);
|
||||
|
@ -53,6 +55,7 @@ private:
|
|||
void setupConnect(SearchListView *);
|
||||
void clearHomepage();
|
||||
void resetListHeight();
|
||||
void appendBestItem(const int&, const QString&);
|
||||
QString m_keyword;
|
||||
QStringList m_contentDetailList;
|
||||
QWidget * m_homePage = nullptr;
|
||||
|
@ -93,6 +96,9 @@ private:
|
|||
QStringList m_fileList;
|
||||
QStringList m_contentList;
|
||||
QStringList m_quicklyOpenList;
|
||||
QStringList m_appPathList;
|
||||
QStringList m_appIconList;
|
||||
QList<QPair<int, QString>> m_bestList;
|
||||
|
||||
QString m_bestContent; //最佳匹配有文件内容搜索结果的时候,以此变量传递
|
||||
|
||||
|
|
|
@ -121,17 +121,10 @@ void HomePageItem::setupUi(const int& type, const QString& path) {
|
|||
m_hlayout->addStretch();
|
||||
return;
|
||||
} else if (type == ItemType::Quick) {
|
||||
if (SearchListView::getResType(path) == SearchListView::ResType::Setting) {
|
||||
QIcon icon = FileUtils::getSettingIcon(path, true);
|
||||
m_iconlabel->setPixmap(icon.pixmap(icon.actualSize(QSize(48, 48))));
|
||||
m_namelabel->setText(FileUtils::getSettingName(path));
|
||||
this->setToolTip(FileUtils::getSettingName(path));
|
||||
} else {
|
||||
QIcon icon = FileUtils::getAppIcon(path);
|
||||
m_iconlabel->setPixmap(icon.pixmap(icon.actualSize(QSize(48, 48))));
|
||||
m_namelabel->setText(FileUtils::getAppName(path));
|
||||
this->setToolTip(FileUtils::getAppName(path));
|
||||
}
|
||||
} else {
|
||||
QIcon icon = FileUtils::getAppIcon(path);
|
||||
m_iconlabel->setPixmap(icon.pixmap(icon.actualSize(QSize(48, 48))));
|
||||
|
|
|
@ -53,17 +53,22 @@ OptionView::~OptionView()
|
|||
delete m_copyPathLabel;
|
||||
m_copyPathLabel = NULL;
|
||||
}
|
||||
if (m_installLabel) {
|
||||
delete m_installLabel;
|
||||
m_installLabel = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief OptionView::initComponent 构建可用选项表
|
||||
* @param type 详情页类型
|
||||
* @param is_appInstalled 如果是应用详情页,应用是否已安装
|
||||
*/
|
||||
void OptionView::setupOptions(const int& type) {
|
||||
void OptionView::setupOptions(const int& type, bool is_appInstalled) {
|
||||
this->hideOptions();
|
||||
switch (type) {
|
||||
case SearchListView::ResType::App : {
|
||||
setupAppOptions();
|
||||
setupAppOptions(is_appInstalled);
|
||||
break;
|
||||
}
|
||||
case SearchListView::ResType::Content:
|
||||
|
@ -127,6 +132,13 @@ void OptionView::initUI()
|
|||
m_copyPathLabel->installEventFilter(this);
|
||||
m_optionLyt->addWidget(m_copyPathLabel);
|
||||
|
||||
m_installLabel = new QLabel(m_optionFrame);
|
||||
m_installLabel->setText(tr("Install")); //复制所在路径
|
||||
m_installLabel->setStyleSheet("QLabel{font-size: 14px; color: #3790FA}");
|
||||
m_installLabel->setCursor(QCursor(Qt::PointingHandCursor));
|
||||
m_installLabel->installEventFilter(this);
|
||||
m_optionLyt->addWidget(m_installLabel);
|
||||
|
||||
m_optionLyt->addStretch();
|
||||
m_optionFrame->setLayout(m_optionLyt);
|
||||
m_mainLyt->addWidget(m_optionFrame);
|
||||
|
@ -159,6 +171,10 @@ void OptionView::setupOptionLabel(const int& opt) {
|
|||
m_copyPathLabel->show();
|
||||
break;
|
||||
}
|
||||
case Options::Install: {
|
||||
m_installLabel->show();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -171,15 +187,21 @@ void OptionView::hideOptions()
|
|||
m_panelLabel->hide();
|
||||
m_openPathLabel->hide();
|
||||
m_copyPathLabel->hide();
|
||||
m_installLabel->hide();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief OptionView::setupAppOptions 为应用类型的详情页构建选项表
|
||||
* @param is_installed 应用是否已安装
|
||||
*/
|
||||
void OptionView::setupAppOptions() {
|
||||
setupOptionLabel(Options::Open);
|
||||
setupOptionLabel(Options::Shortcut);
|
||||
setupOptionLabel(Options::Panel);
|
||||
void OptionView::setupAppOptions(bool is_installed) {
|
||||
if (is_installed) {
|
||||
setupOptionLabel(Options::Open);
|
||||
setupOptionLabel(Options::Shortcut);
|
||||
setupOptionLabel(Options::Panel);
|
||||
} else {
|
||||
setupOptionLabel(Options::Install);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -289,6 +311,21 @@ bool OptionView::eventFilter(QObject *watched, QEvent *event){
|
|||
m_copyPathLabel->setStyleSheet("QLabel{font-size: 14px; color: #3790FA}");
|
||||
return true;
|
||||
}
|
||||
} else if (m_installLabel && watched == m_installLabel) {
|
||||
if (event->type() == QEvent::MouseButtonPress) {
|
||||
m_installLabel->setStyleSheet("QLabel{font-size: 14px; color: #296CD9;}");
|
||||
return true;
|
||||
} else if (event->type() == QEvent::MouseButtonRelease) {
|
||||
m_installLabel->setStyleSheet("QLabel{font-size: 14px; color: #3790FA}");
|
||||
Q_EMIT this->onOptionClicked(Options::Install);
|
||||
return true;
|
||||
} else if (event->type() == QEvent::Enter) {
|
||||
m_installLabel->setStyleSheet("QLabel{font-size: 14px; color: #40A9FB;}");
|
||||
return true;
|
||||
} else if (event->type() == QEvent::Leave) {
|
||||
m_installLabel->setStyleSheet("QLabel{font-size: 14px; color: #3790FA}");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return QObject::eventFilter(watched, event);
|
||||
}
|
||||
|
|
|
@ -34,14 +34,15 @@ class OptionView : public QWidget
|
|||
public:
|
||||
explicit OptionView(QWidget *);
|
||||
~OptionView();
|
||||
void setupOptions(const int&);
|
||||
void setupOptions(const int&, bool is_appInstalled = true);
|
||||
|
||||
enum Options {
|
||||
Open,
|
||||
Shortcut,
|
||||
Panel,
|
||||
OpenPath,
|
||||
CopyPath
|
||||
CopyPath,
|
||||
Install
|
||||
};
|
||||
|
||||
protected:
|
||||
|
@ -49,7 +50,7 @@ protected:
|
|||
|
||||
private:
|
||||
void initUI();
|
||||
void setupAppOptions();
|
||||
void setupAppOptions(bool);
|
||||
void setupFileOptions();
|
||||
void setupDirOptions();
|
||||
void setupSettingOptions();
|
||||
|
@ -66,6 +67,7 @@ private:
|
|||
QLabel * m_panelLabel = nullptr;
|
||||
QLabel * m_openPathLabel = nullptr;
|
||||
QLabel * m_copyPathLabel = nullptr;
|
||||
QLabel * m_installLabel = nullptr;
|
||||
|
||||
Q_SIGNALS:
|
||||
void onOptionClicked(const int&);
|
||||
|
|
|
@ -77,7 +77,10 @@ void SearchDetailView::clearLayout() {
|
|||
m_hLine_2->hide();
|
||||
m_optionView->hide();
|
||||
m_isEmpty = true;
|
||||
closeWebWidget();
|
||||
// closeWebWidget();
|
||||
if (m_webView) {
|
||||
m_webView->hide();
|
||||
}
|
||||
// m_reload = false;
|
||||
}
|
||||
|
||||
|
@ -118,27 +121,37 @@ void SearchDetailView::setWebWidget(const QString& keyword)
|
|||
clearLayout();
|
||||
m_isEmpty = false;
|
||||
m_reload = false;
|
||||
m_webView = new QWebEngineView(this);
|
||||
if (m_webView) {
|
||||
if (QString::compare(keyword, m_currentKeyword) == 0) { //关键词没有发生变化,只把原来的网页show出来
|
||||
m_webView->show();
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
m_webView = new QWebEngineView(this);
|
||||
m_webView->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
|
||||
m_webView->setAttribute(Qt::WA_DeleteOnClose);
|
||||
m_webView->move(0, 0);
|
||||
m_webView->setFixedSize(360, 522);
|
||||
|
||||
connect(m_webView,&QWebEngineView::loadFinished, this, [ = ](){
|
||||
m_reload = true;
|
||||
});
|
||||
connect(m_webView, &QWebEngineView::urlChanged, this, [ = ](const QUrl& url) {
|
||||
if (m_reload) {
|
||||
closeWebWidget();
|
||||
QDesktopServices::openUrl(url);
|
||||
}
|
||||
});
|
||||
}
|
||||
//如果使用非手机版百度跳转,请使用RequestInterceptor类
|
||||
// RequestInterceptor * interceptor = new RequestInterceptor(m_webView);
|
||||
// QWebEngineProfile * profile = new QWebEngineProfile(m_webView);
|
||||
// profile->setRequestInterceptor(interceptor);
|
||||
// QWebEnginePage * page = new QWebEnginePage(profile, m_webView);
|
||||
// m_webView->setPage(page);
|
||||
m_webView->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
|
||||
m_webView->setAttribute(Qt::WA_DeleteOnClose);
|
||||
m_webView->move(0, 0);
|
||||
m_webView->setFixedSize(360, 522);
|
||||
|
||||
connect(m_webView,&QWebEngineView::loadFinished, this, [ = ](){
|
||||
m_reload = true;
|
||||
});
|
||||
connect(m_webView, &QWebEngineView::urlChanged, this, [ = ](const QUrl& url) {
|
||||
if (m_reload) {
|
||||
closeWebWidget();
|
||||
QDesktopServices::openUrl(url);
|
||||
}
|
||||
});
|
||||
//新打开网页搜索或关键词发生变化,重新load
|
||||
m_currentKeyword = keyword;//目前网页搜索的关键词,记录此词来判断网页是否需要刷新
|
||||
QString address;
|
||||
QString engine = GlobalSettings::getInstance()->getValue(WEB_ENGINE).toString();
|
||||
if (!engine.isEmpty()) {
|
||||
|
@ -160,6 +173,43 @@ void SearchDetailView::setWebWidget(const QString& keyword)
|
|||
m_webView->show();
|
||||
}
|
||||
|
||||
void SearchDetailView::setAppWidget(const QString &appname, const QString &path, const QString &iconpath)
|
||||
{
|
||||
m_type = SearchListView::ResType::App;
|
||||
m_path = path;
|
||||
m_name = appname;
|
||||
m_isEmpty = false;
|
||||
clearLayout();
|
||||
m_iconLabel->show();
|
||||
m_nameFrame->show();
|
||||
m_nameLabel->show();
|
||||
m_typeLabel->show();
|
||||
m_hLine->show();
|
||||
|
||||
QIcon icon;
|
||||
if (path.isEmpty() || path == "") {
|
||||
icon = QIcon(iconpath);
|
||||
m_optionView->setupOptions(m_type, false);
|
||||
} else {
|
||||
m_optionView->setupOptions(m_type, true);
|
||||
if (QIcon::fromTheme(iconpath).isNull()) {
|
||||
icon = QIcon(":/res/icons/desktop.png");
|
||||
} else {
|
||||
icon = QIcon::fromTheme(iconpath);
|
||||
}
|
||||
}
|
||||
m_optionView->show();
|
||||
|
||||
m_iconLabel->setPixmap(icon.pixmap(icon.actualSize(QSize(96, 96))));
|
||||
QFontMetrics fontMetrics = m_nameLabel->fontMetrics();
|
||||
QString showname = fontMetrics.elidedText(appname, Qt::ElideRight, 215); //当字体长度超过215时显示为省略号
|
||||
m_nameLabel->setText(showname);
|
||||
if (QString::compare(showname, appname)) {
|
||||
m_nameLabel->setToolTip(appname);
|
||||
}
|
||||
m_typeLabel->setText(tr("Application"));
|
||||
}
|
||||
|
||||
void SearchDetailView::closeWebWidget()
|
||||
{
|
||||
if (m_webView) {
|
||||
|
@ -221,7 +271,7 @@ void SearchDetailView::setupWidget(const int& type, const QString& path) {
|
|||
m_hLine->show();
|
||||
|
||||
//文件和文件夹有一个额外的详情区域
|
||||
if (type == SearchListView::ResType::Dir || type == SearchListView::ResType::File || type == SearchListView::ResType::Content || type == SearchListView::ResType::Best) {
|
||||
if (type == SearchListView::ResType::Dir || type == SearchListView::ResType::File || type == SearchListView::ResType::Content) {
|
||||
m_detailFrame->show();
|
||||
if (isContent) { //文件内容区域
|
||||
m_contentLabel->show();
|
||||
|
@ -263,21 +313,7 @@ void SearchDetailView::setupWidget(const int& type, const QString& path) {
|
|||
|
||||
//根据不同类型的搜索结果切换加载图片和名称的方式
|
||||
switch (type) {
|
||||
case SearchListView::ResType::App : {
|
||||
QIcon icon = FileUtils::getAppIcon(path);
|
||||
m_iconLabel->setPixmap(icon.pixmap(icon.actualSize(QSize(96, 96))));
|
||||
QFontMetrics fontMetrics = m_nameLabel->fontMetrics();
|
||||
QString wholeName = FileUtils::getAppName(path);
|
||||
QString name = fontMetrics.elidedText(wholeName, Qt::ElideRight, 215); //当字体长度超过215时显示为省略号
|
||||
m_nameLabel->setText(name);
|
||||
if (QString::compare(name, wholeName)) {
|
||||
m_nameLabel->setToolTip(wholeName);
|
||||
}
|
||||
m_typeLabel->setText(tr("Application"));
|
||||
break;
|
||||
}
|
||||
case SearchListView::ResType::Content:
|
||||
case SearchListView::ResType::Best:
|
||||
case SearchListView::ResType::Dir :
|
||||
case SearchListView::ResType::File : {
|
||||
QIcon icon = FileUtils::getFileIcon(QString("file://%1").arg(path));
|
||||
|
@ -334,6 +370,9 @@ void SearchDetailView::execActions(const int& type, const int& option, const QSt
|
|||
copyPathAction(path);
|
||||
break;
|
||||
}
|
||||
case OptionView::Options::Install: {
|
||||
installAppAction(m_name); //未安装应用点击此选项,不使用路径作为参数,而是使用软件名
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -539,6 +578,18 @@ bool SearchDetailView::copyPathAction(const QString& path) {
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchDetailView::installAppAction 执行打开软件商店操作
|
||||
* @param name
|
||||
* @return
|
||||
*/
|
||||
bool SearchDetailView::installAppAction(const QString & name)
|
||||
{
|
||||
//打开软件商店下载此软件
|
||||
QProcess process;
|
||||
process.startDetached(QString("kylin-software-center -find %1").arg(name));
|
||||
}
|
||||
|
||||
void SearchDetailView::paintEvent(QPaintEvent *event) {
|
||||
Q_UNUSED(event)
|
||||
|
||||
|
|
|
@ -44,6 +44,7 @@ public:
|
|||
int getType();
|
||||
bool isContent = false;
|
||||
void setWebWidget(const QString&);
|
||||
void setAppWidget(const QString &name, const QString &path, const QString &icon);
|
||||
void closeWebWidget();
|
||||
|
||||
protected:
|
||||
|
@ -58,12 +59,14 @@ private:
|
|||
bool addPanelShortcut(const QString&);
|
||||
bool openPathAction(const QString&);
|
||||
bool copyPathAction(const QString&);
|
||||
bool installAppAction(const QString&);
|
||||
QString getHtmlText(const QString&, const QString&);
|
||||
QString escapeHtml(const QString&);
|
||||
bool writeConfigFile(const QString&);
|
||||
bool m_isEmpty = true;
|
||||
int m_type = 0;
|
||||
QString m_path = 0;
|
||||
QString m_name = 0; //目前只有未安装应用在打开软件商店时需要此参数
|
||||
|
||||
void initUI();
|
||||
QLabel * m_iconLabel = nullptr;
|
||||
|
@ -88,6 +91,7 @@ private:
|
|||
|
||||
QWebEngineView * m_webView = nullptr;
|
||||
bool m_reload = false;
|
||||
QString m_currentKeyword;
|
||||
|
||||
Q_SIGNALS:
|
||||
void configFileChanged();
|
||||
|
|
|
@ -47,6 +47,7 @@ SearchListView::SearchListView(QWidget * parent, const QStringList& list, const
|
|||
m_type = type;
|
||||
connect(this->selectionModel(), &QItemSelectionModel::selectionChanged, this, [ = ]() {
|
||||
Q_EMIT this->currentRowChanged(getCurrentType(), m_item->m_pathlist.at(this->currentIndex().row()));
|
||||
m_isSelected = true;
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -78,7 +79,7 @@ void SearchListView::setList(QStringList list)
|
|||
{
|
||||
QModelIndex index = this->currentIndex();
|
||||
m_model->setList(list);
|
||||
if (index.row() >= 0 && index.row() < list.length()) {
|
||||
if (index.row() >= 0 && index.row() < list.length() && m_isSelected) {
|
||||
this->blockSignals(true);
|
||||
this->setCurrentIndex(index);
|
||||
this->blockSignals(false);
|
||||
|
@ -87,6 +88,16 @@ void SearchListView::setList(QStringList list)
|
|||
this->setFixedHeight(m_item->getCurrentSize() * rowheight + 4);
|
||||
}
|
||||
|
||||
void SearchListView::setAppList(const QStringList &pathlist, const QStringList &iconlist)
|
||||
{
|
||||
m_model->setAppList(pathlist, iconlist);
|
||||
}
|
||||
|
||||
void SearchListView::appendBestItem(const QPair<int, QString> &pair)
|
||||
{
|
||||
m_model->appendBestItem(pair);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchListView::removeItem
|
||||
*/
|
||||
|
@ -152,7 +163,8 @@ int SearchListView::getCurrentType() {
|
|||
case SearchItem::SearchType::Web:
|
||||
return ResType::Web;
|
||||
default: //All或者Best的情况,需要自己判断文件类型
|
||||
return getResType(m_item->m_pathlist.at(this->currentIndex().row()));
|
||||
// return getResType(m_item->m_pathlist.at(this->currentIndex().row()));
|
||||
return ResType::Best;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -164,17 +176,12 @@ int SearchListView::getCurrentType() {
|
|||
*/
|
||||
int SearchListView::getResType(const QString& path) {
|
||||
if (path.endsWith(".desktop")) {
|
||||
// qDebug()<<"qDebug: One row selected, its path is "<<path<<". Its type is application.";
|
||||
return SearchListView::ResType::App;
|
||||
} else if (QFileInfo(path).isFile()) {
|
||||
// qDebug()<<"qDebug: One row selected, its path is "<<path<<". Its type is file.";
|
||||
// return SearchListView::ResType::File;
|
||||
return SearchListView::ResType::Best;
|
||||
} else if (QFileInfo(path).isDir()) {
|
||||
// qDebug()<<"qDebug: One row selected, its path is "<<path<<". Its type is dir.";
|
||||
return SearchListView::ResType::Dir;
|
||||
} else {
|
||||
// qDebug()<<"qDebug: One row selected, its path is "<<path<<". Its type is setting.";
|
||||
return SearchListView::ResType::Setting;
|
||||
}
|
||||
}
|
||||
|
@ -184,4 +191,5 @@ int SearchListView::getResType(const QString& path) {
|
|||
*/
|
||||
void SearchListView::clearSelection() {
|
||||
this->selectionModel()->clearSelection();
|
||||
m_isSelected = false;
|
||||
}
|
||||
|
|
|
@ -52,6 +52,8 @@ public:
|
|||
|
||||
void appendItem(QString);
|
||||
void setList(QStringList);
|
||||
void setAppList(const QStringList&, const QStringList&);
|
||||
void appendBestItem(const QPair<int, QString>&);
|
||||
void removeItem(QString);
|
||||
void clear();
|
||||
void setKeyword(QString);
|
||||
|
@ -61,6 +63,7 @@ public:
|
|||
private:
|
||||
SearchItemModel * m_model = nullptr;
|
||||
SearchItem * m_item = nullptr;
|
||||
bool m_isSelected = false;
|
||||
|
||||
HighlightItemDelegate * m_styleDelegate = nullptr;
|
||||
|
||||
|
|
|
@ -96,6 +96,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||
m_search_result_dir = new QQueue<QString>;
|
||||
m_search_result_content = new QQueue<QPair<QString,QStringList>>;
|
||||
m_search_result_thread = new SearchResult(this);
|
||||
m_seach_app_thread = new SearchAppThread(this);
|
||||
// m_search_result_thread->start();
|
||||
connect(m_search_result_thread, &SearchResult::searchResultFile, this, [ = ](QString path) {
|
||||
// qDebug()<<"Append a file into list: "<<path;
|
||||
|
@ -109,6 +110,11 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||
// qDebug()<<"Append a file content into list: "<<pair.first;
|
||||
m_contentFrame->appendSearchItem(SearchItem::SearchType::Contents, pair.first, pair.second);
|
||||
});
|
||||
qRegisterMetaType<QVector<QStringList>>("QVector<QStringList>");
|
||||
connect(m_seach_app_thread, &SearchAppThread::searchResultApp, this, [ = ](const QVector<QStringList>& applist) {
|
||||
qDebug()<<"Append applist: "<<applist;
|
||||
m_contentFrame->setAppList(applist);
|
||||
});
|
||||
|
||||
m_sys_tray_icon = new QSystemTrayIcon(this);
|
||||
m_sys_tray_icon->setIcon(QIcon::fromTheme("system-search-symbolic"));
|
||||
|
@ -219,6 +225,7 @@ void MainWindow::initUi()
|
|||
m_search_result_thread->requestInterruption();
|
||||
m_search_result_thread->quit();
|
||||
}
|
||||
m_seach_app_thread->stop();
|
||||
m_contentFrame->setCurrentIndex(0);
|
||||
} else {
|
||||
m_contentFrame->setCurrentIndex(1);
|
||||
|
@ -291,27 +298,22 @@ void MainWindow::primaryScreenChangedSlot(QScreen *screen)
|
|||
* @brief searchContent 搜索关键字
|
||||
* @param searchcontent
|
||||
*/
|
||||
void MainWindow::searchContent(QString searchcontent){
|
||||
m_app_setting_lists.clear();
|
||||
m_contentFrame->setKeyword(searchcontent);
|
||||
void MainWindow::searchContent(QString keyword){
|
||||
m_contentFrame->setKeyword(keyword);
|
||||
|
||||
// m_search_result_file->clear();
|
||||
// m_search_result_dir->clear();
|
||||
// m_search_result_content->clear();
|
||||
|
||||
AppMatch * appMatchor = new AppMatch(this);
|
||||
//设置搜索
|
||||
SettingsMatch * settingMatchor = new SettingsMatch(this);
|
||||
//应用与设置搜索
|
||||
QStringList appList;
|
||||
appList = appMatchor->startMatchApp(searchcontent);
|
||||
QStringList settingList;
|
||||
settingList = settingMatchor->startMatchApp(searchcontent);
|
||||
m_app_setting_lists.append(appList);
|
||||
m_app_setting_lists.append(settingList);
|
||||
m_contentFrame->refreshSearchList(m_app_setting_lists);
|
||||
settingList = settingMatchor->startMatchApp(keyword);
|
||||
m_contentFrame->resetSearchList();
|
||||
m_contentFrame->setSettingList(settingList);
|
||||
|
||||
//应用搜索
|
||||
m_seach_app_thread->stop();
|
||||
m_seach_app_thread->startSearch(keyword);
|
||||
|
||||
//文件、文件夹、内容搜索
|
||||
this->m_searcher->onKeywordSearch(searchcontent, m_search_result_file, m_search_result_dir, m_search_result_content);
|
||||
this->m_searcher->onKeywordSearch(keyword, m_search_result_file, m_search_result_dir, m_search_result_content);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -385,6 +387,7 @@ bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *r
|
|||
m_contentFrame->closeWebView();
|
||||
m_search_result_thread->requestInterruption();
|
||||
m_search_result_thread->quit();
|
||||
m_seach_app_thread->stop();
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -398,6 +401,7 @@ void MainWindow::keyPressEvent(QKeyEvent *event)
|
|||
m_contentFrame->closeWebView();
|
||||
m_search_result_thread->requestInterruption();
|
||||
m_search_result_thread->quit();
|
||||
m_seach_app_thread->stop();
|
||||
}
|
||||
return QWidget::keyPressEvent(event);
|
||||
}
|
||||
|
|
|
@ -48,6 +48,7 @@
|
|||
#include "index/index-generator.h"
|
||||
#include "settings-widget.h"
|
||||
#include "libsearch.h"
|
||||
#include "search-app-thread.h"
|
||||
|
||||
class SearchResult;
|
||||
class MainWindow : public QMainWindow
|
||||
|
@ -87,13 +88,13 @@ private:
|
|||
QGSettings * m_transparency_gsettings = nullptr;
|
||||
double getTransparentData();
|
||||
|
||||
QVector<QStringList> m_app_setting_lists;
|
||||
QStringList m_dirList;
|
||||
|
||||
QQueue<QString> *m_search_result_file = nullptr;
|
||||
QQueue<QString> *m_search_result_dir = nullptr;
|
||||
QQueue<QPair<QString,QStringList>> *m_search_result_content = nullptr;
|
||||
SearchResult * m_search_result_thread = nullptr;
|
||||
SearchAppThread * m_seach_app_thread = nullptr;
|
||||
|
||||
FileSearcher* m_searcher = nullptr;
|
||||
QSystemTrayIcon *m_sys_tray_icon;
|
||||
|
|
|
@ -145,7 +145,7 @@ void SearchItemModel::appendItem(QString path) {
|
|||
this->beginResetModel();
|
||||
m_item->m_pathlist << path;
|
||||
this->endResetModel();
|
||||
// this->insertRow(rowCount(QModelIndex()) - 1);
|
||||
// this->insertRow(rowCount(QModelIndex()) - 1);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -159,6 +159,23 @@ void SearchItemModel::setList(QStringList list)
|
|||
this->endResetModel();
|
||||
}
|
||||
|
||||
void SearchItemModel::setAppList(const QStringList &pathlist, const QStringList &iconlist)
|
||||
{
|
||||
this->beginResetModel();
|
||||
m_item->m_app_pathlist = pathlist;
|
||||
m_item->m_app_iconlist = iconlist;
|
||||
this->endResetModel();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchItemModel::insertBestItem 向最佳匹配列表添加一项
|
||||
* @param pair <类型,路径或名称>
|
||||
*/
|
||||
void SearchItemModel::appendBestItem(const QPair<int, QString> & pair)
|
||||
{
|
||||
m_item->m_bestList.append(pair);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchItemModel::removeItem
|
||||
*/
|
||||
|
@ -172,3 +189,17 @@ void SearchItemModel::clear()
|
|||
m_item->clear();
|
||||
this->endResetModel();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchItemModel::setBestAppIcon 设置最佳匹配应用的图标
|
||||
* @param str 图标名称或路径,应用安装时为图标名,未安装时为路径
|
||||
* @param is_installed 应用是否已安装
|
||||
*/
|
||||
void SearchItemModel::setBestAppIcon(const QString &str, const bool & is_installed)
|
||||
{
|
||||
if (is_installed) {
|
||||
m_item->m_bestAppIcon = QIcon::fromTheme(str);
|
||||
} else {
|
||||
m_item->m_bestAppIcon = QIcon(str);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,8 +54,11 @@ public:
|
|||
|
||||
void appendItem(QString);
|
||||
void setList(QStringList);
|
||||
void setAppList(const QStringList&, const QStringList&);
|
||||
void appendBestItem(const QPair<int, QString>&);
|
||||
void removeItem(QString);
|
||||
void clear();
|
||||
void setBestAppIcon(const QString &, const bool &);
|
||||
|
||||
private :
|
||||
SearchItem * m_item = nullptr;
|
||||
|
|
|
@ -45,18 +45,23 @@ QIcon SearchItem::getIcon(int index) {
|
|||
case Dirs :
|
||||
case Files : //文件,返回文件图标
|
||||
return FileUtils::getFileIcon(QString("file://%1").arg(m_pathlist.at(index)));
|
||||
case Apps : //应用,返回应用图标
|
||||
return FileUtils::getAppIcon(m_pathlist.at(index));
|
||||
case Best : {//最佳匹配,含全部类型,需要自己判断,返回不同类型的图标
|
||||
// return QIcon(":/res/icons/edit-find-symbolic.svg");
|
||||
if (m_pathlist.at(index).endsWith(".desktop")) {
|
||||
return FileUtils::getAppIcon(m_pathlist.at(index));
|
||||
} else if (QFileInfo(m_pathlist.at(index)).isFile() || QFileInfo(m_pathlist.at(index)).isDir()) {
|
||||
return FileUtils::getFileIcon(QString("file://%1").arg(m_pathlist.at(index)));
|
||||
case Apps : {//应用,返回应用图标
|
||||
// return FileUtils::getAppIcon(m_pathlist.at(index));
|
||||
if (m_app_pathlist.length() > index && m_app_pathlist.at(index) == "") { //未安装,存储的是图标路径
|
||||
return QIcon(m_app_iconlist.at(index));
|
||||
} else if (m_app_pathlist.length() > index) { //已安装,存储的是图标名
|
||||
if (QIcon::fromTheme(m_app_iconlist.at(index)).isNull()) {
|
||||
return QIcon(":/res/icons/desktop.png");
|
||||
} else {
|
||||
return QIcon::fromTheme(m_app_iconlist.at(index));
|
||||
}
|
||||
} else {
|
||||
return FileUtils::getSettingIcon(m_pathlist.at(index), false);
|
||||
return QIcon(":/res/icons/desktop.png");
|
||||
}
|
||||
}
|
||||
case Best : {//最佳匹配,含全部类型,需要自己判断,返回不同类型的图标
|
||||
return getBestIcon(index);
|
||||
}
|
||||
default:
|
||||
return QIcon(":/res/icons/edit-find-symbolic.svg");
|
||||
}
|
||||
|
@ -77,22 +82,66 @@ QString SearchItem::getName(int index) {
|
|||
case Dirs :
|
||||
case Files : //文件,返回文件名
|
||||
return FileUtils::getFileName(m_pathlist.at(index));
|
||||
case Apps : //应用,返回应用名
|
||||
return FileUtils::getAppName(m_pathlist.at(index));
|
||||
case Apps : {//应用,返回应用名
|
||||
return m_pathlist.at(index);
|
||||
}
|
||||
case Best : //最佳匹配,含全部类型,需要自己判断,返回不同类型的名称
|
||||
// return m_pathlist.at(index);
|
||||
if (m_pathlist.at(index).endsWith(".desktop")) {
|
||||
return FileUtils::getAppName(m_pathlist.at(index));
|
||||
} else if (QFileInfo(m_pathlist.at(index)).isFile() || QFileInfo(m_pathlist.at(index)).isDir()) {
|
||||
return FileUtils::getFileName(m_pathlist.at(index));
|
||||
} else {
|
||||
return FileUtils::getSettingName(m_pathlist.at(index));
|
||||
}
|
||||
return getBestName(index);
|
||||
default:
|
||||
return m_pathlist.at(index);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchItem::getBestIcon 获取最佳匹配结果的图标
|
||||
* @param index 索引行
|
||||
* @return
|
||||
*/
|
||||
QIcon SearchItem::getBestIcon(const int &index)
|
||||
{
|
||||
// if (m_pathlist.at(index).endsWith(".desktop")) {
|
||||
// return FileUtils::getAppIcon(m_pathlist.at(index));
|
||||
// } else if (QFileInfo(m_pathlist.at(index)).isFile() || QFileInfo(m_pathlist.at(index)).isDir()) {
|
||||
// return FileUtils::getFileIcon(QString("file://%1").arg(m_pathlist.at(index)));
|
||||
// } else {
|
||||
// return FileUtils::getSettingIcon(m_pathlist.at(index), false);
|
||||
// }
|
||||
if (m_bestList.isEmpty() || !m_bestList.length() > index) return QIcon::fromTheme("unknown");
|
||||
switch(m_bestList.at(index).first) {
|
||||
case Apps: {
|
||||
return this->m_bestAppIcon;
|
||||
// return FileUtils::getAppIcon(m_pathlist.at(index));
|
||||
}
|
||||
case Settings: {
|
||||
return FileUtils::getSettingIcon(m_pathlist.at(index), false);
|
||||
}
|
||||
default: {
|
||||
return FileUtils::getFileIcon(QString("file://%1").arg(m_pathlist.at(index)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchItem::getBestName 获取最佳匹配结果的名称
|
||||
* @param index 索引行
|
||||
* @return
|
||||
*/
|
||||
QString SearchItem::getBestName(const int &index)
|
||||
{
|
||||
if (m_bestList.isEmpty() || !m_bestList.length() > index) return "";
|
||||
switch(m_bestList.at(index).first) {
|
||||
case Apps: {
|
||||
return m_bestList.at(index).second;
|
||||
}
|
||||
case Settings: {
|
||||
return FileUtils::getSettingName(m_pathlist.at(index));
|
||||
}
|
||||
default: {
|
||||
return FileUtils::getFileName(m_pathlist.at(index));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchItem::setSearchList 存入搜索结果列表
|
||||
* @param type 搜索类型
|
||||
|
@ -117,4 +166,7 @@ int SearchItem::getCurrentSize() {
|
|||
void SearchItem::clear()
|
||||
{
|
||||
m_pathlist.clear();
|
||||
m_app_pathlist.clear();
|
||||
m_app_iconlist.clear();
|
||||
m_bestList.clear();
|
||||
}
|
||||
|
|
|
@ -56,9 +56,16 @@ private:
|
|||
|
||||
int m_searchtype = 0;
|
||||
QStringList m_pathlist;
|
||||
QStringList m_app_pathlist;
|
||||
QStringList m_app_iconlist;
|
||||
QList<QPair<int, QString>> m_bestList;
|
||||
|
||||
QIcon m_bestAppIcon = QIcon::fromTheme("unknown"); //由于未安装应用与已安装应用获取图标方式不一致,故引入此变量直接存储最佳匹配应用图标
|
||||
|
||||
QIcon getIcon(int);
|
||||
QString getName(int);
|
||||
QIcon getBestIcon(const int &);
|
||||
QString getBestName(const int &);
|
||||
|
||||
Q_SIGNALS:
|
||||
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
#include "search-app-thread.h"
|
||||
|
||||
SearchAppThread::SearchAppThread(QObject * parent) : QThread(parent)
|
||||
{
|
||||
m_appMatch = new AppMatch(this);
|
||||
}
|
||||
|
||||
SearchAppThread::~SearchAppThread()
|
||||
{
|
||||
if (m_appMatch) {
|
||||
delete m_appMatch;
|
||||
m_appMatch = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief SearchAppThread::startSearch 激活线程
|
||||
* @param keyword 关键词
|
||||
*/
|
||||
void SearchAppThread::startSearch(const QString & keyword)
|
||||
{
|
||||
m_keyword = keyword;
|
||||
m_stop = false;
|
||||
this->start();
|
||||
}
|
||||
|
||||
void SearchAppThread::stop()
|
||||
{
|
||||
m_stop = true;
|
||||
this->quit();
|
||||
this->wait();
|
||||
}
|
||||
|
||||
void SearchAppThread::run()
|
||||
{
|
||||
//nameList:应用名,pathList:已安装的是.desktop路径,未安装为空,iconList:已安装的是图标名,未安装的是图标路径
|
||||
QStringList nameList, pathList, iconList;
|
||||
QVector<QStringList> applist;
|
||||
QMap<QString, QList<QString>> appList;
|
||||
appList = m_appMatch->startMatchApp(m_keyword);
|
||||
QMapIterator<QString,QList<QString>> iter(appList);
|
||||
while(iter.hasNext())
|
||||
{
|
||||
iter.next();
|
||||
nameList << iter.key();
|
||||
pathList << iter.value().at(0);
|
||||
iconList << iter.value().at(1);
|
||||
}
|
||||
applist.append(nameList);
|
||||
applist.append(pathList);
|
||||
applist.append(iconList);
|
||||
if (!m_stop)
|
||||
Q_EMIT this->searchResultApp(applist);
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef SEARCHAPPTHREAD_H
|
||||
#define SEARCHAPPTHREAD_H
|
||||
#include <QThread>
|
||||
#include "libsearch.h"
|
||||
|
||||
class SearchAppThread : public QThread
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
SearchAppThread(QObject * parent = nullptr);
|
||||
~SearchAppThread();
|
||||
void startSearch(const QString&);
|
||||
void stop();
|
||||
protected:
|
||||
void run() override;
|
||||
private:
|
||||
AppMatch * m_appMatch = nullptr;
|
||||
QString m_keyword;
|
||||
bool m_stop = false;
|
||||
Q_SIGNALS:
|
||||
void searchResultApp(const QVector<QStringList>&);
|
||||
};
|
||||
|
||||
#endif // SEARCHAPPTHREAD_H
|
|
@ -29,6 +29,7 @@ SOURCES += \
|
|||
input-box.cpp \
|
||||
main.cpp \
|
||||
mainwindow.cpp \
|
||||
search-app-thread.cpp \
|
||||
search-result.cpp \
|
||||
settings-widget.cpp \
|
||||
xatom-helper.cpp
|
||||
|
@ -38,6 +39,7 @@ HEADERS += \
|
|||
content-widget.h \
|
||||
input-box.h \
|
||||
mainwindow.h \
|
||||
search-app-thread.h \
|
||||
search-result.h \
|
||||
settings-widget.h \
|
||||
xatom-helper.h
|
||||
|
|
|
@ -4,57 +4,57 @@
|
|||
<context>
|
||||
<name>ContentWidget</name>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="354"/>
|
||||
<location filename="../../src/content-widget.cpp" line="370"/>
|
||||
<source>Recently Opened</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="390"/>
|
||||
<location filename="../../src/content-widget.cpp" line="406"/>
|
||||
<source>Open Quickly</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="391"/>
|
||||
<location filename="../../src/content-widget.cpp" line="407"/>
|
||||
<source>Commonly Used</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="653"/>
|
||||
<location filename="../../src/content-widget.cpp" line="670"/>
|
||||
<source>Apps</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="655"/>
|
||||
<location filename="../../src/content-widget.cpp" line="672"/>
|
||||
<source>Settings</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="657"/>
|
||||
<location filename="../../src/content-widget.cpp" line="674"/>
|
||||
<source>Files</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="659"/>
|
||||
<location filename="../../src/content-widget.cpp" line="676"/>
|
||||
<source>Dirs</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="661"/>
|
||||
<location filename="../../src/content-widget.cpp" line="678"/>
|
||||
<source>File Contents</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="663"/>
|
||||
<location filename="../../src/content-widget.cpp" line="680"/>
|
||||
<source>Best Matches</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="665"/>
|
||||
<location filename="../../src/content-widget.cpp" line="682"/>
|
||||
<source>Web Pages</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="667"/>
|
||||
<location filename="../../src/content-widget.cpp" line="684"/>
|
||||
<source>Unknown</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -75,12 +75,12 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/mainwindow.cpp" line="115"/>
|
||||
<location filename="../../src/mainwindow.cpp" line="121"/>
|
||||
<source>Global Search</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/mainwindow.cpp" line="169"/>
|
||||
<location filename="../../src/mainwindow.cpp" line="175"/>
|
||||
<source>Search</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -88,35 +88,40 @@
|
|||
<context>
|
||||
<name>OptionView</name>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="96"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="101"/>
|
||||
<source>Open</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="103"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="108"/>
|
||||
<source>Add Shortcut to Desktop</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="110"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="115"/>
|
||||
<source>Add Shortcut to Panel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="117"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="122"/>
|
||||
<source>Open path</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="124"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="129"/>
|
||||
<source>Copy path</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="136"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../../src/main.cpp" line="149"/>
|
||||
<location filename="../../src/main.cpp" line="150"/>
|
||||
<source>ukui-search is already running!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -132,22 +137,22 @@
|
|||
<context>
|
||||
<name>SearchDetailView</name>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="406"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="485"/>
|
||||
<source>Path</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="414"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="493"/>
|
||||
<source>Last time modified</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="236"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="210"/>
|
||||
<source>Application</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="253"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="329"/>
|
||||
<source>Document</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -155,55 +160,55 @@
|
|||
<context>
|
||||
<name>SettingsWidget</name>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="69"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="267"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="470"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="70"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="281"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="514"/>
|
||||
<source>Search</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="99"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="101"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="100"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="102"/>
|
||||
<source>...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="111"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="112"/>
|
||||
<source>Following folders will not be searched. You can set it by adding and removing folders.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="120"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="121"/>
|
||||
<source>Add ignored folders</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="143"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="144"/>
|
||||
<source>Please select search engine you preferred.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="156"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="157"/>
|
||||
<source>baidu</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="158"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="159"/>
|
||||
<source>sougou</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="160"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="161"/>
|
||||
<source>360</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="359"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="403"/>
|
||||
<source>Cancel</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="298"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="342"/>
|
||||
<source>Creating ...</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -213,97 +218,97 @@
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="92"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="93"/>
|
||||
<source><h2>Settings</h2></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="97"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="98"/>
|
||||
<source><h3>Index State</h3></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="109"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="110"/>
|
||||
<source><h3>File Index Settings</h3></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="141"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="142"/>
|
||||
<source><h3>Search Engine Settings</h3></source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="267"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="281"/>
|
||||
<source>Whether to delete this directory?</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="268"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="282"/>
|
||||
<source>Yes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="269"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="283"/>
|
||||
<source>No</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="301"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="345"/>
|
||||
<source>Done</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="309"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="353"/>
|
||||
<source>Index Entry: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="353"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="397"/>
|
||||
<source>Directories</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="354"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="398"/>
|
||||
<source>select blocked folder</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="355"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="399"/>
|
||||
<source>Select</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="356"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="400"/>
|
||||
<source>Position: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="357"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="401"/>
|
||||
<source>FileName: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="358"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="402"/>
|
||||
<source>FileType: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="454"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="498"/>
|
||||
<source>Choosen path is Empty!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="458"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="502"/>
|
||||
<source>Choosen path is not in "home"!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="462"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="506"/>
|
||||
<source>Its' parent folder has been blocked!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="466"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="510"/>
|
||||
<source>Set blocked folder failed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -4,57 +4,57 @@
|
|||
<context>
|
||||
<name>ContentWidget</name>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="354"/>
|
||||
<location filename="../../src/content-widget.cpp" line="370"/>
|
||||
<source>Recently Opened</source>
|
||||
<translation>Yeni Açılan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="390"/>
|
||||
<location filename="../../src/content-widget.cpp" line="406"/>
|
||||
<source>Open Quickly</source>
|
||||
<translation>Hızlı Aç</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="391"/>
|
||||
<location filename="../../src/content-widget.cpp" line="407"/>
|
||||
<source>Commonly Used</source>
|
||||
<translation>Genel olarak kullanılan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="653"/>
|
||||
<location filename="../../src/content-widget.cpp" line="670"/>
|
||||
<source>Apps</source>
|
||||
<translation>Uygulamalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="655"/>
|
||||
<location filename="../../src/content-widget.cpp" line="672"/>
|
||||
<source>Settings</source>
|
||||
<translation>Ayarlar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="657"/>
|
||||
<location filename="../../src/content-widget.cpp" line="674"/>
|
||||
<source>Files</source>
|
||||
<translation>Dosyalar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="659"/>
|
||||
<location filename="../../src/content-widget.cpp" line="676"/>
|
||||
<source>Dirs</source>
|
||||
<translation>Dizinler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="661"/>
|
||||
<location filename="../../src/content-widget.cpp" line="678"/>
|
||||
<source>File Contents</source>
|
||||
<translation>Dosya İçeriği</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="663"/>
|
||||
<location filename="../../src/content-widget.cpp" line="680"/>
|
||||
<source>Best Matches</source>
|
||||
<translation>En İyi Eşleşen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="665"/>
|
||||
<location filename="../../src/content-widget.cpp" line="682"/>
|
||||
<source>Web Pages</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="667"/>
|
||||
<location filename="../../src/content-widget.cpp" line="684"/>
|
||||
<source>Unknown</source>
|
||||
<translation>Bilinmeyen</translation>
|
||||
</message>
|
||||
|
@ -75,12 +75,12 @@
|
|||
<translation>ukui-ara</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/mainwindow.cpp" line="115"/>
|
||||
<location filename="../../src/mainwindow.cpp" line="121"/>
|
||||
<source>Global Search</source>
|
||||
<translation>Genel Arama</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/mainwindow.cpp" line="169"/>
|
||||
<location filename="../../src/mainwindow.cpp" line="175"/>
|
||||
<source>Search</source>
|
||||
<translation>Ara</translation>
|
||||
</message>
|
||||
|
@ -88,35 +88,40 @@
|
|||
<context>
|
||||
<name>OptionView</name>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="96"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="101"/>
|
||||
<source>Open</source>
|
||||
<translation>Aç</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="103"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="108"/>
|
||||
<source>Add Shortcut to Desktop</source>
|
||||
<translation>Masaüstüne Kısayol Ekle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="110"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="115"/>
|
||||
<source>Add Shortcut to Panel</source>
|
||||
<translation>Panele Kısayol Ekle</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="117"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="122"/>
|
||||
<source>Open path</source>
|
||||
<translation>Yolu aç</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="124"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="129"/>
|
||||
<source>Copy path</source>
|
||||
<translation>Yolu kopyala</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="136"/>
|
||||
<source>Install</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../../src/main.cpp" line="149"/>
|
||||
<location filename="../../src/main.cpp" line="150"/>
|
||||
<source>ukui-search is already running!</source>
|
||||
<translation>ukui-bul zaten çalışıyor!</translation>
|
||||
</message>
|
||||
|
@ -132,22 +137,22 @@
|
|||
<context>
|
||||
<name>SearchDetailView</name>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="406"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="485"/>
|
||||
<source>Path</source>
|
||||
<translation>Yol</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="414"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="493"/>
|
||||
<source>Last time modified</source>
|
||||
<translation>Son değiştirilme zamanı</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="236"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="210"/>
|
||||
<source>Application</source>
|
||||
<translation>Uygulama</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="253"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="329"/>
|
||||
<source>Document</source>
|
||||
<translation>Belge</translation>
|
||||
</message>
|
||||
|
@ -155,55 +160,55 @@
|
|||
<context>
|
||||
<name>SettingsWidget</name>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="69"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="267"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="470"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="70"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="281"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="514"/>
|
||||
<source>Search</source>
|
||||
<translation>Ara</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="99"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="101"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="100"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="102"/>
|
||||
<source>...</source>
|
||||
<translation>...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="111"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="112"/>
|
||||
<source>Following folders will not be searched. You can set it by adding and removing folders.</source>
|
||||
<translation>Aşağıdaki klasörler aranmayacaktır. Klasör ekleyip kaldırarak ayarlayabilirsiniz.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="120"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="121"/>
|
||||
<source>Add ignored folders</source>
|
||||
<translation>Göz ardı edilen klasörleri ekleyin</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="143"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="144"/>
|
||||
<source>Please select search engine you preferred.</source>
|
||||
<translation>Lütfen tercih ettiğiniz arama motorunu seçin.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="156"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="157"/>
|
||||
<source>baidu</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="158"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="159"/>
|
||||
<source>sougou</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="160"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="161"/>
|
||||
<source>360</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="359"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="403"/>
|
||||
<source>Cancel</source>
|
||||
<translation>İptal</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="298"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="342"/>
|
||||
<source>Creating ...</source>
|
||||
<translation>Oluşturuluyor...</translation>
|
||||
</message>
|
||||
|
@ -213,97 +218,97 @@
|
|||
<translation>ukui-bul</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="92"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="93"/>
|
||||
<source><h2>Settings</h2></source>
|
||||
<translation><h2>Ayarlar</h2></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="97"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="98"/>
|
||||
<source><h3>Index State</h3></source>
|
||||
<translation><h3>Dizin Durumu</h3></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="109"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="110"/>
|
||||
<source><h3>File Index Settings</h3></source>
|
||||
<translation><h3>Dosya Dizini Ayarları</h3></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="141"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="142"/>
|
||||
<source><h3>Search Engine Settings</h3></source>
|
||||
<translation><h3>SArama Motoru Ayarları</h3></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="267"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="281"/>
|
||||
<source>Whether to delete this directory?</source>
|
||||
<translation>Bu dizini silinsin mi?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="268"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="282"/>
|
||||
<source>Yes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="269"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="283"/>
|
||||
<source>No</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="301"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="345"/>
|
||||
<source>Done</source>
|
||||
<translation>Tamam</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="309"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="353"/>
|
||||
<source>Index Entry: %1</source>
|
||||
<translation>Dizin Girişi: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="353"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="397"/>
|
||||
<source>Directories</source>
|
||||
<translation>Dizinler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="354"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="398"/>
|
||||
<source>select blocked folder</source>
|
||||
<translation>engellenen klasörü seç</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="355"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="399"/>
|
||||
<source>Select</source>
|
||||
<translation>Seç</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="356"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="400"/>
|
||||
<source>Position: </source>
|
||||
<translation>Pozisyon: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="357"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="401"/>
|
||||
<source>FileName: </source>
|
||||
<translation>Dosya Adı: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="358"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="402"/>
|
||||
<source>FileType: </source>
|
||||
<translation>Dosya Türü: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="454"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="498"/>
|
||||
<source>Choosen path is Empty!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="458"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="502"/>
|
||||
<source>Choosen path is not in "home"!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="462"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="506"/>
|
||||
<source>Its' parent folder has been blocked!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="466"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="510"/>
|
||||
<source>Set blocked folder failed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
|
|
@ -4,57 +4,57 @@
|
|||
<context>
|
||||
<name>ContentWidget</name>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="354"/>
|
||||
<location filename="../../src/content-widget.cpp" line="370"/>
|
||||
<source>Recently Opened</source>
|
||||
<translation>最近</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="390"/>
|
||||
<location filename="../../src/content-widget.cpp" line="406"/>
|
||||
<source>Open Quickly</source>
|
||||
<translation>快速</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="391"/>
|
||||
<location filename="../../src/content-widget.cpp" line="407"/>
|
||||
<source>Commonly Used</source>
|
||||
<translation>常用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="653"/>
|
||||
<location filename="../../src/content-widget.cpp" line="670"/>
|
||||
<source>Apps</source>
|
||||
<translation>应用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="655"/>
|
||||
<location filename="../../src/content-widget.cpp" line="672"/>
|
||||
<source>Settings</source>
|
||||
<translation>配置项</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="657"/>
|
||||
<location filename="../../src/content-widget.cpp" line="674"/>
|
||||
<source>Files</source>
|
||||
<translation>文件</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="659"/>
|
||||
<location filename="../../src/content-widget.cpp" line="676"/>
|
||||
<source>Dirs</source>
|
||||
<translation>文件夹</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="661"/>
|
||||
<location filename="../../src/content-widget.cpp" line="678"/>
|
||||
<source>File Contents</source>
|
||||
<translation>文件内容</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="663"/>
|
||||
<location filename="../../src/content-widget.cpp" line="680"/>
|
||||
<source>Best Matches</source>
|
||||
<translation>最佳匹配</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="665"/>
|
||||
<location filename="../../src/content-widget.cpp" line="682"/>
|
||||
<source>Web Pages</source>
|
||||
<translation>网页</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/content-widget.cpp" line="667"/>
|
||||
<location filename="../../src/content-widget.cpp" line="684"/>
|
||||
<source>Unknown</source>
|
||||
<translation>未知</translation>
|
||||
</message>
|
||||
|
@ -75,12 +75,12 @@
|
|||
<translation>搜索</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/mainwindow.cpp" line="115"/>
|
||||
<location filename="../../src/mainwindow.cpp" line="121"/>
|
||||
<source>Global Search</source>
|
||||
<translation>搜索</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/mainwindow.cpp" line="169"/>
|
||||
<location filename="../../src/mainwindow.cpp" line="175"/>
|
||||
<source>Search</source>
|
||||
<translation>搜索</translation>
|
||||
</message>
|
||||
|
@ -88,35 +88,40 @@
|
|||
<context>
|
||||
<name>OptionView</name>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="96"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="101"/>
|
||||
<source>Open</source>
|
||||
<translation>打开</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="103"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="108"/>
|
||||
<source>Add Shortcut to Desktop</source>
|
||||
<translation>添加到桌面快捷方式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="110"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="115"/>
|
||||
<source>Add Shortcut to Panel</source>
|
||||
<translation>添加到任务栏快捷方式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="117"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="122"/>
|
||||
<source>Open path</source>
|
||||
<translation>打开文件所在路径</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="124"/>
|
||||
<location filename="../../src/control/option-view.cpp" line="129"/>
|
||||
<source>Copy path</source>
|
||||
<translation>复制文件路径</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/option-view.cpp" line="136"/>
|
||||
<source>Install</source>
|
||||
<translation>安装</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<location filename="../../src/main.cpp" line="149"/>
|
||||
<location filename="../../src/main.cpp" line="150"/>
|
||||
<source>ukui-search is already running!</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
|
@ -132,22 +137,22 @@
|
|||
<context>
|
||||
<name>SearchDetailView</name>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="406"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="485"/>
|
||||
<source>Path</source>
|
||||
<translation>路径</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="414"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="493"/>
|
||||
<source>Last time modified</source>
|
||||
<translation>上次修改时间</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="236"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="210"/>
|
||||
<source>Application</source>
|
||||
<translation>应用</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="253"/>
|
||||
<location filename="../../src/control/search-detail-view.cpp" line="329"/>
|
||||
<source>Document</source>
|
||||
<translation>文件</translation>
|
||||
</message>
|
||||
|
@ -155,110 +160,110 @@
|
|||
<context>
|
||||
<name>SettingsWidget</name>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="69"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="267"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="470"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="70"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="281"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="514"/>
|
||||
<source>Search</source>
|
||||
<translation>搜索</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="92"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="93"/>
|
||||
<source><h2>Settings</h2></source>
|
||||
<translation><h2>设置</h2></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="97"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="98"/>
|
||||
<source><h3>Index State</h3></source>
|
||||
<translation><h3>索引状态</h3></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="99"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="101"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="100"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="102"/>
|
||||
<source>...</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="109"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="110"/>
|
||||
<source><h3>File Index Settings</h3></source>
|
||||
<translation><h3>文件索引设置</h3></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="111"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="112"/>
|
||||
<source>Following folders will not be searched. You can set it by adding and removing folders.</source>
|
||||
<translation>搜索将不再查看以下文件夹。通过增加和删除文件夹可进行文件索引设置。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="120"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="121"/>
|
||||
<source>Add ignored folders</source>
|
||||
<translation>添加文件夹至黑名单</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="141"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="142"/>
|
||||
<source><h3>Search Engine Settings</h3></source>
|
||||
<translation><h3>搜索引擎设置</h3></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="143"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="144"/>
|
||||
<source>Please select search engine you preferred.</source>
|
||||
<translation>设置互联网搜索引擎</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="156"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="157"/>
|
||||
<source>baidu</source>
|
||||
<translation>百度</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="158"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="159"/>
|
||||
<source>sougou</source>
|
||||
<translation>搜狗</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="160"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="161"/>
|
||||
<source>360</source>
|
||||
<translation>360</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="267"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="281"/>
|
||||
<source>Whether to delete this directory?</source>
|
||||
<translation>是否要删除此目录</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="268"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="282"/>
|
||||
<source>Yes</source>
|
||||
<translation>是(Y)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="269"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="283"/>
|
||||
<source>No</source>
|
||||
<translation>否(N)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="359"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="403"/>
|
||||
<source>Cancel</source>
|
||||
<translation>取消</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="454"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="498"/>
|
||||
<source>Choosen path is Empty!</source>
|
||||
<translation>选择的路径不存在!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="458"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="502"/>
|
||||
<source>Choosen path is not in "home"!</source>
|
||||
<translation>请选择家目录下的文件夹!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="462"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="506"/>
|
||||
<source>Its' parent folder has been blocked!</source>
|
||||
<translation>父文件夹已被屏蔽!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="466"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="510"/>
|
||||
<source>Set blocked folder failed!</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="298"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="342"/>
|
||||
<source>Creating ...</source>
|
||||
<translation>正在索引</translation>
|
||||
</message>
|
||||
|
@ -268,42 +273,42 @@
|
|||
<translation>搜索</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="301"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="345"/>
|
||||
<source>Done</source>
|
||||
<translation>索引完成</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="309"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="353"/>
|
||||
<source>Index Entry: %1</source>
|
||||
<translation>索引项: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="353"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="397"/>
|
||||
<source>Directories</source>
|
||||
<translation>文件夹</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="354"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="398"/>
|
||||
<source>select blocked folder</source>
|
||||
<translation>选择屏蔽文件夹</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="355"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="399"/>
|
||||
<source>Select</source>
|
||||
<translation>选择</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="356"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="400"/>
|
||||
<source>Position: </source>
|
||||
<translation>位置:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="357"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="401"/>
|
||||
<source>FileName: </source>
|
||||
<translation>名称:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/settings-widget.cpp" line="358"/>
|
||||
<location filename="../../src/settings-widget.cpp" line="402"/>
|
||||
<source>FileType: </source>
|
||||
<translation>类型:</translation>
|
||||
</message>
|
||||
|
|
Loading…
Reference in New Issue