Qt Advanced Panel: Convert QSliders into ConfigSliders.

Part of the refactor into the config system.
This commit is contained in:
TryTwo
2025-05-26 09:27:41 -07:00
parent 2e22a3cf42
commit a6a5e201b6
4 changed files with 116 additions and 105 deletions

View File

@ -80,6 +80,36 @@ void ConfigSlider::OnConfigChanged()
}
}
ConfigSliderU32::ConfigSliderU32(u32 minimum, u32 maximum, const Config::Info<u32>& setting,
u32 scale)
: ConfigSliderU32(minimum, maximum, setting, nullptr, scale)
{
}
ConfigSliderU32::ConfigSliderU32(u32 minimum, u32 maximum, const Config::Info<u32>& setting,
Config::Layer* layer, u32 scale)
: ConfigControl(Qt::Horizontal, setting.GetLocation(), layer), m_setting(setting),
m_scale(scale)
{
setMinimum(minimum);
setMaximum(maximum);
setValue(ReadValue(setting));
OnConfigChanged();
connect(this, &ConfigSliderU32::valueChanged, this, &ConfigSliderU32::Update);
}
void ConfigSliderU32::Update(u32 value)
{
SaveValue(m_setting, value * m_scale);
}
void ConfigSliderU32::OnConfigChanged()
{
setValue(ReadValue(m_setting) / m_scale);
}
ConfigSliderLabel::ConfigSliderLabel(const QString& text, ConfigSlider* slider)
: QLabel(text), m_slider(QPointer<ConfigSlider>(slider))
{

View File

@ -11,6 +11,7 @@
#include "DolphinQt/Config/ConfigControls/ConfigControl.h"
#include "DolphinQt/Config/ToolTipControls/ToolTipSlider.h"
#include "Common/CommonTypes.h"
#include "Common/Config/ConfigInfo.h"
class ConfigSlider final : public ConfigControl<ToolTipSlider>
@ -38,6 +39,25 @@ private:
std::vector<int> m_tick_values;
};
class ConfigSliderU32 final : public ConfigControl<ToolTipSlider>
{
Q_OBJECT
public:
ConfigSliderU32(u32 minimum, u32 maximum, const Config::Info<u32>& setting, u32 scale = 1);
ConfigSliderU32(u32 minimum, u32 maximum, const Config::Info<u32>& setting, Config ::Layer* layer,
u32 scale = 1);
void Update(u32 value);
protected:
void OnConfigChanged() override;
private:
const Config::Info<u32> m_setting;
u32 m_scale = 1;
};
class ConfigSliderLabel final : public QLabel
{
Q_OBJECT