mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-02-07 21:23:31 +01:00
![TryTwo](/assets/img/avatar_default.png)
Creates a layer outside the game config layer system and passes it to the created gfx widows, so as to not interfere with the global config system. Supports multiple game properties being open at once. Supports editing while a game is playing, but the options only save and update the active game when the window is closed. Right-clicking will remove a property from the game ini.
41 lines
1.2 KiB
C++
41 lines
1.2 KiB
C++
// Copyright 2023 Dolphin Emulator Project
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#include "DolphinQt/Config/ConfigControls/ConfigFloatSlider.h"
|
|
|
|
ConfigFloatSlider::ConfigFloatSlider(float minimum, float maximum,
|
|
const Config::Info<float>& setting, float step,
|
|
Config::Layer* layer)
|
|
: ConfigControl(Qt::Horizontal, setting.GetLocation(), layer), m_minimum(minimum), m_step(step),
|
|
m_setting(setting)
|
|
{
|
|
const float range = maximum - minimum;
|
|
const int steps = std::round(range / step);
|
|
const int interval = std::round(range / steps);
|
|
const int current_value = std::round((ReadValue(setting) - minimum) / step);
|
|
|
|
setMinimum(0);
|
|
setMaximum(steps);
|
|
setTickInterval(interval);
|
|
setValue(current_value);
|
|
|
|
connect(this, &ConfigFloatSlider::valueChanged, this, &ConfigFloatSlider::Update);
|
|
}
|
|
|
|
void ConfigFloatSlider::Update(int value)
|
|
{
|
|
const float current_value = (m_step * value) + m_minimum;
|
|
|
|
SaveValue(m_setting, current_value);
|
|
}
|
|
|
|
float ConfigFloatSlider::GetValue() const
|
|
{
|
|
return (m_step * value()) + m_minimum;
|
|
}
|
|
|
|
void ConfigFloatSlider::OnConfigChanged()
|
|
{
|
|
setValue(std::round((ReadValue(m_setting) - m_minimum) / m_step));
|
|
}
|