Qt: Fix directory setting changes

This commit is contained in:
Connor McLaughlin
2022-07-23 01:28:19 +10:00
parent 78bddd7fe9
commit a5f5be1a60
9 changed files with 45 additions and 16 deletions

View File

@ -12,13 +12,15 @@ FolderSettingsWidget::FolderSettingsWidget(SettingsDialog* dialog, QWidget* pare
m_ui.setupUi(this);
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.cache, m_ui.cacheBrowse, m_ui.cacheOpen, m_ui.cacheReset,
"Folders", "Cache", "cache");
"Folders", "Cache", Path::Combine(EmuFolders::DataRoot, "cache"));
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.covers, m_ui.coversBrowse, m_ui.coversOpen, m_ui.coversReset,
"Folders", "Covers", "covers");
"Folders", "Covers", Path::Combine(EmuFolders::DataRoot, "covers"));
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.screenshots, m_ui.screenshotsBrowse, m_ui.screenshotsOpen,
m_ui.screenshotsReset, "Folders", "Screenshots", "screenshots");
m_ui.screenshotsReset, "Folders", "Screenshots",
Path::Combine(EmuFolders::DataRoot, "screenshots"));
SettingWidgetBinder::BindWidgetToFolderSetting(sif, m_ui.saveStates, m_ui.saveStatesBrowse, m_ui.saveStatesOpen,
m_ui.saveStatesReset, "Folders", "SaveStates", "savestates");
m_ui.saveStatesReset, "Folders", "SaveStates",
Path::Combine(EmuFolders::DataRoot, "savestates"));
}
FolderSettingsWidget::~FolderSettingsWidget() = default;

View File

@ -529,6 +529,17 @@ void EmuThread::reloadGameSettings(bool display_osd_messages /* = false */)
System::ReloadGameSettings(display_osd_messages);
}
void EmuThread::updateEmuFolders()
{
if (!isOnThread())
{
QMetaObject::invokeMethod(this, &EmuThread::updateEmuFolders, Qt::QueuedConnection);
return;
}
EmuFolders::Update();
}
void EmuThread::startFullscreenUI()
{
if (!isOnThread())

View File

@ -145,6 +145,7 @@ public Q_SLOTS:
void setDefaultSettings(bool system = true, bool controller = true);
void applySettings(bool display_osd_messages = false);
void reloadGameSettings(bool display_osd_messages = false);
void updateEmuFolders();
void reloadInputSources();
void reloadInputBindings();
void enumerateInputDevices();

View File

@ -880,10 +880,7 @@ static void BindWidgetToFolderSetting(SettingsInterface* sif, WidgetType* widget
Host::DeleteBaseSettingValue(section.c_str(), key.c_str());
}
Panic("Fixme");
#if 0
g_emu_thread->updateEmuFolders();
#endif
});
if (browse_button)
@ -910,7 +907,7 @@ static void BindWidgetToFolderSetting(SettingsInterface* sif, WidgetType* widget
{
QObject::connect(
reset_button, &QAbstractButton::clicked, reset_button, [widget, default_value = std::move(default_value)]() {
Accessor::setStringValue(widget, QString::fromStdString(Path::Combine(EmuFolders::AppRoot, default_value)));
Accessor::setStringValue(widget, QString::fromStdString(default_value));
});
}
}