diff options
Diffstat (limited to 'Source/Core/DolphinQt/Config/Graphics/GraphicsBool.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Config/Graphics/GraphicsBool.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Source/Core/DolphinQt/Config/Graphics/GraphicsBool.cpp b/Source/Core/DolphinQt/Config/Graphics/GraphicsBool.cpp new file mode 100644 index 0000000000..192a2120c3 --- /dev/null +++ b/Source/Core/DolphinQt/Config/Graphics/GraphicsBool.cpp @@ -0,0 +1,54 @@ +// Copyright 2017 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#include "DolphinQt/Config/Graphics/GraphicsBool.h" + +#include "Common/Config/Config.h" + +#include "DolphinQt/Settings.h" + +#include <QFont> + +GraphicsBool::GraphicsBool(const QString& label, const Config::ConfigInfo<bool>& setting, + bool reverse) + : QCheckBox(label), m_setting(setting), m_reverse(reverse) +{ + connect(this, &QCheckBox::toggled, this, &GraphicsBool::Update); + setChecked(Config::Get(m_setting) ^ reverse); + + connect(&Settings::Instance(), &Settings::ConfigChanged, [this] { + QFont bf = font(); + bf.setBold(Config::GetActiveLayerForConfig(m_setting) != Config::LayerType::Base); + setFont(bf); + + bool old = blockSignals(true); + setChecked(Config::Get(m_setting) ^ m_reverse); + blockSignals(old); + }); +} + +void GraphicsBool::Update() +{ + Config::SetBaseOrCurrent(m_setting, static_cast<bool>(isChecked() ^ m_reverse)); +} + +GraphicsBoolEx::GraphicsBoolEx(const QString& label, const Config::ConfigInfo<bool>& setting, + bool reverse) + : QRadioButton(label), m_setting(setting), m_reverse(reverse) +{ + connect(this, &QCheckBox::toggled, this, &GraphicsBoolEx::Update); + setChecked(Config::Get(m_setting) ^ reverse); + + if (Config::GetActiveLayerForConfig(m_setting) != Config::LayerType::Base) + { + QFont bf = font(); + bf.setBold(true); + setFont(bf); + } +} + +void GraphicsBoolEx::Update() +{ + Config::SetBaseOrCurrent(m_setting, static_cast<bool>(isChecked() ^ m_reverse)); +} |
