summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2019-10-06 00:51:42 -0500
committeriwubcode <iwubcode@users.noreply.github.com>2019-11-02 13:30:44 -0500
commit876a1ccc3e72a87001fe6478a5bbd8d5cffa5a32 (patch)
treec69a42847df5248d685b008ea9ae1df4aee49918 /Source/Core
parenta7d4be79ae8cbf214a980ac85516f880dc77546e (diff)
DolphinQt: Add way to override "Load" folder that controls the location of custom textures
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/Config/MainSettings.cpp1
-rw-r--r--Source/Core/Core/Config/MainSettings.h1
-rw-r--r--Source/Core/DolphinQt/Settings/PathPane.cpp26
-rw-r--r--Source/Core/DolphinQt/Settings/PathPane.h2
-rw-r--r--Source/Core/UICommon/UICommon.cpp8
5 files changed, 35 insertions, 3 deletions
diff --git a/Source/Core/Core/Config/MainSettings.cpp b/Source/Core/Core/Config/MainSettings.cpp
index 9497bba6d2..afe26dd32d 100644
--- a/Source/Core/Core/Config/MainSettings.cpp
+++ b/Source/Core/Core/Config/MainSettings.cpp
@@ -135,6 +135,7 @@ const ConfigInfo<int> MAIN_AUDIO_VOLUME{{System::Main, "DSP", "Volume"}, 100};
// Main.General
const ConfigInfo<std::string> MAIN_DUMP_PATH{{System::Main, "General", "DumpPath"}, ""};
+const ConfigInfo<std::string> MAIN_LOAD_PATH{{System::Main, "General", "LoadPath"}, ""};
const ConfigInfo<std::string> MAIN_FS_PATH{{System::Main, "General", "NANDRootPath"}, ""};
const ConfigInfo<std::string> MAIN_SD_PATH{{System::Main, "General", "WiiSDCardPath"}, ""};
diff --git a/Source/Core/Core/Config/MainSettings.h b/Source/Core/Core/Config/MainSettings.h
index 0f14728bba..714eae52f2 100644
--- a/Source/Core/Core/Config/MainSettings.h
+++ b/Source/Core/Core/Config/MainSettings.h
@@ -104,6 +104,7 @@ extern const ConfigInfo<bool> MAIN_DISABLE_SCREENSAVER;
// Main.General
extern const ConfigInfo<std::string> MAIN_DUMP_PATH;
+extern const ConfigInfo<std::string> MAIN_LOAD_PATH;
extern const ConfigInfo<std::string> MAIN_FS_PATH;
extern const ConfigInfo<std::string> MAIN_SD_PATH;
diff --git a/Source/Core/DolphinQt/Settings/PathPane.cpp b/Source/Core/DolphinQt/Settings/PathPane.cpp
index 90d8f0c374..20a9e1edb4 100644
--- a/Source/Core/DolphinQt/Settings/PathPane.cpp
+++ b/Source/Core/DolphinQt/Settings/PathPane.cpp
@@ -72,6 +72,17 @@ void PathPane::BrowseDump()
}
}
+void PathPane::BrowseLoad()
+{
+ QString dir = QDir::toNativeSeparators(QFileDialog::getExistingDirectory(
+ this, tr("Select Load Path"), QString::fromStdString(Config::Get(Config::MAIN_LOAD_PATH))));
+ if (!dir.isEmpty())
+ {
+ m_load_edit->setText(dir);
+ Config::SetBase(Config::MAIN_LOAD_PATH, dir.toStdString());
+ }
+}
+
void PathPane::BrowseSDCard()
{
QString file = QDir::toNativeSeparators(QFileDialog::getOpenFileName(
@@ -183,13 +194,22 @@ QGridLayout* PathPane::MakePathsLayout()
layout->addWidget(m_dump_edit, 2, 1);
layout->addWidget(dump_open, 2, 2);
+ m_load_edit = new QLineEdit(QString::fromStdString(Config::Get(Config::MAIN_LOAD_PATH)));
+ connect(m_load_edit, &QLineEdit::editingFinished,
+ [=] { Config::SetBase(Config::MAIN_LOAD_PATH, m_load_edit->text().toStdString()); });
+ QPushButton* load_open = new QPushButton(QStringLiteral("..."));
+ connect(load_open, &QPushButton::clicked, this, &PathPane::BrowseLoad);
+ layout->addWidget(new QLabel(tr("Load Path:")), 3, 0);
+ layout->addWidget(m_load_edit, 3, 1);
+ layout->addWidget(load_open, 3, 2);
+
m_sdcard_edit = new QLineEdit(QString::fromStdString(Config::Get(Config::MAIN_SD_PATH)));
connect(m_sdcard_edit, &QLineEdit::editingFinished, this, &PathPane::OnSDCardPathChanged);
QPushButton* sdcard_open = new QPushButton(QStringLiteral("..."));
connect(sdcard_open, &QPushButton::clicked, this, &PathPane::BrowseSDCard);
- layout->addWidget(new QLabel(tr("SD Card Path:")), 3, 0);
- layout->addWidget(m_sdcard_edit, 3, 1);
- layout->addWidget(sdcard_open, 3, 2);
+ layout->addWidget(new QLabel(tr("SD Card Path:")), 4, 0);
+ layout->addWidget(m_sdcard_edit, 4, 1);
+ layout->addWidget(sdcard_open, 4, 2);
return layout;
}
diff --git a/Source/Core/DolphinQt/Settings/PathPane.h b/Source/Core/DolphinQt/Settings/PathPane.h
index d53d973410..540e36fb8a 100644
--- a/Source/Core/DolphinQt/Settings/PathPane.h
+++ b/Source/Core/DolphinQt/Settings/PathPane.h
@@ -23,6 +23,7 @@ private:
void BrowseDefaultGame();
void BrowseWiiNAND();
void BrowseDump();
+ void BrowseLoad();
void BrowseSDCard();
QGroupBox* MakeGameFolderBox();
QGridLayout* MakePathsLayout();
@@ -35,6 +36,7 @@ private:
QLineEdit* m_game_edit;
QLineEdit* m_nand_edit;
QLineEdit* m_dump_edit;
+ QLineEdit* m_load_edit;
QLineEdit* m_sdcard_edit;
QPushButton* m_remove_path;
diff --git a/Source/Core/UICommon/UICommon.cpp b/Source/Core/UICommon/UICommon.cpp
index 935d07b043..9bc6efc2f2 100644
--- a/Source/Core/UICommon/UICommon.cpp
+++ b/Source/Core/UICommon/UICommon.cpp
@@ -62,9 +62,17 @@ static void CreateDumpPath(const std::string& path)
File::CreateFullPath(File::GetUserPath(D_DUMPTEXTURES_IDX));
}
+static void CreateLoadPath(const std::string& path)
+{
+ if (!path.empty())
+ File::SetUserPath(D_LOAD_IDX, path + '/');
+ File::CreateFullPath(File::GetUserPath(D_HIRESTEXTURES_IDX));
+}
+
static void InitCustomPaths()
{
File::SetUserPath(D_WIIROOT_IDX, Config::Get(Config::MAIN_FS_PATH));
+ CreateLoadPath(Config::Get(Config::MAIN_LOAD_PATH));
CreateDumpPath(Config::Get(Config::MAIN_DUMP_PATH));
const std::string sd_path = Config::Get(Config::MAIN_SD_PATH);
if (!sd_path.empty())