feat(frontend): Connect with the latest API for app search.

Description: 对接应用搜索新接口

Log: 对接应用搜索新接口
This commit is contained in:
zhangjiaping 2021-02-27 17:32:41 +08:00
parent 403057e2bb
commit 06420dccad
21 changed files with 602 additions and 304 deletions

View File

@ -248,7 +248,7 @@ void ContentWidget::setupConnect(SearchListView * listview) {
} else if (type == SearchItem::SearchType::Best && !m_bestContent.isEmpty() && listview->currentIndex().row() == listview->getLength() - 1) { } else if (type == SearchItem::SearchType::Best && !m_bestContent.isEmpty() && listview->currentIndex().row() == listview->getLength() - 1) {
m_detailView->setContent(m_bestContent, m_keyword); m_detailView->setContent(m_bestContent, m_keyword);
m_detailView->isContent = true; m_detailView->isContent = true;
m_detailView->setupWidget(type == SearchItem::SearchType::Contents, path); m_detailView->setupWidget(SearchItem::SearchType::Contents, path);
listview->is_current_list = true; listview->is_current_list = true;
Q_EMIT this->currentItemChanged(); Q_EMIT this->currentItemChanged();
listview->is_current_list = false; listview->is_current_list = false;
@ -258,6 +258,15 @@ void ContentWidget::setupConnect(SearchListView * listview) {
} }
if (type == SearchItem::SearchType::Web) { if (type == SearchItem::SearchType::Web) {
m_detailView->setWebWidget(this->m_keyword); 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 { } else {
m_detailView->setupWidget(type, path); m_detailView->setupWidget(type, path);
} }
@ -326,6 +335,13 @@ void ContentWidget::resetListHeight()
m_resultList->setFixedHeight(height); 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填充内容 * @brief ContentWidget::initHomePage homepage填充内容
* @param lists * @param lists
@ -416,10 +432,10 @@ int ContentWidget::currentPage() {
} }
/** /**
* @brief ContentWidget::refreshSearchList / * @brief ContentWidget::resetSearchList
* @param lists list.at(0) list.at(1)
*/ */
void ContentWidget::refreshSearchList(const QVector<QStringList>& lists) { void ContentWidget::resetSearchList()
{
this->hideListView(); this->hideListView();
if (m_fileListView) { if (m_fileListView) {
m_fileListView->hide(); m_fileListView->hide();
@ -480,6 +496,7 @@ void ContentWidget::refreshSearchList(const QVector<QStringList>& lists) {
m_fileShowMoreLabel->resetLabel(); m_fileShowMoreLabel->resetLabel();
m_contentShowMoreLabel->resetLabel(); m_contentShowMoreLabel->resetLabel();
m_bestList.clear();
if (! m_appList.isEmpty()) if (! m_appList.isEmpty())
m_appList.clear(); m_appList.clear();
if (! m_settingList.isEmpty()) if (! m_settingList.isEmpty())
@ -490,25 +507,23 @@ void ContentWidget::refreshSearchList(const QVector<QStringList>& lists) {
m_fileList.clear(); m_fileList.clear();
if (! m_contentList.isEmpty()) if (! m_contentList.isEmpty())
m_contentList.clear(); 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); * @brief ContentWidget::setSettingList
qDebug()<<"Append a best item into list: "<<lists.at(0).at(0); * @param settingList
appendSearchItem(SearchItem::SearchType::Best, lists.at(0).at(0)); */
m_appListView->show(); void ContentWidget::setSettingList(const QStringList & settingList)
m_appTitleLabel->show(); {
m_appListView->isHidden = false; if (settingList.isEmpty())
if (m_appList.length() <= 5) { return;
m_appListView->setList(m_appList); m_settingList = settingList;
} else { qDebug()<<"Append a best item into list: "<<settingList.at(0);
m_appShowMoreLabel->show(); this->appendBestItem(SearchItem::SearchType::Settings, settingList.at(0));
m_appListView->setList(m_appList.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_settingListView->show();
m_settingTitleLabel->show(); m_settingTitleLabel->show();
m_settingListView->isHidden = false; m_settingListView->isHidden = false;
@ -518,6 +533,36 @@ void ContentWidget::refreshSearchList(const QVector<QStringList>& lists) {
m_settingShowMoreLabel->show(); m_settingShowMoreLabel->show();
m_settingListView->setList(m_settingList.mid(0, 5)); 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(); this->resetListHeight();
} }
@ -542,40 +587,12 @@ void ContentWidget::appendSearchItem(const int& type, const QString& path, QStri
} }
break; 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: { case SearchItem::SearchType::Files: {
if (m_fileListView->isHidden) { if (m_fileListView->isHidden) {
m_fileListView->show(); m_fileListView->show();
m_fileTitleLabel->show(); m_fileTitleLabel->show();
m_fileListView->isHidden = false; m_fileListView->isHidden = false;
appendSearchItem(SearchItem::SearchType::Best, path); this->appendBestItem(SearchItem::SearchType::Files, path);
} }
if (m_fileListView->getLength() < 5) { //当已搜索结果列表少于5项直接将搜索结果添加到列表中 if (m_fileListView->getLength() < 5) { //当已搜索结果列表少于5项直接将搜索结果添加到列表中
m_fileListView->appendItem(path); m_fileListView->appendItem(path);
@ -592,7 +609,7 @@ void ContentWidget::appendSearchItem(const int& type, const QString& path, QStri
m_dirListView->show(); m_dirListView->show();
m_dirTitleLabel->show(); m_dirTitleLabel->show();
m_dirListView->isHidden = false; m_dirListView->isHidden = false;
appendSearchItem(SearchItem::SearchType::Best, path); this->appendBestItem(SearchItem::SearchType::Dirs, path);
} }
if (m_dirListView->getLength() < 5) { if (m_dirListView->getLength() < 5) {
m_dirListView->appendItem(path); m_dirListView->appendItem(path);
@ -615,7 +632,7 @@ void ContentWidget::appendSearchItem(const int& type, const QString& path, QStri
m_bestContent.append("\n"); m_bestContent.append("\n");
} }
} }
appendSearchItem(SearchItem::SearchType::Best, path); this->appendBestItem(SearchItem::SearchType::Contents, path);
} }
if (m_contentListView->getLength() < 5) { if (m_contentListView->getLength() < 5) {
m_contentListView->appendItem(path); m_contentListView->appendItem(path);

View File

@ -39,7 +39,9 @@ public:
void setPage(const int&); void setPage(const int&);
int currentPage(); 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 appendSearchItem(const int& type, const QString& path, QStringList contents = QStringList());
void initHomePage(); void initHomePage();
void setContentList(const QStringList&); void setContentList(const QStringList&);
@ -53,6 +55,7 @@ private:
void setupConnect(SearchListView *); void setupConnect(SearchListView *);
void clearHomepage(); void clearHomepage();
void resetListHeight(); void resetListHeight();
void appendBestItem(const int&, const QString&);
QString m_keyword; QString m_keyword;
QStringList m_contentDetailList; QStringList m_contentDetailList;
QWidget * m_homePage = nullptr; QWidget * m_homePage = nullptr;
@ -93,6 +96,9 @@ private:
QStringList m_fileList; QStringList m_fileList;
QStringList m_contentList; QStringList m_contentList;
QStringList m_quicklyOpenList; QStringList m_quicklyOpenList;
QStringList m_appPathList;
QStringList m_appIconList;
QList<QPair<int, QString>> m_bestList;
QString m_bestContent; //最佳匹配有文件内容搜索结果的时候,以此变量传递 QString m_bestContent; //最佳匹配有文件内容搜索结果的时候,以此变量传递

View File

@ -121,17 +121,10 @@ void HomePageItem::setupUi(const int& type, const QString& path) {
m_hlayout->addStretch(); m_hlayout->addStretch();
return; return;
} else if (type == ItemType::Quick) { } 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); QIcon icon = FileUtils::getAppIcon(path);
m_iconlabel->setPixmap(icon.pixmap(icon.actualSize(QSize(48, 48)))); m_iconlabel->setPixmap(icon.pixmap(icon.actualSize(QSize(48, 48))));
m_namelabel->setText(FileUtils::getAppName(path)); m_namelabel->setText(FileUtils::getAppName(path));
this->setToolTip(FileUtils::getAppName(path)); this->setToolTip(FileUtils::getAppName(path));
}
} else { } else {
QIcon icon = FileUtils::getAppIcon(path); QIcon icon = FileUtils::getAppIcon(path);
m_iconlabel->setPixmap(icon.pixmap(icon.actualSize(QSize(48, 48)))); m_iconlabel->setPixmap(icon.pixmap(icon.actualSize(QSize(48, 48))));

View File

@ -53,17 +53,22 @@ OptionView::~OptionView()
delete m_copyPathLabel; delete m_copyPathLabel;
m_copyPathLabel = NULL; m_copyPathLabel = NULL;
} }
if (m_installLabel) {
delete m_installLabel;
m_installLabel = NULL;
}
} }
/** /**
* @brief OptionView::initComponent * @brief OptionView::initComponent
* @param type * @param type
* @param is_appInstalled
*/ */
void OptionView::setupOptions(const int& type) { void OptionView::setupOptions(const int& type, bool is_appInstalled) {
this->hideOptions(); this->hideOptions();
switch (type) { switch (type) {
case SearchListView::ResType::App : { case SearchListView::ResType::App : {
setupAppOptions(); setupAppOptions(is_appInstalled);
break; break;
} }
case SearchListView::ResType::Content: case SearchListView::ResType::Content:
@ -127,6 +132,13 @@ void OptionView::initUI()
m_copyPathLabel->installEventFilter(this); m_copyPathLabel->installEventFilter(this);
m_optionLyt->addWidget(m_copyPathLabel); 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_optionLyt->addStretch();
m_optionFrame->setLayout(m_optionLyt); m_optionFrame->setLayout(m_optionLyt);
m_mainLyt->addWidget(m_optionFrame); m_mainLyt->addWidget(m_optionFrame);
@ -159,6 +171,10 @@ void OptionView::setupOptionLabel(const int& opt) {
m_copyPathLabel->show(); m_copyPathLabel->show();
break; break;
} }
case Options::Install: {
m_installLabel->show();
break;
}
default: default:
break; break;
} }
@ -171,15 +187,21 @@ void OptionView::hideOptions()
m_panelLabel->hide(); m_panelLabel->hide();
m_openPathLabel->hide(); m_openPathLabel->hide();
m_copyPathLabel->hide(); m_copyPathLabel->hide();
m_installLabel->hide();
} }
/** /**
* @brief OptionView::setupAppOptions * @brief OptionView::setupAppOptions
* @param is_installed
*/ */
void OptionView::setupAppOptions() { void OptionView::setupAppOptions(bool is_installed) {
if (is_installed) {
setupOptionLabel(Options::Open); setupOptionLabel(Options::Open);
setupOptionLabel(Options::Shortcut); setupOptionLabel(Options::Shortcut);
setupOptionLabel(Options::Panel); 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}"); m_copyPathLabel->setStyleSheet("QLabel{font-size: 14px; color: #3790FA}");
return true; 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); return QObject::eventFilter(watched, event);
} }

