]> git.cworth.org Git - apitrace/blob - gui/tracedialog.cpp
bed517368ff243c147774b3f254ddd1e25b0e86f
[apitrace] / gui / tracedialog.cpp
1 #include "tracedialog.h"
2
3 #include <QDebug>
4 #include <QFileDialog>
5 #include <QMessageBox>
6
7 TraceDialog::TraceDialog(QWidget *parent)
8     : QDialog(parent)
9 {
10     setupUi(this);
11
12     connect(browseButton, SIGNAL(clicked()),
13             this, SLOT(browse()));
14 }
15
16 QString TraceDialog::applicationPath() const
17 {
18     return applicationEdit->text();
19 }
20
21 QStringList TraceDialog::arguments() const
22 {
23     QStringList args =
24         argumentsEdit->text().split(';', QString::SkipEmptyParts);
25     return args;
26 }
27
28 void TraceDialog::browse()
29 {
30     QString fileName =
31         QFileDialog::getOpenFileName(
32             this,
33             tr("Find the application"),
34             QDir::currentPath());
35
36     if (isFileOk(fileName)) {
37         applicationEdit->setText(fileName);
38     }
39 }
40
41 void TraceDialog::accept()
42 {
43     if (isFileOk(applicationEdit->text())) {
44         QDialog::accept();
45     }
46 }
47
48 bool TraceDialog::isFileOk(const QString &fileName)
49 {
50     QFileInfo fi(fileName);
51
52     if (!fi.exists()) {
53         QMessageBox::warning(this, tr("File Missing"),
54                              tr("File '%1' doesn't exist.")
55                              .arg(fi.fileName()));
56         return false;
57     }
58     if (!fi.isExecutable()) {
59         QMessageBox::warning(this, tr("Application Not Runnable"),
60                              tr("File '%1' can't be executed.")
61                              .arg(fi.fileName()));
62         return false;
63     }
64
65     return true;
66 }
67
68 #include "tracedialog.moc"