mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-24 04:57:20 +01:00
Merge pull request #13259 from TryTwo/PR_Config_signals
Qt: Fix some options not changing enabled status on game start.
This commit is contained in:
commit
8e9596e221
@ -63,7 +63,6 @@ void ConfigStringChoice::Load()
|
||||
const int index = m_text_is_data ? findText(setting_value) : findData(setting_value);
|
||||
|
||||
// This can be called publicly.
|
||||
const QSignalBlocker block(this);
|
||||
setCurrentIndex(index);
|
||||
}
|
||||
|
||||
@ -145,6 +144,7 @@ void ConfigComplexChoice::UpdateComboIndex()
|
||||
auto it = std::find(m_options.begin(), m_options.end(), values);
|
||||
int index = static_cast<int>(std::distance(m_options.begin(), it));
|
||||
|
||||
// Will crash if not blocked
|
||||
const QSignalBlocker blocker(this);
|
||||
setCurrentIndex(index);
|
||||
}
|
||||
|
@ -5,7 +5,6 @@
|
||||
|
||||
#include <QFont>
|
||||
#include <QMouseEvent>
|
||||
#include <QSignalBlocker>
|
||||
|
||||
#include "Common/Config/Enums.h"
|
||||
#include "Common/Config/Layer.h"
|
||||
@ -49,14 +48,21 @@ protected:
|
||||
bf.setBold(IsConfigLocal());
|
||||
Derived::setFont(bf);
|
||||
|
||||
const QSignalBlocker blocker(this);
|
||||
// This isn't signal blocked because the UI may need to be updated.
|
||||
m_updating = true;
|
||||
OnConfigChanged();
|
||||
m_updating = false;
|
||||
});
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
void SaveValue(const Config::Info<T>& setting, const T& value)
|
||||
{
|
||||
// Avoid OnConfigChanged -> option changed to current config's value -> unnecessary save ->
|
||||
// ConfigChanged.
|
||||
if (m_updating)
|
||||
return;
|
||||
|
||||
if (m_layer != nullptr)
|
||||
{
|
||||
m_layer->Set(m_location, value);
|
||||
@ -100,6 +106,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
bool m_updating = false;
|
||||
const Config::Location m_location;
|
||||
Config::Layer* m_layer;
|
||||
};
|
||||
|
@ -232,7 +232,10 @@ void GeneralWidget::OnEmulationStateChanged(bool running)
|
||||
std::string current_backend = m_backend_combo->currentData().toString().toStdString();
|
||||
if (Config::Get(Config::MAIN_GFX_BACKEND) != current_backend)
|
||||
{
|
||||
m_backend_combo->Load();
|
||||
{
|
||||
const QSignalBlocker blocker(m_backend_combo);
|
||||
m_backend_combo->Load();
|
||||
}
|
||||
emit BackendChanged(QString::fromStdString(Config::Get(Config::MAIN_GFX_BACKEND)));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user