feat(Searchbar): Add qtimer.
Description: 添加搜索框延时以避免搜索请求发送过于频繁 Log: 添加搜索框延时以避免搜索请求发送过于频繁
This commit is contained in:
parent
ded6461ad9
commit
21c47864d0
|
@ -1,4 +1,5 @@
|
||||||
#include "input-box.h"
|
#include "input-box.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief ukui-search顶部搜索界面
|
* @brief ukui-search顶部搜索界面
|
||||||
*/
|
*/
|
||||||
|
@ -62,12 +63,35 @@ UkuiSearchBarHLayout::UkuiSearchBarHLayout()
|
||||||
this->setAlignment(m_queryLineEdit,Qt::AlignCenter);
|
this->setAlignment(m_queryLineEdit,Qt::AlignCenter);
|
||||||
this->addWidget(m_queryLineEdit);
|
this->addWidget(m_queryLineEdit);
|
||||||
|
|
||||||
connect(m_queryLineEdit, SIGNAL(textChanged(QString)), SIGNAL(textChanged(QString)));
|
// connect(m_queryLineEdit, SIGNAL(textChanged(QString)), SIGNAL(textChanged(QString)));
|
||||||
|
m_timer = new QTimer;
|
||||||
|
QObject::connect(m_timer, &QTimer::timeout, this, [ = ](){
|
||||||
|
m_timer->stop();
|
||||||
|
Q_EMIT this->textChanged(m_queryLineEdit->text());
|
||||||
|
});
|
||||||
|
connect(m_queryLineEdit, &UKuiSearchLineEdit::textChanged, this, [ = ](QString text) {
|
||||||
|
if (m_isEmpty) {
|
||||||
|
m_isEmpty = false;
|
||||||
|
Q_EMIT this->textChanged(text);
|
||||||
|
} else {
|
||||||
|
if (text == "") {
|
||||||
|
m_isEmpty = true;
|
||||||
|
Q_EMIT this->textChanged(m_queryLineEdit->text());
|
||||||
|
m_timer->stop();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_timer->stop();
|
||||||
|
m_timer->start(0.2 * 1000);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
UkuiSearchBarHLayout::~UkuiSearchBarHLayout()
|
UkuiSearchBarHLayout::~UkuiSearchBarHLayout()
|
||||||
{
|
{
|
||||||
|
if (m_timer) {
|
||||||
|
delete m_timer;
|
||||||
|
m_timer = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include <QtDBus/QtDBus>
|
#include <QtDBus/QtDBus>
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
class UKuiSearchLineEdit;
|
class UKuiSearchLineEdit;
|
||||||
|
|
||||||
|
@ -36,6 +37,8 @@ public:
|
||||||
void clearText();
|
void clearText();
|
||||||
private:
|
private:
|
||||||
void initUI();
|
void initUI();
|
||||||
|
bool m_isEmpty = true;
|
||||||
|
QTimer * m_timer = nullptr;
|
||||||
|
|
||||||
UKuiSearchLineEdit *m_queryLineEdit=nullptr;
|
UKuiSearchLineEdit *m_queryLineEdit=nullptr;
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
#include <QStyleOption>
|
#include <QStyleOption>
|
||||||
#include <KWindowEffects>
|
#include <KWindowEffects>
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
|
#include "setting-match.h"
|
||||||
|
#include "app-match.h"
|
||||||
#include "kwindowsystem.h"
|
#include "kwindowsystem.h"
|
||||||
|
|
||||||
#include "file-utils.h"
|
#include "file-utils.h"
|
||||||
|
@ -215,13 +217,18 @@ void MainWindow::searchContent(QString searchcontent){
|
||||||
QVector<int> types;
|
QVector<int> types;
|
||||||
QVector<QStringList> lists;
|
QVector<QStringList> lists;
|
||||||
|
|
||||||
|
AppMatch * appMatchor = new AppMatch(this);
|
||||||
|
SettingsMatch * settingMatchor = new SettingsMatch(this);
|
||||||
|
|
||||||
//测试用数据
|
//测试用数据
|
||||||
QStringList list;
|
QStringList list;
|
||||||
list<<"/usr/share/applications/peony.desktop"<<"/usr/share/applications/ukui-control-center.desktop"<<"/usr/share/applications/wps-office-pdf.desktop";
|
list = appMatchor->startMatchApp(searchcontent);
|
||||||
|
// list<<"/usr/share/applications/peony.desktop"<<"/usr/share/applications/ukui-control-center.desktop"<<"/usr/share/applications/wps-office-pdf.desktop";
|
||||||
QStringList list2;
|
QStringList list2;
|
||||||
list2<<"/home/zjp/下载/搜索结果.png"<<"/home/zjp/下载/显示不全.mp4"<<"/home/zjp/下载/dmesg.log"<<"/home/zjp/下载/WiFi_AP选择.docx";
|
list2<<"/home/zjp/下载/搜索结果.png"<<"/home/zjp/下载/显示不全.mp4"<<"/home/zjp/下载/dmesg.log"<<"/home/zjp/下载/WiFi_AP选择.docx";
|
||||||
QStringList list3;
|
QStringList list3;
|
||||||
list3<<"About/关于/计算机属性"<<"Area/语言和地区/货币单位"<<"Datetime/时间和日期/手动更改时间"<<"Theme/主题/图标主题";
|
list3 = settingMatchor->matchstart(searchcontent);
|
||||||
|
// list3<<"About/关于/计算机属性"<<"Area/语言和地区/货币单位"<<"Datetime/时间和日期/手动更改时间"<<"Theme/主题/图标主题";
|
||||||
types.append(SearchItem::SearchType::Apps);
|
types.append(SearchItem::SearchType::Apps);
|
||||||
types.append(SearchItem::SearchType::Settings);
|
types.append(SearchItem::SearchType::Settings);
|
||||||
types.append(SearchItem::SearchType::Files);
|
types.append(SearchItem::SearchType::Files);
|
||||||
|
|
Loading…
Reference in New Issue