-
Notifications
You must be signed in to change notification settings - Fork 19
/
SearchDlg.cpp
98 lines (84 loc) · 2.12 KB
/
SearchDlg.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#include <QDebug>
#include "SearchDlg.h"
#include <QtGui/QCompleter>
#include <QtGui/QFileDialog>
#include <QFileSystemModel>
SearchDlg::SearchDlg(QWidget* parent) : QDialog(parent) {
ui.setupUi(this);
QCompleter *completer = new QCompleter(this);
model = new QFileSystemModel(completer);
model->setRootPath("");
completer->setModel(model);
ui.dirEd->setCompleter(completer);
connect(ui.browseBtn, SIGNAL(clicked()), SLOT(slotBrowse()));
ui.findInFilesFrame->hide();
}
void SearchDlg::slotBrowse() {
QString dir = ui.dirEd->text();
dir = QFileDialog::getExistingDirectory(parentWidget(), tr("Browse"), dir);
if ( !dir.isEmpty() ) {
ui.dirEd->setText(dir);
model->setRootPath(dir);
}
}
// getters
QString SearchDlg::findText() const {
return ui.findEd->text();
}
bool SearchDlg::searchInFiles() const {
return ui.findInFilesBtn->isChecked();
}
QString SearchDlg::startDir() const {
return ui.dirEd->text();
}
bool SearchDlg::recursive() const {
return ui.recursiveChk->isChecked();
}
QString SearchDlg::filePatterns() const {
return ui.patternsEd->text();
}
int SearchDlg::patternVariant() const {
if ( ui.inclFilesBtn->isChecked() ) {
return 1;
}
else if ( ui.exclFilesBtn->isChecked() ) {
return 2;
}
else if ( ui.allFilesBtn->isChecked() ) {
return 0;
}
else {
return -1;
}
}
// setters
void SearchDlg::setFindText(const QString& text) {
ui.findEd->setText(text);
}
void SearchDlg::setStartDir(const QString& dir) {
ui.dirEd->setText(dir);
model->setRootPath(dir);
}
void SearchDlg::setSearchInFiles(bool inFiles) {
if ( inFiles ) {
ui.findInFilesBtn->setChecked(true);
ui.findInFilesFrame->hide();
}
else {
ui.findInDirBtn->setChecked(true);
ui.findInFilesFrame->show();
}
}
void SearchDlg::setRecursive(bool rec) {
ui.recursiveChk->setChecked(rec);
}
void SearchDlg::setFilePatterns (const QString& patterns) {
ui.patternsEd->setText(patterns);
}
void SearchDlg::setPatternVariant(int var) {
switch ( var ) {
case 1 : ui.inclFilesBtn->setChecked(true); break;
case 2 : ui.exclFilesBtn->setChecked(true); break;
default : ui.allFilesBtn->setChecked(true);
}
}