]> git.cworth.org Git - apitrace/blob - gui/tracedialog.cpp
Don't read all json output to memory.
[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     apiComboBox->addItem("GL");
13 #ifdef Q_OS_WIN
14     apiComboBox->addItem("D3D7");
15     apiComboBox->addItem("D3D8");
16     apiComboBox->addItem("D3D9");
17     apiComboBox->addItem("D3D10");
18 #else
19     apiComboBox->addItem("EGL");
20 #endif
21
22     connect(browseButton, SIGNAL(clicked()),
23             this, SLOT(browse()));
24 }
25
26 QString TraceDialog::api() const
27 {
28     return apiComboBox->currentText().toLower();
29 }
30
31 QString TraceDialog::applicationPath() const
32 {
33     return applicationEdit->text();
34 }
35
36 QStringList TraceDialog::arguments() const
37 {
38     QStringList args =
39         argumentsEdit->text().split(';', QString::SkipEmptyParts);
40     return args;
41 }
42
43 void TraceDialog::browse()
44 {
45     QString fileName =
46         QFileDialog::getOpenFileName(
47             this,
48             tr("Find the application"),
49             QDir::currentPath());
50
51     if (isFileOk(fileName)) {
52         applicationEdit->setText(fileName);
53     }
54 }
55
56 void TraceDialog::accept()
57 {
58     if (isFileOk(applicationEdit->text())) {
59         QDialog::accept();
60     }
61 }
62
63 bool TraceDialog::isFileOk(const QString &fileName)
64 {
65     QFileInfo fi(fileName);
66
67     if (!fi.exists()) {
68         QMessageBox::warning(this, tr("File Missing"),
69                              tr("File '%1' doesn't exist.")
70                              .arg(fi.fileName()));
71         return false;
72     }
73     if (!fi.isExecutable()) {
74         QMessageBox::warning(this, tr("Application Not Runnable"),
75                              tr("File '%1' can't be executed.")
76                              .arg(fi.fileName()));
77         return false;
78     }
79
80     return true;
81 }
82
83 #include "tracedialog.moc"