summaryrefslogtreecommitdiffstats
path: root/application/pages/global/JavaPage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'application/pages/global/JavaPage.cpp')
-rw-r--r--application/pages/global/JavaPage.cpp17
1 files changed, 14 insertions, 3 deletions
diff --git a/application/pages/global/JavaPage.cpp b/application/pages/global/JavaPage.cpp
index 9b35d1f3..18882ad9 100644
--- a/application/pages/global/JavaPage.cpp
+++ b/application/pages/global/JavaPage.cpp
@@ -105,13 +105,24 @@ void JavaPage::on_javaDetectBtn_clicked()
ui->javaPathTextBox->setText(java->path);
}
}
+
void JavaPage::on_javaBrowseBtn_clicked()
{
- QString dir = QFileDialog::getOpenFileName(this, tr("Find Java executable"));
- if (!dir.isNull())
+ QString raw_path = QFileDialog::getOpenFileName(this, tr("Find Java executable"));
+ QString cooked_path = NormalizePath(raw_path);
+
+ // do not allow current dir - it's dirty. Do not allow dirs that don't exist
+ if(cooked_path.isEmpty())
{
- ui->javaPathTextBox->setText(dir);
+ return;
+ }
+
+ QFileInfo javaInfo(cooked_path);;
+ if(!javaInfo.exists() || !javaInfo.isExecutable())
+ {
+ return;
}
+ ui->javaPathTextBox->setText(cooked_path);
}
void JavaPage::on_javaTestBtn_clicked()