dolphin/Source/Core/DolphinQt/Config/Mapping/MappingNumeric.cpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

63 lines
1.9 KiB
C++
Raw Normal View History

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"
#include "InputCommon/ControllerEmu/ControllerEmu.h"
#include "InputCommon/ControllerInterface/ControllerInterface.h"
2017-05-20 15:53:17 +00:00
MappingDouble::MappingDouble(MappingWidget* parent, ControllerEmu::NumericSetting<double>* setting)
: QDoubleSpinBox(parent), m_setting(*setting)
2017-05-20 15:53:17 +00:00
{
setRange(m_setting.GetMinValue(), m_setting.GetMaxValue());
setDecimals(2);
2017-05-20 15:53:17 +00:00
2019-08-01 13:28:04 +00:00
setFixedWidth(WIDGET_MAX_WIDTH);
if (const auto ui_suffix = m_setting.GetUISuffix())
setSuffix(QLatin1Char{' '} + 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
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 QSignalBlocker blocker(this);
setValue(m_setting.GetValue());
}
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
}
void MappingBool::ConfigChanged()
2017-05-20 15:53:17 +00:00
{
const QSignalBlocker blocker(this);
setChecked(m_setting.GetValue());
2017-05-20 15:53:17 +00:00
}