View File

@ -34,14 +34,15 @@ class OptionView : public QWidget
public: public:
explicit OptionView(QWidget *); explicit OptionView(QWidget *);
~OptionView(); ~OptionView();
void setupOptions(const int&); void setupOptions(const int&, bool is_appInstalled = true);
enum Options { enum Options {
Open, Open,
Shortcut, Shortcut,
Panel, Panel,
OpenPath, OpenPath,
CopyPath CopyPath,
Install
}; };
protected: protected:
@ -49,7 +50,7 @@ protected:
private: private:
void initUI(); void initUI();
void setupAppOptions(); void setupAppOptions(bool);
void setupFileOptions(); void setupFileOptions();
void setupDirOptions(); void setupDirOptions();
void setupSettingOptions(); void setupSettingOptions();
@ -66,6 +67,7 @@ private:
QLabel * m_panelLabel = nullptr; QLabel * m_panelLabel = nullptr;
QLabel * m_openPathLabel = nullptr; QLabel * m_openPathLabel = nullptr;
QLabel * m_copyPathLabel = nullptr; QLabel * m_copyPathLabel = nullptr;
QLabel * m_installLabel = nullptr;
Q_SIGNALS: Q_SIGNALS:
void onOptionClicked(const int&); void onOptionClicked(const int&);

View File

