diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 20da46187..cc4fc6b1c 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -586,6 +586,7 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv)
m_settings->registerSetting("IconsDir", "icons");
m_settings->registerSetting("DownloadsDir", QStandardPaths::writableLocation(QStandardPaths::DownloadLocation));
m_settings->registerSetting("DownloadsDirWatchRecursive", false);
+ m_settings->registerSetting("JavaDir", "java");
// Editors
m_settings->registerSetting("JsonEditor", QString());
@@ -1832,5 +1833,5 @@ QUrl Application::normalizeImportUrl(QString const& url)
}
const QString Application::javaPath()
{
- return FS::PathCombine(m_dataPath, "java");
+ return m_settings->get("JavaDir").toString();
}
diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp
index 78c44380a..99a80d98c 100644
--- a/launcher/ui/pages/global/LauncherPage.cpp
+++ b/launcher/ui/pages/global/LauncherPage.cpp
@@ -173,6 +173,16 @@ void LauncherPage::on_downloadsDirBrowseBtn_clicked()
}
}
+void LauncherPage::on_javaDirBrowseBtn_clicked()
+{
+ QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Java Folder"), ui->javaDirTextBox->text());
+
+ if (!raw_dir.isEmpty() && QDir(raw_dir).exists()) {
+ QString cooked_dir = FS::NormalizePath(raw_dir);
+ ui->javaDirTextBox->setText(cooked_dir);
+ }
+}
+
void LauncherPage::on_metadataDisableBtn_clicked()
{
ui->metadataWarningLabel->setHidden(!ui->metadataDisableBtn->isChecked());
@@ -208,6 +218,7 @@ void LauncherPage::applySettings()
s->set("CentralModsDir", ui->modsDirTextBox->text());
s->set("IconsDir", ui->iconsDirTextBox->text());
s->set("DownloadsDir", ui->downloadsDirTextBox->text());
+ s->set("JavaDir", ui->javaDirTextBox->text());
s->set("DownloadsDirWatchRecursive", ui->downloadsDirWatchRecursiveCheckBox->isChecked());
auto sortMode = (InstSortMode)ui->sortingModeGroup->checkedId();
@@ -269,6 +280,7 @@ void LauncherPage::loadSettings()
ui->modsDirTextBox->setText(s->get("CentralModsDir").toString());
ui->iconsDirTextBox->setText(s->get("IconsDir").toString());
ui->downloadsDirTextBox->setText(s->get("DownloadsDir").toString());
+ ui->javaDirTextBox->setText(s->get("JavaDir").toString());
ui->downloadsDirWatchRecursiveCheckBox->setChecked(s->get("DownloadsDirWatchRecursive").toBool());
QString sortMode = s->get("InstSortMode").toString();
diff --git a/launcher/ui/pages/global/LauncherPage.h b/launcher/ui/pages/global/LauncherPage.h
index e733224d2..32945626f 100644
--- a/launcher/ui/pages/global/LauncherPage.h
+++ b/launcher/ui/pages/global/LauncherPage.h
@@ -74,6 +74,7 @@ class LauncherPage : public QWidget, public BasePage {
void on_modsDirBrowseBtn_clicked();
void on_iconsDirBrowseBtn_clicked();
void on_downloadsDirBrowseBtn_clicked();
+ void on_javaDirBrowseBtn_clicked();
void on_metadataDisableBtn_clicked();
/*!
diff --git a/launcher/ui/pages/global/LauncherPage.ui b/launcher/ui/pages/global/LauncherPage.ui
index 18b52e1b8..81acb0a17 100644
--- a/launcher/ui/pages/global/LauncherPage.ui
+++ b/launcher/ui/pages/global/LauncherPage.ui
@@ -7,7 +7,7 @@
0
0
511
- 629
+ 654
@@ -67,13 +67,20 @@
Folders
- -
-
+
-
+
- &Downloads:
+ Browse
-
- downloadsDirTextBox
+
+
+ -
+
+
+ When enabled, in addition to the downloads folder, its sub folders will also be searched when looking for resources (e.g. when looking for blocked mods on CurseForge).
+
+
+ Check downloads folder recursively
@@ -87,25 +94,52 @@
- -
-
-
- -
-
-
- -
-
-
- -
+
-
Browse
+ -
+
+
-
+ -
+
+
+ Browse
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ &Icons:
+
+
+ iconsDirTextBox
+
+
+
+ -
+
+
+ &Downloads:
+
+
+ downloadsDirTextBox
+
+
+
-
@@ -123,40 +157,23 @@
- -
-
+
-
+
+
+ Java:
+
+
+
+ -
+
+
+ -
+
Browse
- -
-
-
- Browse
-
-
-
- -
-
-
- &Icons:
-
-
- iconsDirTextBox
-
-
-
- -
-
-
- When enabled, in addition to the downloads folder, its sub folders will also be searched when looking for resources (e.g. when looking for blocked mods on CurseForge).
-
-
- Check downloads folder recursively
-
-
-