From a334ec3daa11b0d58ff13486e9b6ce40bd1a7554 Mon Sep 17 00:00:00 2001 From: Michael M Date: Wed, 20 Sep 2017 09:29:32 -0700 Subject: [PATCH 1/2] Qt: add ConfigChanged signal to Settings --- Source/Core/DolphinQt2/Settings.cpp | 5 +++++ Source/Core/DolphinQt2/Settings.h | 1 + 2 files changed, 6 insertions(+) diff --git a/Source/Core/DolphinQt2/Settings.cpp b/Source/Core/DolphinQt2/Settings.cpp index aa06f0a020..0ed961cbff 100644 --- a/Source/Core/DolphinQt2/Settings.cpp +++ b/Source/Core/DolphinQt2/Settings.cpp @@ -7,12 +7,14 @@ #include #include "AudioCommon/AudioCommon.h" +#include "Common/Config/Config.h" #include "Common/FileSearch.h" #include "Common/FileUtil.h" #include "Common/StringUtil.h" #include "Core/ConfigManager.h" #include "Core/Core.h" #include "DolphinQt2/GameList/GameListModel.h" +#include "DolphinQt2/QtUtils/QueueOnObject.h" #include "DolphinQt2/Settings.h" #include "InputCommon/InputConfig.h" @@ -21,6 +23,9 @@ Settings::Settings() qRegisterMetaType(); Core::SetOnStateChangedCallback( [this](Core::State new_state) { emit EmulationStateChanged(new_state); }); + + Config::AddConfigChangedCallback( + [this] { QueueOnObject(this, [this] { emit ConfigChanged(); }); }); } Settings& Settings::Instance() diff --git a/Source/Core/DolphinQt2/Settings.h b/Source/Core/DolphinQt2/Settings.h index 4ed5f4021b..c9ecc93a2d 100644 --- a/Source/Core/DolphinQt2/Settings.h +++ b/Source/Core/DolphinQt2/Settings.h @@ -81,6 +81,7 @@ public: GameListModel* GetGameListModel() const; signals: + void ConfigChanged(); void EmulationStateChanged(Core::State new_state); void ThemeChanged(); void PathAdded(const QString&); From 9245210c49f76856a30ea8bb077d97a8af0ee711 Mon Sep 17 00:00:00 2001 From: Michael M Date: Wed, 20 Sep 2017 09:33:52 -0700 Subject: [PATCH 2/2] Qt: bold graphics settings on ConfigChanged, not EmulationStateChanged EmulationStateChanged is functionally correct right now, but ConfigChanged expresses more semantically why the config setting gets re-read and the widgets updated. --- Source/Core/DolphinQt2/Config/Graphics/GraphicsBool.cpp | 2 +- Source/Core/DolphinQt2/Config/Graphics/GraphicsChoice.cpp | 2 +- Source/Core/DolphinQt2/Config/Graphics/GraphicsSlider.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/DolphinQt2/Config/Graphics/GraphicsBool.cpp b/Source/Core/DolphinQt2/Config/Graphics/GraphicsBool.cpp index 25d390be19..c6aacd3d72 100644 --- a/Source/Core/DolphinQt2/Config/Graphics/GraphicsBool.cpp +++ b/Source/Core/DolphinQt2/Config/Graphics/GraphicsBool.cpp @@ -16,7 +16,7 @@ GraphicsBool::GraphicsBool(const QString& label, const Config::ConfigInfo& connect(this, &QCheckBox::toggled, this, &GraphicsBool::Update); setChecked(Config::Get(m_setting) ^ reverse); - connect(&Settings::Instance(), &Settings::EmulationStateChanged, [this]() { + connect(&Settings::Instance(), &Settings::ConfigChanged, [this] { QFont bf = font(); bf.setBold(Config::GetActiveLayerForConfig(m_setting) != Config::LayerType::Base); setFont(bf); diff --git a/Source/Core/DolphinQt2/Config/Graphics/GraphicsChoice.cpp b/Source/Core/DolphinQt2/Config/Graphics/GraphicsChoice.cpp index 76655bb350..7199b2302c 100644 --- a/Source/Core/DolphinQt2/Config/Graphics/GraphicsChoice.cpp +++ b/Source/Core/DolphinQt2/Config/Graphics/GraphicsChoice.cpp @@ -15,7 +15,7 @@ GraphicsChoice::GraphicsChoice(const QStringList& options, const Config::ConfigI &GraphicsChoice::Update); setCurrentIndex(Config::Get(m_setting)); - connect(&Settings::Instance(), &Settings::EmulationStateChanged, [this]() { + connect(&Settings::Instance(), &Settings::ConfigChanged, [this] { QFont bf = font(); bf.setBold(Config::GetActiveLayerForConfig(m_setting) != Config::LayerType::Base); setFont(bf); diff --git a/Source/Core/DolphinQt2/Config/Graphics/GraphicsSlider.cpp b/Source/Core/DolphinQt2/Config/Graphics/GraphicsSlider.cpp index 0e40e4164d..4561aa22eb 100644 --- a/Source/Core/DolphinQt2/Config/Graphics/GraphicsSlider.cpp +++ b/Source/Core/DolphinQt2/Config/Graphics/GraphicsSlider.cpp @@ -19,7 +19,7 @@ GraphicsSlider::GraphicsSlider(int minimum, int maximum, const Config::ConfigInf connect(this, &GraphicsSlider::valueChanged, this, &GraphicsSlider::Update); - connect(&Settings::Instance(), &Settings::EmulationStateChanged, [this]() { + connect(&Settings::Instance(), &Settings::ConfigChanged, [this] { QFont bf = font(); bf.setBold(Config::GetActiveLayerForConfig(m_setting) != Config::LayerType::Base); setFont(bf);