@ -173,6 +173,43 @@ void SearchDetailView::setWebWidget(const QString& keyword)
m_webView->show(); 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() void SearchDetailView::closeWebWidget()
{ {
if (m_webView) { if (m_webView) {
@ -234,7 +271,7 @@ void SearchDetailView::setupWidget(const int& type, const QString& path) {
m_hLine->show(); 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(); m_detailFrame->show();
if (isContent) { //文件内容区域 if (isContent) { //文件内容区域
m_contentLabel->show(); m_contentLabel->show();
@ -276,21 +313,7 @@ void SearchDetailView::setupWidget(const int& type, const QString& path) {
//根据不同类型的搜索结果切换加载图片和名称的方式 //根据不同类型的搜索结果切换加载图片和名称的方式
switch (type) { 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::Content:
case SearchListView::ResType::Best:
case SearchListView::ResType::Dir : case SearchListView::ResType::Dir :
case SearchListView::ResType::File : { case SearchListView::ResType::File : {
QIcon icon = FileUtils::getFileIcon(QString("file://%1").arg(path)); QIcon icon = FileUtils::getFileIcon(QString("file://%1").arg(path));
@ -347,6 +370,9 @@ void SearchDetailView::execActions(const int& type, const int& option, const QSt
copyPathAction(path); copyPathAction(path);
break; break;
} }
case OptionView::Options::Install: {
installAppAction(m_name); //未安装应用点击此选项,不使用路径作为参数,而是使用软件名
}
default: default:
break; break;
} }
@ -552,6 +578,18 @@ bool SearchDetailView::copyPathAction(const QString& path) {
return true; 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) { void SearchDetailView::paintEvent(QPaintEvent *event) {
Q_UNUSED(event) Q_UNUSED(event)

View File

@ -44,6 +44,7 @@ public:
int getType(); int getType();
bool isContent = false; bool isContent = false;
void setWebWidget(const QString&); void setWebWidget(const QString&);
void setAppWidget(const QString &name, const QString &path, const QString &icon);
void closeWebWidget(); void closeWebWidget();
protected: protected:
@ -58,12 +59,14 @@ private:
bool addPanelShortcut(const QString&); bool addPanelShortcut(const QString&);
bool openPathAction(const QString&); bool openPathAction(const QString&);
bool copyPathAction(const QString&); bool copyPathAction(const QString&);
bool installAppAction(const QString&);
QString getHtmlText(const QString&, const QString&); QString getHtmlText(const QString&, const QString&);
QString escapeHtml(const QString&); QString escapeHtml(const QString&);
bool writeConfigFile(const QString&); bool writeConfigFile(const QString&);
bool m_isEmpty = true; bool m_isEmpty = true;
int m_type = 0; int m_type = 0;
QString m_path = 0; QString m_path = 0;
QString m_name = 0; //目前只有未安装应用在打开软件商店时需要此参数
void initUI(); void initUI();
QLabel * m_iconLabel = nullptr; QLabel * m_iconLabel = nullptr;

View File

@ -88,6 +88,16 @@ void SearchListView::setList(QStringList list)
this->setFixedHeight(m_item->getCurrentSize() * rowheight + 4); 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 * @brief SearchListView::removeItem
*/ */
@ -153,7 +163,8 @@ int SearchListView::getCurrentType() {
case SearchItem::SearchType::Web: case SearchItem::SearchType::Web:
return ResType::Web; return ResType::Web;
default: //All或者Best的情况需要自己判断文件类型 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; break;
} }
} }
@ -165,17 +176,12 @@ int SearchListView::getCurrentType() {
*/ */
int SearchListView::getResType(const QString& path) { int SearchListView::getResType(const QString& path) {
if (path.endsWith(".desktop")) { if (path.endsWith(".desktop")) {
// qDebug()<<"qDebug: One row selected, its path is "<<path<<". Its type is application.";
return SearchListView::ResType::App; return SearchListView::ResType::App;
} else if (QFileInfo(path).isFile()) { } 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; return SearchListView::ResType::Best;
} else if (QFileInfo(path).isDir()) { } else if (QFileInfo(path).isDir()) {
// qDebug()<<"qDebug: One row selected, its path is "<<path<<". Its type is dir.";
return SearchListView::ResType::Dir; return SearchListView::ResType::Dir;
} else { } else {
// qDebug()<<"qDebug: One row selected, its path is "<<path<<". Its type is setting.";
return SearchListView::ResType::Setting; return SearchListView::ResType::Setting;
} }
} }

View File

@ -52,6 +52,8 @@ public:
void appendItem(QString); void appendItem(QString);
void setList(QStringList); void setList(QStringList);
void setAppList(const QStringList&, const QStringList&);
void appendBestItem(const QPair<int, QString>&);
void removeItem(QString); void removeItem(QString);
void clear(); void clear();
void setKeyword(QString); void setKeyword(QString);

View File

@ -96,19 +96,25 @@ MainWindow::MainWindow(QWidget *parent) :
m_search_result_dir = new QQueue<QString>; m_search_result_dir = new QQueue<QString>;
m_search_result_content = new QQueue<QPair<QString,QStringList>>; m_search_result_content = new QQueue<QPair<QString,QStringList>>;
m_search_result_thread = new SearchResult(this); m_search_result_thread = new SearchResult(this);
m_seach_app_thread = new SearchAppThread(this);
// m_search_result_thread->start(); // m_search_result_thread->start();
connect(m_search_result_thread, &SearchResult::searchResultFile, this, [ = ](QString path) { connect(m_search_result_thread, &SearchResult::searchResultFile, this, [ = ](QString path) {
qDebug()<<"Append a file into list: "<<path; // qDebug()<<"Append a file into list: "<<path;
m_contentFrame->appendSearchItem(SearchItem::SearchType::Files, path); m_contentFrame->appendSearchItem(SearchItem::SearchType::Files, path);
}); });
connect(m_search_result_thread, &SearchResult::searchResultDir, this, [ = ](QString path) { connect(m_search_result_thread, &SearchResult::searchResultDir, this, [ = ](QString path) {
qDebug()<<"Append a dir into list: "<<path; // qDebug()<<"Append a dir into list: "<<path;
m_contentFrame->appendSearchItem(SearchItem::SearchType::Dirs, path); m_contentFrame->appendSearchItem(SearchItem::SearchType::Dirs, path);
}); });
connect(m_search_result_thread, &SearchResult::searchResultContent, this, [ = ](QPair<QString, QStringList> pair) { connect(m_search_result_thread, &SearchResult::searchResultContent, this, [ = ](QPair<QString, QStringList> pair) {
qDebug()<<"Append a file content into list: "<<pair.first; // qDebug()<<"Append a file content into list: "<<pair.first;
m_contentFrame->appendSearchItem(SearchItem::SearchType::Contents, pair.first, pair.second); 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 = new QSystemTrayIcon(this);
m_sys_tray_icon->setIcon(QIcon::fromTheme("system-search-symbolic")); 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->requestInterruption();
m_search_result_thread->quit(); m_search_result_thread->quit();
} }
m_seach_app_thread->stop();
m_contentFrame->setCurrentIndex(0); m_contentFrame->setCurrentIndex(0);
} else { } else {
m_contentFrame->setCurrentIndex(1); m_contentFrame->setCurrentIndex(1);
@ -291,27 +298,22 @@ void MainWindow::primaryScreenChangedSlot(QScreen *screen)
* @brief searchContent * @brief searchContent
* @param searchcontent * @param searchcontent
*/ */
void MainWindow::searchContent(QString searchcontent){ void MainWindow::searchContent(QString keyword){
m_app_setting_lists.clear(); m_contentFrame->setKeyword(keyword);
m_contentFrame->setKeyword(searchcontent);
// 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); SettingsMatch * settingMatchor = new SettingsMatch(this);
//应用与设置搜索
QStringList appList;
appList = appMatchor->startMatchApp(searchcontent);
QStringList settingList; QStringList settingList;
settingList = settingMatchor->startMatchApp(searchcontent); settingList = settingMatchor->startMatchApp(keyword);
m_app_setting_lists.append(appList); m_contentFrame->resetSearchList();
m_app_setting_lists.append(settingList); m_contentFrame->setSettingList(settingList);
m_contentFrame->refreshSearchList(m_app_setting_lists);
//应用搜索
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_contentFrame->closeWebView();
m_search_result_thread->requestInterruption(); m_search_result_thread->requestInterruption();
m_search_result_thread->quit(); m_search_result_thread->quit();
m_seach_app_thread->stop();
break; break;
} }
@ -398,6 +401,7 @@ void MainWindow::keyPressEvent(QKeyEvent *event)
m_contentFrame->closeWebView(); m_contentFrame->closeWebView();
m_search_result_thread->requestInterruption(); m_search_result_thread->requestInterruption();
m_search_result_thread->quit(); m_search_result_thread->quit();
m_seach_app_thread->stop();
} }
return QWidget::keyPressEvent(event); return QWidget::keyPressEvent(event);
} }

View File

@ -48,6 +48,7 @@
#include "index/index-generator.h" #include "index/index-generator.h"
#include "settings-widget.h" #include "settings-widget.h"
#include "libsearch.h" #include "libsearch.h"
#include "search-app-thread.h"
class SearchResult; class SearchResult;
class MainWindow : public QMainWindow class MainWindow : public QMainWindow
@ -87,13 +88,13 @@ private:
QGSettings * m_transparency_gsettings = nullptr; QGSettings * m_transparency_gsettings = nullptr;
double getTransparentData(); double getTransparentData();
QVector<QStringList> m_app_setting_lists;
QStringList m_dirList; QStringList m_dirList;
QQueue<QString> *m_search_result_file = nullptr; QQueue<QString> *m_search_result_file = nullptr;
QQueue<QString> *m_search_result_dir = nullptr; QQueue<QString> *m_search_result_dir = nullptr;
QQueue<QPair<QString,QStringList>> *m_search_result_content = nullptr; QQueue<QPair<QString,QStringList>> *m_search_result_content = nullptr;
SearchResult * m_search_result_thread = nullptr; SearchResult * m_search_result_thread = nullptr;
SearchAppThread * m_seach_app_thread = nullptr;
FileSearcher* m_searcher = nullptr; FileSearcher* m_searcher = nullptr;
QSystemTrayIcon *m_sys_tray_icon; QSystemTrayIcon *m_sys_tray_icon;

View File

@ -159,6 +159,23 @@ void SearchItemModel::setList(QStringList list)
this->endResetModel(); 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 * @brief SearchItemModel::removeItem
*/ */
@ -172,3 +189,17 @@ void SearchItemModel::clear()
m_item->clear(); m_item->clear();
this->endResetModel(); 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);
}
}

View File

@ -54,8 +54,11 @@ public:
void appendItem(QString); void appendItem(QString);
void setList(QStringList); void setList(QStringList);
void setAppList(const QStringList&, const QStringList&);
void appendBestItem(const QPair<int, QString>&);
void removeItem(QString); void removeItem(QString);
void clear(); void clear();
void setBestAppIcon(const QString &, const bool &);
private : private :
SearchItem * m_item = nullptr; SearchItem * m_item = nullptr;

View File

@ -45,17 +45,22 @@ QIcon SearchItem::getIcon(int index) {
case Dirs : case Dirs :
case Files : //文件,返回文件图标 case Files : //文件,返回文件图标
return FileUtils::getFileIcon(QString("file://%1").arg(m_pathlist.at(index))); return FileUtils::getFileIcon(QString("file://%1").arg(m_pathlist.at(index)));
case Apps : //应用,返回应用图标 case Apps : {//应用,返回应用图标
return FileUtils::getAppIcon(m_pathlist.at(index)); // return FileUtils::getAppIcon(m_pathlist.at(index));
case Best : {//最佳匹配,含全部类型,需要自己判断,返回不同类型的图标 if (m_app_pathlist.length() > index && m_app_pathlist.at(index) == "") { //未安装,存储的是图标路径
// return QIcon(":/res/icons/edit-find-symbolic.svg"); return QIcon(m_app_iconlist.at(index));
if (m_pathlist.at(index).endsWith(".desktop")) { } else if (m_app_pathlist.length() > index) { //已安装,存储的是图标名
return FileUtils::getAppIcon(m_pathlist.at(index)); if (QIcon::fromTheme(m_app_iconlist.at(index)).isNull()) {
} else if (QFileInfo(m_pathlist.at(index)).isFile() || QFileInfo(m_pathlist.at(index)).isDir()) { return QIcon(":/res/icons/desktop.png");
return FileUtils::getFileIcon(QString("file://%1").arg(m_pathlist.at(index)));
} else { } else {
return FileUtils::getSettingIcon(m_pathlist.at(index), false); return QIcon::fromTheme(m_app_iconlist.at(index));
} }
} else {
return QIcon(":/res/icons/desktop.png");
}
}
case Best : {//最佳匹配,含全部类型,需要自己判断,返回不同类型的图标
return getBestIcon(index);
} }
default: default:
return QIcon(":/res/icons/edit-find-symbolic.svg"); return QIcon(":/res/icons/edit-find-symbolic.svg");
@ -77,22 +82,66 @@ QString SearchItem::getName(int index) {
case Dirs : case Dirs :
case Files : //文件,返回文件名 case Files : //文件,返回文件名
return FileUtils::getFileName(m_pathlist.at(index)); return FileUtils::getFileName(m_pathlist.at(index));
case Apps : //应用,返回应用名 case Apps : {//应用,返回应用名
return FileUtils::getAppName(m_pathlist.at(index)); 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));
} }
case Best : //最佳匹配,含全部类型,需要自己判断,返回不同类型的名称
return getBestName(index);
default: default:
return m_pathlist.at(index); 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 * @brief SearchItem::setSearchList
* @param type * @param type
@ -117,4 +166,7 @@ int SearchItem::getCurrentSize() {
void SearchItem::clear() void SearchItem::clear()
{ {
m_pathlist.clear(); m_pathlist.clear();
m_app_pathlist.clear();
m_app_iconlist.clear();
m_bestList.clear();
} }

View File

@ -56,9 +56,16 @@ private:
int m_searchtype = 0; int m_searchtype = 0;
QStringList m_pathlist; 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); QIcon getIcon(int);
QString getName(int); QString getName(int);
QIcon getBestIcon(const int &);
QString getBestName(const int &);
Q_SIGNALS: Q_SIGNALS:

