2017-05-20 15:53:17 +00:00
|
|
|
// Copyright 2017 Dolphin Emulator Project
|
|
|
|
// Licensed under GPLv2+
|
|
|
|
// Refer to the license.txt file included.
|
|
|
|
|
2018-07-06 22:40:15 +00:00
|
|
|
#include "DolphinQt/Config/Mapping/MappingNumeric.h"
|
2017-05-20 15:53:17 +00:00
|
|
|
|
2018-07-06 22:40:15 +00:00
|
|
|
#include "DolphinQt/Config/Mapping/MappingWidget.h"
|
2018-05-13 19:17:46 +00:00
|
|
|
|
|
|
|
#include "InputCommon/ControllerEmu/ControllerEmu.h"
|
|
|
|
#include "InputCommon/ControllerInterface/ControllerInterface.h"
|
2017-05-20 15:53:17 +00:00
|
|
|
|
2019-03-27 00:31:03 +00:00
|
|
|
MappingDouble::MappingDouble(MappingWidget* parent, ControllerEmu::NumericSetting<double>* setting)
|
|
|
|
: QDoubleSpinBox(parent), m_setting(*setting)
|
2017-05-20 15:53:17 +00:00
|
|
|
{
|
2019-03-27 00:31:03 +00:00
|
|
|
setRange(m_setting.GetMinValue(), m_setting.GetMaxValue());
|
|
|
|
setDecimals(2);
|
2017-05-20 15:53:17 +00:00
|
|
|
|
2019-03-27 00:31:03 +00:00
|
|
|
if (const auto ui_suffix = m_setting.GetUISuffix())
|
|
|
|
setSuffix(QStringLiteral(" ") + tr(ui_suffix));
|
|
|
|
|
|
|
|
if (const auto ui_description = m_setting.GetUIDescription())
|
|
|
|
setToolTip(tr(ui_description));
|
|
|
|
|
|
|
|
connect(this, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this,
|
|
|
|
[this, parent](double value) {
|
|
|
|
m_setting.SetValue(value);
|
2019-03-15 01:27:49 +00:00
|
|
|
parent->SaveSettings();
|
2017-05-20 15:53:17 +00:00
|
|
|
});
|
2019-03-15 01:27:49 +00:00
|
|
|
|
2019-03-27 00:31:03 +00:00
|
|
|
connect(parent, &MappingWidget::ConfigChanged, this, &MappingDouble::ConfigChanged);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Overriding QDoubleSpinBox's fixup to set the default value when input is cleared.
|
|
|
|
void MappingDouble::fixup(QString& input) const
|
|
|
|
{
|
|
|
|
input = QString::number(m_setting.GetDefaultValue());
|
|
|
|
}
|
|
|
|
|
|
|
|
void MappingDouble::ConfigChanged()
|
|
|
|
{
|
|
|
|
const bool old_state = blockSignals(true);
|
|
|
|
setValue(m_setting.GetValue());
|
|
|
|
blockSignals(old_state);
|
|
|
|
}
|
|
|
|
|
|
|
|
MappingBool::MappingBool(MappingWidget* parent, ControllerEmu::NumericSetting<bool>* setting)
|
|
|
|
: QCheckBox(parent), m_setting(*setting)
|
|
|
|
{
|
|
|
|
connect(this, &QCheckBox::stateChanged, this, [this, parent](int value) {
|
|
|
|
m_setting.SetValue(value != 0);
|
|
|
|
parent->SaveSettings();
|
|
|
|
});
|
|
|
|
|
|
|
|
connect(parent, &MappingWidget::ConfigChanged, this, &MappingBool::ConfigChanged);
|
2017-05-20 15:53:17 +00:00
|
|
|
}
|
|
|
|
|
2019-03-27 00:31:03 +00:00
|
|
|
void MappingBool::ConfigChanged()
|
2017-05-20 15:53:17 +00:00
|
|
|
{
|
2019-03-15 01:27:49 +00:00
|
|
|
const bool old_state = blockSignals(true);
|
2019-03-27 00:31:03 +00:00
|
|
|
setChecked(m_setting.GetValue());
|
2019-03-15 01:27:49 +00:00
|
|
|
blockSignals(old_state);
|
2017-05-20 15:53:17 +00:00
|
|
|
}
|