diff options
author | Sefa Eyeoglu <contact@scrumplex.net> | 2023-03-14 13:53:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-14 13:53:51 +0100 |
commit | 45b0367d14f38d40af5cc8603f7daab05d83af5f (patch) | |
tree | 4d971036c93817168762fc9a1b4e704c6830aa5c | |
parent | dce86edff0022079850367ec3dada7a2ecc490d4 (diff) | |
parent | 05b6969ee507fce515d4f961814487239a946055 (diff) | |
download | PrismLauncher-45b0367d14f38d40af5cc8603f7daab05d83af5f.tar.gz PrismLauncher-45b0367d14f38d40af5cc8603f7daab05d83af5f.tar.bz2 PrismLauncher-45b0367d14f38d40af5cc8603f7daab05d83af5f.zip |
Merge pull request #931 from Janrupf/feature/custom-downloads-dir
-rw-r--r-- | launcher/Application.cpp | 1 | ||||
-rw-r--r-- | launcher/ui/dialogs/BlockedModsDialog.cpp | 2 | ||||
-rw-r--r-- | launcher/ui/pages/global/LauncherPage.cpp | 18 | ||||
-rw-r--r-- | launcher/ui/pages/global/LauncherPage.h | 1 | ||||
-rw-r--r-- | launcher/ui/pages/global/LauncherPage.ui | 66 |
5 files changed, 62 insertions, 26 deletions
diff --git a/launcher/Application.cpp b/launcher/Application.cpp index 321f944b..879af535 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -516,6 +516,7 @@ Application::Application(int &argc, char **argv) : QApplication(argc, argv) m_settings->registerSetting("InstanceDir", "instances"); m_settings->registerSetting({"CentralModsDir", "ModsDir"}, "mods"); m_settings->registerSetting("IconsDir", "icons"); + m_settings->registerSetting("DownloadsDir", QStandardPaths::writableLocation(QStandardPaths::DownloadLocation)); // Editors m_settings->registerSetting("JsonEditor", QString()); diff --git a/launcher/ui/dialogs/BlockedModsDialog.cpp b/launcher/ui/dialogs/BlockedModsDialog.cpp index eb427953..ff885f10 100644 --- a/launcher/ui/dialogs/BlockedModsDialog.cpp +++ b/launcher/ui/dialogs/BlockedModsDialog.cpp @@ -184,7 +184,7 @@ void BlockedModsDialog::directoryChanged(QString path) /// @brief add the user downloads folder and the global mods folder to the filesystem watcher void BlockedModsDialog::setupWatch() { - const QString downloadsFolder = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation); + const QString downloadsFolder = APPLICATION->settings()->get("DownloadsDir").toString(); const QString modsFolder = APPLICATION->settings()->get("CentralModsDir").toString(); m_watcher.addPath(downloadsFolder); m_watcher.addPath(modsFolder); diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp index a9f44c0b..324eb461 100644 --- a/launcher/ui/pages/global/LauncherPage.cpp +++ b/launcher/ui/pages/global/LauncherPage.cpp @@ -140,8 +140,8 @@ void LauncherPage::on_instDirBrowseBtn_clicked() if (result == QMessageBox::Ok) { ui->instDirTextBox->setText(cooked_dir); - } - } + } + } else { ui->instDirTextBox->setText(cooked_dir); @@ -160,6 +160,7 @@ void LauncherPage::on_iconsDirBrowseBtn_clicked() ui->iconsDirTextBox->setText(cooked_dir); } } + void LauncherPage::on_modsDirBrowseBtn_clicked() { QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Mods Folder"), ui->modsDirTextBox->text()); @@ -172,6 +173,17 @@ void LauncherPage::on_modsDirBrowseBtn_clicked() } } +void LauncherPage::on_downloadsDirBrowseBtn_clicked() +{ + QString raw_dir = QFileDialog::getExistingDirectory(this, tr("Downloads Folder"), ui->downloadsDirTextBox->text()); + + if (!raw_dir.isEmpty() && QDir(raw_dir).exists()) + { + QString cooked_dir = FS::NormalizePath(raw_dir); + ui->downloadsDirTextBox->setText(cooked_dir); + } +} + void LauncherPage::on_metadataDisableBtn_clicked() { ui->metadataWarningLabel->setHidden(!ui->metadataDisableBtn->isChecked()); @@ -204,6 +216,7 @@ void LauncherPage::applySettings() s->set("InstanceDir", ui->instDirTextBox->text()); s->set("CentralModsDir", ui->modsDirTextBox->text()); s->set("IconsDir", ui->iconsDirTextBox->text()); + s->set("DownloadsDir", ui->downloadsDirTextBox->text()); auto sortMode = (InstSortMode)ui->sortingModeGroup->checkedId(); switch (sortMode) @@ -260,6 +273,7 @@ void LauncherPage::loadSettings() ui->instDirTextBox->setText(s->get("InstanceDir").toString()); ui->modsDirTextBox->setText(s->get("CentralModsDir").toString()); ui->iconsDirTextBox->setText(s->get("IconsDir").toString()); + ui->downloadsDirTextBox->setText(s->get("DownloadsDir").toString()); QString sortMode = s->get("InstSortMode").toString(); diff --git a/launcher/ui/pages/global/LauncherPage.h b/launcher/ui/pages/global/LauncherPage.h index c60156c2..33f66f1b 100644 --- a/launcher/ui/pages/global/LauncherPage.h +++ b/launcher/ui/pages/global/LauncherPage.h @@ -88,6 +88,7 @@ slots: void on_instDirBrowseBtn_clicked(); void on_modsDirBrowseBtn_clicked(); void on_iconsDirBrowseBtn_clicked(); + void on_downloadsDirBrowseBtn_clicked(); void on_metadataDisableBtn_clicked(); /*! diff --git a/launcher/ui/pages/global/LauncherPage.ui b/launcher/ui/pages/global/LauncherPage.ui index f084d970..923b7f95 100644 --- a/launcher/ui/pages/global/LauncherPage.ui +++ b/launcher/ui/pages/global/LauncherPage.ui @@ -38,7 +38,7 @@ <enum>QTabWidget::Rounded</enum> </property> <property name="currentIndex"> - <number>1</number> + <number>0</number> </property> <widget class="QWidget" name="featuresTab"> <attribute name="title"> @@ -67,20 +67,32 @@ <string>Folders</string> </property> <layout class="QGridLayout" name="foldersBoxLayout"> - <item row="1" column="2"> - <widget class="QToolButton" name="modsDirBrowseBtn"> + <item row="0" column="2"> + <widget class="QToolButton" name="instDirBrowseBtn"> <property name="text"> <string notr="true">...</string> </property> </widget> </item> - <item row="0" column="2"> - <widget class="QToolButton" name="instDirBrowseBtn"> + <item row="1" column="1"> + <widget class="QLineEdit" name="modsDirTextBox"/> + </item> + <item row="0" column="1"> + <widget class="QLineEdit" name="instDirTextBox"/> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="labelInstDir"> <property name="text"> - <string notr="true">...</string> + <string>I&nstances:</string> + </property> + <property name="buddy"> + <cstring>instDirTextBox</cstring> </property> </widget> </item> + <item row="2" column="1"> + <widget class="QLineEdit" name="iconsDirTextBox"/> + </item> <item row="2" column="2"> <widget class="QToolButton" name="iconsDirBrowseBtn"> <property name="text"> @@ -88,8 +100,22 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="instDirTextBox"/> + <item row="1" column="2"> + <widget class="QToolButton" name="modsDirBrowseBtn"> + <property name="text"> + <string notr="true">...</string> + </property> + </widget> + </item> + <item row="1" column="0"> + <widget class="QLabel" name="labelModsDir"> + <property name="text"> + <string>&Mods:</string> + </property> + <property name="buddy"> + <cstring>modsDirTextBox</cstring> + </property> + </widget> </item> <item row="2" column="0"> <widget class="QLabel" name="labelIconsDir"> @@ -101,29 +127,23 @@ </property> </widget> </item> - <item row="1" column="1"> - <widget class="QLineEdit" name="modsDirTextBox"/> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="labelInstDir"> + <item row="3" column="0"> + <widget class="QLabel" name="labelDownloadsDir"> <property name="text"> - <string>I&nstances:</string> + <string>&Downloads:</string> </property> <property name="buddy"> - <cstring>instDirTextBox</cstring> + <cstring>downloadsDirTextBox</cstring> </property> </widget> </item> - <item row="2" column="1"> - <widget class="QLineEdit" name="iconsDirTextBox"/> + <item row="3" column="1"> + <widget class="QLineEdit" name="downloadsDirTextBox"/> </item> - <item row="1" column="0"> - <widget class="QLabel" name="labelModsDir"> + <item row="3" column="2"> + <widget class="QToolButton" name="downloadsDirBrowseBtn"> <property name="text"> - <string>&Mods:</string> - </property> - <property name="buddy"> - <cstring>modsDirTextBox</cstring> + <string>...</string> </property> </widget> </item> |