54
src/search-app-thread.cpp Normal file
View File

@ -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);
}

25
src/search-app-thread.h Normal file
View File

@ -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

View File

@ -29,6 +29,7 @@ SOURCES += \
input-box.cpp \ input-box.cpp \
main.cpp \ main.cpp \
mainwindow.cpp \ mainwindow.cpp \
search-app-thread.cpp \
search-result.cpp \ search-result.cpp \
settings-widget.cpp \ settings-widget.cpp \
xatom-helper.cpp xatom-helper.cpp
@ -38,6 +39,7 @@ HEADERS += \
content-widget.h \ content-widget.h \
input-box.h \ input-box.h \
mainwindow.h \ mainwindow.h \
search-app-thread.h \
search-result.h \ search-result.h \
settings-widget.h \ settings-widget.h \
xatom-helper.h xatom-helper.h

View File

@ -4,57 +4,57 @@
<context> <context>
<name>ContentWidget</name> <name>ContentWidget</name>
<message> <message>
<location filename="../../src/content-widget.cpp" line="354"/> <location filename="../../src/content-widget.cpp" line="370"/>
<source>Recently Opened</source> <source>Recently Opened</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="390"/> <location filename="../../src/content-widget.cpp" line="406"/>
<source>Open Quickly</source> <source>Open Quickly</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="391"/> <location filename="../../src/content-widget.cpp" line="407"/>
<source>Commonly Used</source> <source>Commonly Used</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="653"/> <location filename="../../src/content-widget.cpp" line="670"/>
<source>Apps</source> <source>Apps</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="655"/> <location filename="../../src/content-widget.cpp" line="672"/>
<source>Settings</source> <source>Settings</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="657"/> <location filename="../../src/content-widget.cpp" line="674"/>
<source>Files</source> <source>Files</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="659"/> <location filename="../../src/content-widget.cpp" line="676"/>
<source>Dirs</source> <source>Dirs</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="661"/> <location filename="../../src/content-widget.cpp" line="678"/>
<source>File Contents</source> <source>File Contents</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="663"/> <location filename="../../src/content-widget.cpp" line="680"/>
<source>Best Matches</source> <source>Best Matches</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="665"/> <location filename="../../src/content-widget.cpp" line="682"/>
<source>Web Pages</source> <source>Web Pages</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="667"/> <location filename="../../src/content-widget.cpp" line="684"/>
<source>Unknown</source> <source>Unknown</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -75,12 +75,12 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/mainwindow.cpp" line="115"/> <location filename="../../src/mainwindow.cpp" line="121"/>
<source>Global Search</source> <source>Global Search</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/mainwindow.cpp" line="169"/> <location filename="../../src/mainwindow.cpp" line="175"/>
<source>Search</source> <source>Search</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -88,35 +88,40 @@
<context> <context>
<name>OptionView</name> <name>OptionView</name>
<message> <message>
<location filename="../../src/control/option-view.cpp" line="96"/> <location filename="../../src/control/option-view.cpp" line="101"/>
<source>Open</source> <source>Open</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>Add Shortcut to Desktop</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>Add Shortcut to Panel</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/option-view.cpp" line="117"/> <location filename="../../src/control/option-view.cpp" line="122"/>
<source>Open path</source> <source>Open path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/option-view.cpp" line="124"/> <location filename="../../src/control/option-view.cpp" line="129"/>
<source>Copy path</source> <source>Copy path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../../src/control/option-view.cpp" line="136"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>
<message> <message>
<location filename="../../src/main.cpp" line="149"/> <location filename="../../src/main.cpp" line="150"/>
<source>ukui-search is already running!</source> <source>ukui-search is already running!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -132,22 +137,22 @@
<context> <context>
<name>SearchDetailView</name> <name>SearchDetailView</name>
<message> <message>
<location filename="../../src/control/search-detail-view.cpp" line="406"/> <location filename="../../src/control/search-detail-view.cpp" line="485"/>
<source>Path</source> <source>Path</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>Last time modified</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>Application</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>Document</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -155,55 +160,55 @@
<context> <context>
<name>SettingsWidget</name> <name>SettingsWidget</name>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="69"/> <location filename="../../src/settings-widget.cpp" line="70"/>
<location filename="../../src/settings-widget.cpp" line="267"/> <location filename="../../src/settings-widget.cpp" line="281"/>
<location filename="../../src/settings-widget.cpp" line="470"/> <location filename="../../src/settings-widget.cpp" line="514"/>
<source>Search</source> <source>Search</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="99"/> <location filename="../../src/settings-widget.cpp" line="100"/>
<location filename="../../src/settings-widget.cpp" line="101"/> <location filename="../../src/settings-widget.cpp" line="102"/>
<source>...</source> <source>...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>Following folders will not be searched. You can set it by adding and removing folders.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="120"/> <location filename="../../src/settings-widget.cpp" line="121"/>
<source>Add ignored folders</source> <source>Add ignored folders</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>Please select search engine you preferred.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="156"/> <location filename="../../src/settings-widget.cpp" line="157"/>
<source>baidu</source> <source>baidu</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="158"/> <location filename="../../src/settings-widget.cpp" line="159"/>
<source>sougou</source> <source>sougou</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="160"/> <location filename="../../src/settings-widget.cpp" line="161"/>
<source>360</source> <source>360</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="359"/> <location filename="../../src/settings-widget.cpp" line="403"/>
<source>Cancel</source> <source>Cancel</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="298"/> <location filename="../../src/settings-widget.cpp" line="342"/>
<source>Creating ...</source> <source>Creating ...</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -213,97 +218,97 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="92"/> <location filename="../../src/settings-widget.cpp" line="93"/>
<source>&lt;h2&gt;Settings&lt;/h2&gt;</source> <source>&lt;h2&gt;Settings&lt;/h2&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="97"/> <location filename="../../src/settings-widget.cpp" line="98"/>
<source>&lt;h3&gt;Index State&lt;/h3&gt;</source> <source>&lt;h3&gt;Index State&lt;/h3&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="109"/> <location filename="../../src/settings-widget.cpp" line="110"/>
<source>&lt;h3&gt;File Index Settings&lt;/h3&gt;</source> <source>&lt;h3&gt;File Index Settings&lt;/h3&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="141"/> <location filename="../../src/settings-widget.cpp" line="142"/>
<source>&lt;h3&gt;Search Engine Settings&lt;/h3&gt;</source> <source>&lt;h3&gt;Search Engine Settings&lt;/h3&gt;</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<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> <source>Whether to delete this directory?</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="268"/> <location filename="../../src/settings-widget.cpp" line="282"/>
<source>Yes</source> <source>Yes</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="269"/> <location filename="../../src/settings-widget.cpp" line="283"/>
<source>No</source> <source>No</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="301"/> <location filename="../../src/settings-widget.cpp" line="345"/>
<source>Done</source> <source>Done</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="309"/> <location filename="../../src/settings-widget.cpp" line="353"/>
<source>Index Entry: %1</source> <source>Index Entry: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="353"/> <location filename="../../src/settings-widget.cpp" line="397"/>
<source>Directories</source> <source>Directories</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="354"/> <location filename="../../src/settings-widget.cpp" line="398"/>
<source>select blocked folder</source> <source>select blocked folder</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="355"/> <location filename="../../src/settings-widget.cpp" line="399"/>
<source>Select</source> <source>Select</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="356"/> <location filename="../../src/settings-widget.cpp" line="400"/>
<source>Position: </source> <source>Position: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="357"/> <location filename="../../src/settings-widget.cpp" line="401"/>
<source>FileName: </source> <source>FileName: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="358"/> <location filename="../../src/settings-widget.cpp" line="402"/>
<source>FileType: </source> <source>FileType: </source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="454"/> <location filename="../../src/settings-widget.cpp" line="498"/>
<source>Choosen path is Empty!</source> <source>Choosen path is Empty!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="458"/> <location filename="../../src/settings-widget.cpp" line="502"/>
<source>Choosen path is not in &quot;home&quot;!</source> <source>Choosen path is not in &quot;home&quot;!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="462"/> <location filename="../../src/settings-widget.cpp" line="506"/>
<source>Its&apos; parent folder has been blocked!</source> <source>Its&apos; parent folder has been blocked!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="466"/> <location filename="../../src/settings-widget.cpp" line="510"/>
<source>Set blocked folder failed!</source> <source>Set blocked folder failed!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,57 +4,57 @@
<context> <context>
<name>ContentWidget</name> <name>ContentWidget</name>
<message> <message>
<location filename="../../src/content-widget.cpp" line="354"/> <location filename="../../src/content-widget.cpp" line="370"/>
<source>Recently Opened</source> <source>Recently Opened</source>
<translation>Yeni ılan</translation> <translation>Yeni ılan</translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="390"/> <location filename="../../src/content-widget.cpp" line="406"/>
<source>Open Quickly</source> <source>Open Quickly</source>
<translation>Hızlı </translation> <translation>Hızlı </translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="391"/> <location filename="../../src/content-widget.cpp" line="407"/>
<source>Commonly Used</source> <source>Commonly Used</source>
<translation>Genel olarak kullanılan</translation> <translation>Genel olarak kullanılan</translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="653"/> <location filename="../../src/content-widget.cpp" line="670"/>
<source>Apps</source> <source>Apps</source>
<translation>Uygulamalar</translation> <translation>Uygulamalar</translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="655"/> <location filename="../../src/content-widget.cpp" line="672"/>
<source>Settings</source> <source>Settings</source>
<translation>Ayarlar</translation> <translation>Ayarlar</translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="657"/> <location filename="../../src/content-widget.cpp" line="674"/>
<source>Files</source> <source>Files</source>
<translation>Dosyalar</translation> <translation>Dosyalar</translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="659"/> <location filename="../../src/content-widget.cpp" line="676"/>
<source>Dirs</source> <source>Dirs</source>
<translation>Dizinler</translation> <translation>Dizinler</translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="661"/> <location filename="../../src/content-widget.cpp" line="678"/>
<source>File Contents</source> <source>File Contents</source>
<translation>Dosya İçeriği</translation> <translation>Dosya İçeriği</translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="663"/> <location filename="../../src/content-widget.cpp" line="680"/>
<source>Best Matches</source> <source>Best Matches</source>
<translation>En İyi Eşleşen</translation> <translation>En İyi Eşleşen</translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="665"/> <location filename="../../src/content-widget.cpp" line="682"/>
<source>Web Pages</source> <source>Web Pages</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="667"/> <location filename="../../src/content-widget.cpp" line="684"/>
<source>Unknown</source> <source>Unknown</source>
<translation>Bilinmeyen</translation> <translation>Bilinmeyen</translation>
</message> </message>
@ -75,12 +75,12 @@
<translation>ukui-ara</translation> <translation>ukui-ara</translation>
</message> </message>
<message> <message>
<location filename="../../src/mainwindow.cpp" line="115"/> <location filename="../../src/mainwindow.cpp" line="121"/>
<source>Global Search</source> <source>Global Search</source>
<translation>Genel Arama</translation> <translation>Genel Arama</translation>
</message> </message>
<message> <message>
<location filename="../../src/mainwindow.cpp" line="169"/> <location filename="../../src/mainwindow.cpp" line="175"/>
<source>Search</source> <source>Search</source>
<translation>Ara</translation> <translation>Ara</translation>
</message> </message>
@ -88,35 +88,40 @@
<context> <context>
<name>OptionView</name> <name>OptionView</name>
<message> <message>
<location filename="../../src/control/option-view.cpp" line="96"/> <location filename="../../src/control/option-view.cpp" line="101"/>
<source>Open</source> <source>Open</source>
<translation></translation> <translation></translation>
</message> </message>
<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> <source>Add Shortcut to Desktop</source>
<translation>Masaüstüne Kısayol Ekle</translation> <translation>Masaüstüne Kısayol Ekle</translation>
</message> </message>
<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> <source>Add Shortcut to Panel</source>
<translation>Panele Kısayol Ekle</translation> <translation>Panele Kısayol Ekle</translation>
</message> </message>
<message> <message>
<location filename="../../src/control/option-view.cpp" line="117"/> <location filename="../../src/control/option-view.cpp" line="122"/>
<source>Open path</source> <source>Open path</source>
<translation>Yolu </translation> <translation>Yolu </translation>
</message> </message>
<message> <message>
<location filename="../../src/control/option-view.cpp" line="124"/> <location filename="../../src/control/option-view.cpp" line="129"/>
<source>Copy path</source> <source>Copy path</source>
<translation>Yolu kopyala</translation> <translation>Yolu kopyala</translation>
</message> </message>
<message>
<location filename="../../src/control/option-view.cpp" line="136"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>
<message> <message>
<location filename="../../src/main.cpp" line="149"/> <location filename="../../src/main.cpp" line="150"/>
<source>ukui-search is already running!</source> <source>ukui-search is already running!</source>
<translation>ukui-bul zaten çalışıyor!</translation> <translation>ukui-bul zaten çalışıyor!</translation>
</message> </message>
@ -132,22 +137,22 @@
<context> <context>
<name>SearchDetailView</name> <name>SearchDetailView</name>
<message> <message>
<location filename="../../src/control/search-detail-view.cpp" line="406"/> <location filename="../../src/control/search-detail-view.cpp" line="485"/>
<source>Path</source> <source>Path</source>
<translation>Yol</translation> <translation>Yol</translation>
</message> </message>
<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> <source>Last time modified</source>
<translation>Son değiştirilme zamanı</translation> <translation>Son değiştirilme zamanı</translation>
</message> </message>
<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> <source>Application</source>
<translation>Uygulama</translation> <translation>Uygulama</translation>
</message> </message>
<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> <source>Document</source>
<translation>Belge</translation> <translation>Belge</translation>
</message> </message>
@ -155,55 +160,55 @@
<context> <context>
<name>SettingsWidget</name> <name>SettingsWidget</name>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="69"/> <location filename="../../src/settings-widget.cpp" line="70"/>
<location filename="../../src/settings-widget.cpp" line="267"/> <location filename="../../src/settings-widget.cpp" line="281"/>
<location filename="../../src/settings-widget.cpp" line="470"/> <location filename="../../src/settings-widget.cpp" line="514"/>
<source>Search</source> <source>Search</source>
<translation>Ara</translation> <translation>Ara</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="99"/> <location filename="../../src/settings-widget.cpp" line="100"/>
<location filename="../../src/settings-widget.cpp" line="101"/> <location filename="../../src/settings-widget.cpp" line="102"/>
<source>...</source> <source>...</source>
<translation>...</translation> <translation>...</translation>
</message> </message>
<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> <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> <translation>Aşağıdaki klasörler aranmayacaktır. Klasör ekleyip kaldırarak ayarlayabilirsiniz.</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="120"/> <location filename="../../src/settings-widget.cpp" line="121"/>
<source>Add ignored folders</source> <source>Add ignored folders</source>
<translation>Göz ardı edilen klasörleri ekleyin</translation> <translation>Göz ardı edilen klasörleri ekleyin</translation>
</message> </message>
<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> <source>Please select search engine you preferred.</source>
<translation>Lütfen tercih ettiğiniz arama motorunu seçin.</translation> <translation>Lütfen tercih ettiğiniz arama motorunu seçin.</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="156"/> <location filename="../../src/settings-widget.cpp" line="157"/>
<source>baidu</source> <source>baidu</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="158"/> <location filename="../../src/settings-widget.cpp" line="159"/>
<source>sougou</source> <source>sougou</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="160"/> <location filename="../../src/settings-widget.cpp" line="161"/>
<source>360</source> <source>360</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="359"/> <location filename="../../src/settings-widget.cpp" line="403"/>
<source>Cancel</source> <source>Cancel</source>
<translation>İptal</translation> <translation>İptal</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="298"/> <location filename="../../src/settings-widget.cpp" line="342"/>
<source>Creating ...</source> <source>Creating ...</source>
<translation>Oluşturuluyor...</translation> <translation>Oluşturuluyor...</translation>
</message> </message>
@ -213,97 +218,97 @@
<translation>ukui-bul</translation> <translation>ukui-bul</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="92"/> <location filename="../../src/settings-widget.cpp" line="93"/>
<source>&lt;h2&gt;Settings&lt;/h2&gt;</source> <source>&lt;h2&gt;Settings&lt;/h2&gt;</source>
<translation>&lt;h2&gt;Ayarlar&lt;/h2&gt;</translation> <translation>&lt;h2&gt;Ayarlar&lt;/h2&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="97"/> <location filename="../../src/settings-widget.cpp" line="98"/>
<source>&lt;h3&gt;Index State&lt;/h3&gt;</source> <source>&lt;h3&gt;Index State&lt;/h3&gt;</source>
<translation>&lt;h3&gt;Dizin Durumu&lt;/h3&gt;</translation> <translation>&lt;h3&gt;Dizin Durumu&lt;/h3&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="109"/> <location filename="../../src/settings-widget.cpp" line="110"/>
<source>&lt;h3&gt;File Index Settings&lt;/h3&gt;</source> <source>&lt;h3&gt;File Index Settings&lt;/h3&gt;</source>
<translation>&lt;h3&gt;Dosya Dizini Ayarları&lt;/h3&gt;</translation> <translation>&lt;h3&gt;Dosya Dizini Ayarları&lt;/h3&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="141"/> <location filename="../../src/settings-widget.cpp" line="142"/>
<source>&lt;h3&gt;Search Engine Settings&lt;/h3&gt;</source> <source>&lt;h3&gt;Search Engine Settings&lt;/h3&gt;</source>
<translation>&lt;h3&gt;SArama Motoru Ayarları&lt;/h3&gt;</translation> <translation>&lt;h3&gt;SArama Motoru Ayarları&lt;/h3&gt;</translation>
</message> </message>
<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> <source>Whether to delete this directory?</source>
<translation>Bu dizini silinsin mi?</translation> <translation>Bu dizini silinsin mi?</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="268"/> <location filename="../../src/settings-widget.cpp" line="282"/>
<source>Yes</source> <source>Yes</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="269"/> <location filename="../../src/settings-widget.cpp" line="283"/>
<source>No</source> <source>No</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="301"/> <location filename="../../src/settings-widget.cpp" line="345"/>
<source>Done</source> <source>Done</source>
<translation>Tamam</translation> <translation>Tamam</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="309"/> <location filename="../../src/settings-widget.cpp" line="353"/>
<source>Index Entry: %1</source> <source>Index Entry: %1</source>
<translation>Dizin Girişi: %1</translation> <translation>Dizin Girişi: %1</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="353"/> <location filename="../../src/settings-widget.cpp" line="397"/>
<source>Directories</source> <source>Directories</source>
<translation>Dizinler</translation> <translation>Dizinler</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="354"/> <location filename="../../src/settings-widget.cpp" line="398"/>
<source>select blocked folder</source> <source>select blocked folder</source>
<translation>engellenen klasörü seç</translation> <translation>engellenen klasörü seç</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="355"/> <location filename="../../src/settings-widget.cpp" line="399"/>
<source>Select</source> <source>Select</source>
<translation>Seç</translation> <translation>Seç</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="356"/> <location filename="../../src/settings-widget.cpp" line="400"/>
<source>Position: </source> <source>Position: </source>
<translation>Pozisyon: </translation> <translation>Pozisyon: </translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="357"/> <location filename="../../src/settings-widget.cpp" line="401"/>
<source>FileName: </source> <source>FileName: </source>
<translation>Dosya Adı: </translation> <translation>Dosya Adı: </translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="358"/> <location filename="../../src/settings-widget.cpp" line="402"/>
<source>FileType: </source> <source>FileType: </source>
<translation>Dosya Türü: </translation> <translation>Dosya Türü: </translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="454"/> <location filename="../../src/settings-widget.cpp" line="498"/>
<source>Choosen path is Empty!</source> <source>Choosen path is Empty!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="458"/> <location filename="../../src/settings-widget.cpp" line="502"/>
<source>Choosen path is not in &quot;home&quot;!</source> <source>Choosen path is not in &quot;home&quot;!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="462"/> <location filename="../../src/settings-widget.cpp" line="506"/>
<source>Its&apos; parent folder has been blocked!</source> <source>Its&apos; parent folder has been blocked!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="466"/> <location filename="../../src/settings-widget.cpp" line="510"/>
<source>Set blocked folder failed!</source> <source>Set blocked folder failed!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -4,57 +4,57 @@
<context> <context>
<name>ContentWidget</name> <name>ContentWidget</name>
<message> <message>
<location filename="../../src/content-widget.cpp" line="354"/> <location filename="../../src/content-widget.cpp" line="370"/>
<source>Recently Opened</source> <source>Recently Opened</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="390"/> <location filename="../../src/content-widget.cpp" line="406"/>
<source>Open Quickly</source> <source>Open Quickly</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="391"/> <location filename="../../src/content-widget.cpp" line="407"/>
<source>Commonly Used</source> <source>Commonly Used</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="653"/> <location filename="../../src/content-widget.cpp" line="670"/>
<source>Apps</source> <source>Apps</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="655"/> <location filename="../../src/content-widget.cpp" line="672"/>
<source>Settings</source> <source>Settings</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="657"/> <location filename="../../src/content-widget.cpp" line="674"/>
<source>Files</source> <source>Files</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="659"/> <location filename="../../src/content-widget.cpp" line="676"/>
<source>Dirs</source> <source>Dirs</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="661"/> <location filename="../../src/content-widget.cpp" line="678"/>
<source>File Contents</source> <source>File Contents</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="663"/> <location filename="../../src/content-widget.cpp" line="680"/>
<source>Best Matches</source> <source>Best Matches</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="665"/> <location filename="../../src/content-widget.cpp" line="682"/>
<source>Web Pages</source> <source>Web Pages</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/content-widget.cpp" line="667"/> <location filename="../../src/content-widget.cpp" line="684"/>
<source>Unknown</source> <source>Unknown</source>
<translation></translation> <translation></translation>
</message> </message>
@ -75,12 +75,12 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/mainwindow.cpp" line="115"/> <location filename="../../src/mainwindow.cpp" line="121"/>
<source>Global Search</source> <source>Global Search</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/mainwindow.cpp" line="169"/> <location filename="../../src/mainwindow.cpp" line="175"/>
<source>Search</source> <source>Search</source>
<translation></translation> <translation></translation>
</message> </message>
@ -88,35 +88,40 @@
<context> <context>
<name>OptionView</name> <name>OptionView</name>
<message> <message>
<location filename="../../src/control/option-view.cpp" line="96"/> <location filename="../../src/control/option-view.cpp" line="101"/>
<source>Open</source> <source>Open</source>
<translation></translation> <translation></translation>
</message> </message>
<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> <source>Add Shortcut to Desktop</source>
<translation></translation> <translation></translation>
</message> </message>
<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> <source>Add Shortcut to Panel</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/option-view.cpp" line="117"/> <location filename="../../src/control/option-view.cpp" line="122"/>
<source>Open path</source> <source>Open path</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/control/option-view.cpp" line="124"/> <location filename="../../src/control/option-view.cpp" line="129"/>
<source>Copy path</source> <source>Copy path</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<location filename="../../src/control/option-view.cpp" line="136"/>
<source>Install</source>
<translation></translation>
</message>
</context> </context>
<context> <context>
<name>QObject</name> <name>QObject</name>
<message> <message>
<location filename="../../src/main.cpp" line="149"/> <location filename="../../src/main.cpp" line="150"/>
<source>ukui-search is already running!</source> <source>ukui-search is already running!</source>
<translation></translation> <translation></translation>
</message> </message>
@ -132,22 +137,22 @@
<context> <context>
<name>SearchDetailView</name> <name>SearchDetailView</name>
<message> <message>
<location filename="../../src/control/search-detail-view.cpp" line="406"/> <location filename="../../src/control/search-detail-view.cpp" line="485"/>
<source>Path</source> <source>Path</source>
<translation></translation> <translation></translation>
</message> </message>
<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> <source>Last time modified</source>
<translation></translation> <translation></translation>
</message> </message>
<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> <source>Application</source>
<translation></translation> <translation></translation>
</message> </message>
<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> <source>Document</source>
<translation></translation> <translation></translation>
</message> </message>
@ -155,110 +160,110 @@
<context> <context>
<name>SettingsWidget</name> <name>SettingsWidget</name>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="69"/> <location filename="../../src/settings-widget.cpp" line="70"/>
<location filename="../../src/settings-widget.cpp" line="267"/> <location filename="../../src/settings-widget.cpp" line="281"/>
<location filename="../../src/settings-widget.cpp" line="470"/> <location filename="../../src/settings-widget.cpp" line="514"/>
<source>Search</source> <source>Search</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="92"/> <location filename="../../src/settings-widget.cpp" line="93"/>
<source>&lt;h2&gt;Settings&lt;/h2&gt;</source> <source>&lt;h2&gt;Settings&lt;/h2&gt;</source>
<translation>&lt;h2&gt;&lt;/h2&gt;</translation> <translation>&lt;h2&gt;&lt;/h2&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="97"/> <location filename="../../src/settings-widget.cpp" line="98"/>
<source>&lt;h3&gt;Index State&lt;/h3&gt;</source> <source>&lt;h3&gt;Index State&lt;/h3&gt;</source>
<translation>&lt;h3&gt;&lt;/h3&gt;</translation> <translation>&lt;h3&gt;&lt;/h3&gt;</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="99"/> <location filename="../../src/settings-widget.cpp" line="100"/>
<location filename="../../src/settings-widget.cpp" line="101"/> <location filename="../../src/settings-widget.cpp" line="102"/>
<source>...</source> <source>...</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="109"/> <location filename="../../src/settings-widget.cpp" line="110"/>
<source>&lt;h3&gt;File Index Settings&lt;/h3&gt;</source> <source>&lt;h3&gt;File Index Settings&lt;/h3&gt;</source>
<translation>&lt;h3&gt;&lt;/h3&gt;</translation> <translation>&lt;h3&gt;&lt;/h3&gt;</translation>
</message> </message>
<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> <source>Following folders will not be searched. You can set it by adding and removing folders.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="120"/> <location filename="../../src/settings-widget.cpp" line="121"/>
<source>Add ignored folders</source> <source>Add ignored folders</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="141"/> <location filename="../../src/settings-widget.cpp" line="142"/>
<source>&lt;h3&gt;Search Engine Settings&lt;/h3&gt;</source> <source>&lt;h3&gt;Search Engine Settings&lt;/h3&gt;</source>
<translation>&lt;h3&gt;&lt;/h3&gt;</translation> <translation>&lt;h3&gt;&lt;/h3&gt;</translation>
</message> </message>
<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> <source>Please select search engine you preferred.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="156"/> <location filename="../../src/settings-widget.cpp" line="157"/>
<source>baidu</source> <source>baidu</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="158"/> <location filename="../../src/settings-widget.cpp" line="159"/>
<source>sougou</source> <source>sougou</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="160"/> <location filename="../../src/settings-widget.cpp" line="161"/>
<source>360</source> <source>360</source>
<translation>360</translation> <translation>360</translation>
</message> </message>
<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> <source>Whether to delete this directory?</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="268"/> <location filename="../../src/settings-widget.cpp" line="282"/>
<source>Yes</source> <source>Yes</source>
<translation>(Y)</translation> <translation>(Y)</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="269"/> <location filename="../../src/settings-widget.cpp" line="283"/>
<source>No</source> <source>No</source>
<translation>(N)</translation> <translation>(N)</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="359"/> <location filename="../../src/settings-widget.cpp" line="403"/>
<source>Cancel</source> <source>Cancel</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="454"/> <location filename="../../src/settings-widget.cpp" line="498"/>
<source>Choosen path is Empty!</source> <source>Choosen path is Empty!</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="458"/> <location filename="../../src/settings-widget.cpp" line="502"/>
<source>Choosen path is not in &quot;home&quot;!</source> <source>Choosen path is not in &quot;home&quot;!</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="462"/> <location filename="../../src/settings-widget.cpp" line="506"/>
<source>Its&apos; parent folder has been blocked!</source> <source>Its&apos; parent folder has been blocked!</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="466"/> <location filename="../../src/settings-widget.cpp" line="510"/>
<source>Set blocked folder failed!</source> <source>Set blocked folder failed!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="298"/> <location filename="../../src/settings-widget.cpp" line="342"/>
<source>Creating ...</source> <source>Creating ...</source>
<translation></translation> <translation></translation>
</message> </message>
@ -268,42 +273,42 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="301"/> <location filename="../../src/settings-widget.cpp" line="345"/>
<source>Done</source> <source>Done</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="309"/> <location filename="../../src/settings-widget.cpp" line="353"/>
<source>Index Entry: %1</source> <source>Index Entry: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="353"/> <location filename="../../src/settings-widget.cpp" line="397"/>
<source>Directories</source> <source>Directories</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="354"/> <location filename="../../src/settings-widget.cpp" line="398"/>
<source>select blocked folder</source> <source>select blocked folder</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="355"/> <location filename="../../src/settings-widget.cpp" line="399"/>
<source>Select</source> <source>Select</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="356"/> <location filename="../../src/settings-widget.cpp" line="400"/>
<source>Position: </source> <source>Position: </source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="357"/> <location filename="../../src/settings-widget.cpp" line="401"/>
<source>FileName: </source> <source>FileName: </source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location filename="../../src/settings-widget.cpp" line="358"/> <location filename="../../src/settings-widget.cpp" line="402"/>
<source>FileType: </source> <source>FileType: </source>
<translation></translation> <translation></translation>
</message> </message>