-
Notifications
You must be signed in to change notification settings - Fork 57
/
Copy pathfileselectorline.cpp
56 lines (48 loc) · 1.35 KB
/
fileselectorline.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
#include "fileselectorline.h"
#include "ui_fileselectorline.h"
FileSelectorLine::FileSelectorLine(QWidget *parent) :
QWidget(parent),
ui(new Ui::FileSelectorLine),
isSaveFileDlg(false)
{
ui->setupUi(this);
QCompleter *completer = new QCompleter(this);
QDirModel *dirModel = new QDirModel(completer);
dirModel->setFilter(QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);
completer->setModel(dirModel);
ui->lineEdit->setCompleter(completer);
}
QString FileSelectorLine::text()
{
return ui->lineEdit->text();
}
void FileSelectorLine::setText(const QString &s)
{
ui->lineEdit->setText(s);
}
void FileSelectorLine::setParam(bool ok, const QString &nameFilter)
{
isSaveFileDlg = ok;
this->nameFilter = nameFilter;
}
FileSelectorLine::~FileSelectorLine()
{
delete ui;
}
void FileSelectorLine::on_toolButton_clicked()
{
if (isSaveFileDlg)
{
const QString & file = QFileDialog::getOpenFileName
(this, tr("Open file"), QApplication::applicationDirPath(), nameFilter);
if (! file.isEmpty())
ui->lineEdit->setText(file);
}
else
{
const QString & saveFile = QFileDialog::getSaveFileName
(this, tr("Save to"), QApplication::applicationDirPath(), nameFilter);
if (! saveFile.isEmpty())
ui->lineEdit->setText(saveFile);
}
}