Qt: Fix settings clear not resetting input profile
This commit is contained in:
parent
a9bfe2642f
commit
6e1d8c5213
|
@ -762,14 +762,11 @@ void Settings::Clear(SettingsInterface& si)
|
||||||
si.ClearSection("PCDrv");
|
si.ClearSection("PCDrv");
|
||||||
si.ClearSection("BIOS");
|
si.ClearSection("BIOS");
|
||||||
|
|
||||||
|
si.ClearSection("ControllerPorts");
|
||||||
for (u32 i = 0; i < NUM_CONTROLLER_AND_CARD_PORTS; i++)
|
for (u32 i = 0; i < NUM_CONTROLLER_AND_CARD_PORTS; i++)
|
||||||
si.ClearSection(Controller::GetSettingsSection(i).c_str());
|
si.ClearSection(Controller::GetSettingsSection(i).c_str());
|
||||||
|
|
||||||
si.ClearSection("MemoryCards");
|
si.ClearSection("MemoryCards");
|
||||||
|
|
||||||
// Can't wipe out this section, because input profiles.
|
|
||||||
si.DeleteValue("ControllerPorts", "MultitapMode");
|
|
||||||
|
|
||||||
si.ClearSection("Cheevos");
|
si.ClearSection("Cheevos");
|
||||||
si.ClearSection("Logging");
|
si.ClearSection("Logging");
|
||||||
si.ClearSection("Debug");
|
si.ClearSection("Debug");
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
|
|
||||||
#include <QtCore/QDateTime>
|
#include <QtCore/QDateTime>
|
||||||
#include <QtCore/QFuture>
|
#include <QtCore/QFuture>
|
||||||
|
#include <QtCore/QSignalBlocker>
|
||||||
#include <QtCore/QStringBuilder>
|
#include <QtCore/QStringBuilder>
|
||||||
#include <QtWidgets/QDialog>
|
#include <QtWidgets/QDialog>
|
||||||
#include <QtWidgets/QDialogButtonBox>
|
#include <QtWidgets/QDialogButtonBox>
|
||||||
|
@ -72,6 +73,28 @@ GameSummaryWidget::GameSummaryWidget(const std::string& path, const std::string&
|
||||||
|
|
||||||
GameSummaryWidget::~GameSummaryWidget() = default;
|
GameSummaryWidget::~GameSummaryWidget() = default;
|
||||||
|
|
||||||
|
void GameSummaryWidget::reloadGameSettings()
|
||||||
|
{
|
||||||
|
if (m_dialog->getBoolValue("ControllerPorts", "UseGameSettingsForController", std::nullopt).value_or(false))
|
||||||
|
{
|
||||||
|
const QSignalBlocker sb(m_ui.inputProfile);
|
||||||
|
m_ui.inputProfile->setCurrentIndex(1);
|
||||||
|
}
|
||||||
|
else if (const std::optional<std::string> profile_name =
|
||||||
|
m_dialog->getStringValue("ControllerPorts", "InputProfileName", std::nullopt);
|
||||||
|
profile_name.has_value() && !profile_name->empty())
|
||||||
|
{
|
||||||
|
const QSignalBlocker sb(m_ui.inputProfile);
|
||||||
|
m_ui.inputProfile->setCurrentIndex(m_ui.inputProfile->findText(QString::fromStdString(profile_name.value())));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const QSignalBlocker sb(m_ui.inputProfile);
|
||||||
|
m_ui.inputProfile->setCurrentIndex(0);
|
||||||
|
}
|
||||||
|
m_ui.editInputProfile->setEnabled(m_ui.inputProfile->currentIndex() >= 1);
|
||||||
|
}
|
||||||
|
|
||||||
void GameSummaryWidget::populateUi(const std::string& path, const std::string& serial, DiscRegion region,
|
void GameSummaryWidget::populateUi(const std::string& path, const std::string& serial, DiscRegion region,
|
||||||
const GameDatabase::Entry* entry)
|
const GameDatabase::Entry* entry)
|
||||||
{
|
{
|
||||||
|
@ -167,22 +190,7 @@ void GameSummaryWidget::populateUi(const std::string& path, const std::string& s
|
||||||
for (const std::string& name : InputManager::GetInputProfileNames())
|
for (const std::string& name : InputManager::GetInputProfileNames())
|
||||||
m_ui.inputProfile->addItem(QString::fromStdString(name));
|
m_ui.inputProfile->addItem(QString::fromStdString(name));
|
||||||
|
|
||||||
if (m_dialog->getBoolValue("ControllerPorts", "UseGameSettingsForController", std::nullopt).value_or(false))
|
reloadGameSettings();
|
||||||
{
|
|
||||||
m_ui.inputProfile->setCurrentIndex(1);
|
|
||||||
}
|
|
||||||
else if (const std::optional<std::string> profile_name =
|
|
||||||
m_dialog->getStringValue("ControllerPorts", "InputProfileName", std::nullopt);
|
|
||||||
profile_name.has_value() && !profile_name->empty())
|
|
||||||
{
|
|
||||||
m_ui.inputProfile->setCurrentIndex(m_ui.inputProfile->findText(QString::fromStdString(profile_name.value())));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_ui.inputProfile->setCurrentIndex(0);
|
|
||||||
}
|
|
||||||
m_ui.editInputProfile->setEnabled(m_ui.inputProfile->currentIndex() >= 1);
|
|
||||||
|
|
||||||
populateCustomAttributes();
|
populateCustomAttributes();
|
||||||
populateTracksInfo();
|
populateTracksInfo();
|
||||||
updateWindowTitle();
|
updateWindowTitle();
|
||||||
|
|
|
@ -24,6 +24,8 @@ public:
|
||||||
const GameDatabase::Entry* entry, SettingsWindow* dialog, QWidget* parent);
|
const GameDatabase::Entry* entry, SettingsWindow* dialog, QWidget* parent);
|
||||||
~GameSummaryWidget();
|
~GameSummaryWidget();
|
||||||
|
|
||||||
|
void reloadGameSettings();
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void onCompatibilityCommentsClicked();
|
void onCompatibilityCommentsClicked();
|
||||||
void onInputProfileChanged(int index);
|
void onInputProfileChanged(int index);
|
||||||
|
|
|
@ -55,8 +55,8 @@ SettingsWindow::SettingsWindow(const std::string& path, std::string serial, Game
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||||
|
|
||||||
addWidget(new GameSummaryWidget(path, serial, region, entry, this, m_ui.settingsContainer), tr("Summary"),
|
addWidget(m_game_summary = new GameSummaryWidget(path, serial, region, entry, this, m_ui.settingsContainer),
|
||||||
QStringLiteral("file-list-line"),
|
tr("Summary"), QStringLiteral("file-list-line"),
|
||||||
tr("<strong>Summary</strong><hr>This page shows information about the selected game, and allows you to "
|
tr("<strong>Summary</strong><hr>This page shows information about the selected game, and allows you to "
|
||||||
"validate your disc was dumped correctly."));
|
"validate your disc was dumped correctly."));
|
||||||
addPages();
|
addPages();
|
||||||
|
@ -209,7 +209,11 @@ void SettingsWindow::reloadPages()
|
||||||
delete widget;
|
delete widget;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ui.safeMode->disconnect();
|
if (isPerGameSettings())
|
||||||
|
{
|
||||||
|
m_game_summary->reloadGameSettings();
|
||||||
|
m_ui.safeMode->disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
addPages();
|
addPages();
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,7 @@ enum class Trait : u32;
|
||||||
struct Entry;
|
struct Entry;
|
||||||
} // namespace GameDatabase
|
} // namespace GameDatabase
|
||||||
|
|
||||||
|
class GameSummaryWidget;
|
||||||
class InterfaceSettingsWidget;
|
class InterfaceSettingsWidget;
|
||||||
class BIOSSettingsWidget;
|
class BIOSSettingsWidget;
|
||||||
class GameListSettingsWidget;
|
class GameListSettingsWidget;
|
||||||
|
@ -136,6 +137,7 @@ private:
|
||||||
std::unique_ptr<INISettingsInterface> m_sif;
|
std::unique_ptr<INISettingsInterface> m_sif;
|
||||||
const GameDatabase::Entry* m_database_entry = nullptr;
|
const GameDatabase::Entry* m_database_entry = nullptr;
|
||||||
|
|
||||||
|
GameSummaryWidget* m_game_summary = nullptr;
|
||||||
InterfaceSettingsWidget* m_interface_settings = nullptr;
|
InterfaceSettingsWidget* m_interface_settings = nullptr;
|
||||||
BIOSSettingsWidget* m_bios_settings = nullptr;
|
BIOSSettingsWidget* m_bios_settings = nullptr;
|
||||||
ConsoleSettingsWidget* m_console_settings = nullptr;
|
ConsoleSettingsWidget* m_console_settings = nullptr;
|
||||||
|
|
Loading…
Reference in New Issue