summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Config/Graphics/GraphicsBool.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DolphinQt/Config/Graphics/GraphicsBool.cpp')
-rw-r--r--Source/Core/DolphinQt/Config/Graphics/GraphicsBool.cpp54
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));
+}