GH-1262 fix relative paths for java binaries
This commit is contained in:
@ -1677,17 +1677,8 @@ void MainWindow::checkSetDefaultJava()
|
||||
break;
|
||||
}
|
||||
QString currentJavaPath = MMC->settings()->get("JavaPath").toString();
|
||||
if (currentJavaPath.isEmpty())
|
||||
{
|
||||
askForJava = true;
|
||||
break;
|
||||
}
|
||||
if(!currentJavaPath.contains('/'))
|
||||
{
|
||||
currentJavaPath = QStandardPaths::findExecutable(currentJavaPath);
|
||||
}
|
||||
QFile currentJavaBin(currentJavaPath);
|
||||
if(!currentJavaBin.exists())
|
||||
QString actualPath = ResolveExecutable(currentJavaPath);
|
||||
if (currentJavaPath.isNull())
|
||||
{
|
||||
askForJava = true;
|
||||
break;
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "MultiMC.h"
|
||||
|
||||
#include <java/JavaVersionList.h>
|
||||
#include <pathutils.h>
|
||||
|
||||
InstanceSettingsPage::InstanceSettingsPage(BaseInstance *inst, QWidget *parent)
|
||||
: QWidget(parent), ui(new Ui::InstanceSettingsPage), m_instance(inst)
|
||||
@ -184,11 +185,21 @@ void InstanceSettingsPage::on_javaDetectBtn_clicked()
|
||||
|
||||
void InstanceSettingsPage::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 InstanceSettingsPage::on_javaTestBtn_clicked()
|
||||
|
@ -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()
|
||||
|
Reference in New Issue
Block a user