diff --git a/launcher/Application.cpp b/launcher/Application.cpp
index 879af5356..1fc315495 100644
--- a/launcher/Application.cpp
+++ b/launcher/Application.cpp
@@ -517,6 +517,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv)
m_settings->registerSetting({"CentralModsDir", "ModsDir"}, "mods");
m_settings->registerSetting("IconsDir", "icons");
m_settings->registerSetting("DownloadsDir", QStandardPaths::writableLocation(QStandardPaths::DownloadLocation));
+ m_settings->registerSetting("DownloadsDirWatchRecursive", false);
// Editors
m_settings->registerSetting("JsonEditor", QString());
diff --git a/launcher/ui/dialogs/BlockedModsDialog.cpp b/launcher/ui/dialogs/BlockedModsDialog.cpp
index ac06625e2..36df5f467 100644
--- a/launcher/ui/dialogs/BlockedModsDialog.cpp
+++ b/launcher/ui/dialogs/BlockedModsDialog.cpp
@@ -185,7 +185,8 @@ void BlockedModsDialog::setupWatch()
{
const QString downloadsFolder = APPLICATION->settings()->get("DownloadsDir").toString();
const QString modsFolder = APPLICATION->settings()->get("CentralModsDir").toString();
- watchPath(downloadsFolder, true);
+ const bool downloadsFolderWatchRecursive = APPLICATION->settings()->get("DownloadsDirWatchRecursive").toBool();
+ watchPath(downloadsFolder, downloadsFolderWatchRecursive);
watchPath(modsFolder, true);
}
diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp
index 324eb461c..20e02230f 100644
--- a/launcher/ui/pages/global/LauncherPage.cpp
+++ b/launcher/ui/pages/global/LauncherPage.cpp
@@ -184,6 +184,11 @@ void LauncherPage::on_downloadsDirBrowseBtn_clicked()
}
}
+void LauncherPage::on_downloadsDirWatchRecursiveCheckBox_clicked()
+{
+ // incase anything needs to be done here
+}
+
void LauncherPage::on_metadataDisableBtn_clicked()
{
ui->metadataWarningLabel->setHidden(!ui->metadataDisableBtn->isChecked());
@@ -217,6 +222,7 @@ void LauncherPage::applySettings()
s->set("CentralModsDir", ui->modsDirTextBox->text());
s->set("IconsDir", ui->iconsDirTextBox->text());
s->set("DownloadsDir", ui->downloadsDirTextBox->text());
+ s->set("DownloadsDirWatchRecursive", ui->downloadsDirWatchRecursiveCheckBox->isChecked());
auto sortMode = (InstSortMode)ui->sortingModeGroup->checkedId();
switch (sortMode)
diff --git a/launcher/ui/pages/global/LauncherPage.h b/launcher/ui/pages/global/LauncherPage.h
index 33f66f1be..c5ebbe39d 100644
--- a/launcher/ui/pages/global/LauncherPage.h
+++ b/launcher/ui/pages/global/LauncherPage.h
@@ -90,6 +90,7 @@ slots:
void on_iconsDirBrowseBtn_clicked();
void on_downloadsDirBrowseBtn_clicked();
void on_metadataDisableBtn_clicked();
+ void on_downloadsDirWatchRecursiveCheckBox_clicked();
/*!
* Updates the font preview
diff --git a/launcher/ui/pages/global/LauncherPage.ui b/launcher/ui/pages/global/LauncherPage.ui
index 923b7f95c..6279d879b 100644
--- a/launcher/ui/pages/global/LauncherPage.ui
+++ b/launcher/ui/pages/global/LauncherPage.ui
@@ -67,19 +67,16 @@
Folders
- -
-
+
-
+
- ...
+ &Downloads:
+
+
+ downloadsDirTextBox
- -
-
-
- -
-
-
-
@@ -90,16 +87,25 @@
+ -
+
+
+ -
+
+
-
- -
-
+
-
+
- ...
+ ...
+ -
+
+
-
@@ -117,6 +123,20 @@
+ -
+
+
+ ...
+
+
+
+ -
+
+
+ ...
+
+
+
-
@@ -127,23 +147,13 @@
- -
-
-
- &Downloads:
+
-
+
+
+ when looking for mods in places like the blocked mods dialog Prismlauncher will check in sub folders of your downloads folder too.
-
- downloadsDirTextBox
-
-
-
- -
-
-
- -
-
- ...
+ Check downloads folder recursively