Skip to content
Permalink
Browse files

DolphinQt: Add way to override "ResourcePack" folder that controls th…

…e location of resource packs
  • Loading branch information
iwubcode committed Oct 6, 2019
1 parent 876a1cc commit 490fd0c3b32dcb6d74b140f52125eb2402c72b26
@@ -136,6 +136,8 @@ const ConfigInfo<int> MAIN_AUDIO_VOLUME{{System::Main, "DSP", "Volume"}, 100};

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_RESOURCEPACK_PATH{{System::Main, "General", "ResourcePackPath"},
""};
const ConfigInfo<std::string> MAIN_FS_PATH{{System::Main, "General", "NANDRootPath"}, ""};
const ConfigInfo<std::string> MAIN_SD_PATH{{System::Main, "General", "WiiSDCardPath"}, ""};

@@ -105,6 +105,7 @@ extern const ConfigInfo<bool> MAIN_DISABLE_SCREENSAVER;

extern const ConfigInfo<std::string> MAIN_DUMP_PATH;
extern const ConfigInfo<std::string> MAIN_LOAD_PATH;
extern const ConfigInfo<std::string> MAIN_RESOURCEPACK_PATH;
extern const ConfigInfo<std::string> MAIN_FS_PATH;
extern const ConfigInfo<std::string> MAIN_SD_PATH;

@@ -193,7 +193,7 @@ void ResourcePackManager::Install()

auto& item = ResourcePack::GetPacks()[GetResourcePackIndex(items[0])];

bool success = item.Install(File::GetUserPath(D_USER_IDX));
bool success = item.Install(File::GetUserPath(D_LOAD_IDX));

if (!success)
{
@@ -214,7 +214,7 @@ void ResourcePackManager::Uninstall()

auto& item = ResourcePack::GetPacks()[GetResourcePackIndex(items[0])];

bool success = item.Uninstall(File::GetUserPath(D_USER_IDX));
bool success = item.Uninstall(File::GetUserPath(D_LOAD_IDX));

if (!success)
{
@@ -83,6 +83,18 @@ void PathPane::BrowseLoad()
}
}

void PathPane::BrowseResourcePack()
{
QString dir = QDir::toNativeSeparators(QFileDialog::getExistingDirectory(
this, tr("Select Resource Pack Path"),
QString::fromStdString(Config::Get(Config::MAIN_RESOURCEPACK_PATH))));
if (!dir.isEmpty())
{
m_resource_pack_edit->setText(dir);
Config::SetBase(Config::MAIN_RESOURCEPACK_PATH, dir.toStdString());
}
}

void PathPane::BrowseSDCard()
{
QString file = QDir::toNativeSeparators(QFileDialog::getOpenFileName(
@@ -203,13 +215,24 @@ QGridLayout* PathPane::MakePathsLayout()
layout->addWidget(m_load_edit, 3, 1);
layout->addWidget(load_open, 3, 2);

m_resource_pack_edit =
new QLineEdit(QString::fromStdString(Config::Get(Config::MAIN_RESOURCEPACK_PATH)));
connect(m_resource_pack_edit, &QLineEdit::editingFinished, [=] {
Config::SetBase(Config::MAIN_RESOURCEPACK_PATH, m_resource_pack_edit->text().toStdString());
});
QPushButton* resource_pack_open = new QPushButton(QStringLiteral("..."));
connect(resource_pack_open, &QPushButton::clicked, this, &PathPane::BrowseResourcePack);
layout->addWidget(new QLabel(tr("Resource Pack Path:")), 4, 0);
layout->addWidget(m_resource_pack_edit, 4, 1);
layout->addWidget(resource_pack_open, 4, 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:")), 4, 0);
layout->addWidget(m_sdcard_edit, 4, 1);
layout->addWidget(sdcard_open, 4, 2);
layout->addWidget(new QLabel(tr("SD Card Path:")), 5, 0);
layout->addWidget(m_sdcard_edit, 5, 1);
layout->addWidget(sdcard_open, 5, 2);

return layout;
}
@@ -24,6 +24,7 @@ class PathPane final : public QWidget
void BrowseWiiNAND();
void BrowseDump();
void BrowseLoad();
void BrowseResourcePack();
void BrowseSDCard();
QGroupBox* MakeGameFolderBox();
QGridLayout* MakePathsLayout();
@@ -37,6 +38,7 @@ class PathPane final : public QWidget
QLineEdit* m_nand_edit;
QLineEdit* m_dump_edit;
QLineEdit* m_load_edit;
QLineEdit* m_resource_pack_edit;
QLineEdit* m_sdcard_edit;

QPushButton* m_remove_path;
@@ -8,6 +8,7 @@

#include <minizip/unzip.h>

#include "Common/CommonPaths.h"
#include "Common/FileSearch.h"
#include "Common/FileUtil.h"
#include "Common/MinizipUtil.h"
@@ -19,7 +20,7 @@

namespace ResourcePack
{
constexpr char TEXTURE_PATH[] = "Load/Textures/";
constexpr char TEXTURE_PATH[] = HIRES_TEXTURES_DIR DIR_SEP;

ResourcePack::ResourcePack(const std::string& path) : m_path(path)
{
@@ -69,11 +69,18 @@ static void CreateLoadPath(const std::string& path)
File::CreateFullPath(File::GetUserPath(D_HIRESTEXTURES_IDX));
}

static void CreateResourcePackPath(const std::string& path)
{
if (!path.empty())
File::SetUserPath(D_RESOURCEPACK_IDX, path + '/');
}

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));
CreateResourcePackPath(Config::Get(Config::MAIN_RESOURCEPACK_PATH));
const std::string sd_path = Config::Get(Config::MAIN_SD_PATH);
if (!sd_path.empty())
File::SetUserPath(F_WIISDCARD_IDX, sd_path);

0 comments on commit 490fd0c

Please sign in to comment.
You can’t perform that action at this time.