/
ws_deepsearchwidget.cpp
64 lines (53 loc) · 1.99 KB
/
ws_deepsearchwidget.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "ws_deepsearchwidget.h"
const QString DeepSearchWidget::GROUP_SEARCH = "__SEARCH__";
DeepSearchWidget::DeepSearchWidget(QWidget *parent, QString clvFilePath) :
QWidget(parent)
{
clvFilePath_m = clvFilePath;
QVBoxLayout *layout = new QVBoxLayout(this);
QHBoxLayout *searchLineLayout = new QHBoxLayout();
searchWordArea_m = new QLineEdit(this);
searchWordArea_m->installEventFilter(this);
searchLineLayout->addWidget(searchWordArea_m);
QPushButton *searchButton = new QPushButton("search", this);
searchButton->connect(searchButton, SIGNAL(clicked()), this, SLOT(searchButtonClicked()));
searchLineLayout->addWidget(searchButton);
layout->addLayout(searchLineLayout);
searchLogView_m = new LogView(this, "", GROUP_SEARCH, clvFilePath_m, "", true, false);
layout->addWidget(searchLogView_m);
setLayout(layout);
searcher_m = new DeepCommandSearcher(this, clvFilePath_m);
progressDialog_m = new ProgressDialog(this, searcher_m);
connect(searcher_m, SIGNAL(signalSearchFinished(QString)), this, SLOT(searchFinished(QString)));
}
bool DeepSearchWidget::eventFilter(QObject *obj, QEvent *e){
if(obj == searchWordArea_m && e->type() == QEvent::KeyPress){
QKeyEvent *ke = (QKeyEvent*)e;
int key = ke->key();
if(key == Qt::Key_Enter || key == Qt::Key_Return){
searchButtonClicked();
}
}
}
void DeepSearchWidget::searchButtonClicked(){
searchLogView_m->unLoadLogs();
QString searchText = searchWordArea_m->text();
searchText = searchText.trimmed();
if(searchText == ""){
return;
}
searcher_m->setSearchText(searchText);
searcher_m->start();
}
void DeepSearchWidget::searchFinished(QString idListString){
if(idListString == ""){
return;
}
QStringList list = idListString.split(",");
QList<int> idList;
foreach(QString idText, list){
int id = idText.toInt();
idList.append(id);
}
searchLogView_m->loadLogs(idList);
}