20 #ifndef OMNI_UI_MIXIN_SCALE_H_
21 #define OMNI_UI_MIXIN_SCALE_H_
29 template<
typename SLIDER,
typename SCALAR =
float>
43 for (
auto& _slider_info :
sliders_) {
44 auto& _slider = _slider_info.first;
45 auto& _info = _slider_info.second;
46 _slider->setRange(_info.min_ *
scale_, _info.max_ *
scale_);
49 auto _value = _slider->value() / _oldScale *
scale_;
50 _slider->setValue(_value);
53 _slider->setSingleStep(_info.singleStep_ *
scale_);
54 _slider->setDefaultValue(_info.defaultValue_ *
scale_);
55 _slider->setPageStep(_info.pageStep_ *
scale_);
57 _slider->setPivot(_info.pivot_);
83 for (
auto& _slider_info :
sliders_) {
84 _slider_info.first->setSuffix(
suffix_);
101 if (!
sliders_.count(_slider))
return;
132 float _singleStep,
float _defaultValue,
float _pivot) :
float scale() const
Return scale value.
Definition: Scale.h:70
Scale()
Definition: Scale.h:35
void setRescaleValues(bool _rescaleValues)
Definition: Scale.h:65
value_type pageStep() const
Return value for page step.
Definition: Step.h:73
void registerScaledSlider(slider_type *_slider)
Register slider to be scaled.
Definition: Scale.h:89
float min_
Definition: Scale.h:140
bool rescaleValues() const
Definition: Scale.h:61
float defaultValue_
Definition: Scale.h:142
QString suffix_
Common suffix is meter.
Definition: Scale.h:146
float singleStep_
Definition: Scale.h:141
SliderInfo(float _min, float _max, float _pageStep, float _singleStep, float _defaultValue, float _pivot)
Definition: Scale.h:131
std::map< slider_type *, SliderInfo > sliders_
Definition: Scale.h:150
float pageStep_
Definition: Scale.h:141
SLIDER slider_type
Definition: Scale.h:32
float scale_
Definition: Scale.h:148
SCALAR scalar_type
Definition: Scale.h:33
value_type singleStep() const
Return value for single step.
Definition: Step.h:67
int precision_
Definition: Scale.h:147
A slider with float value within a minimum and maximum.
Definition: RangedFloat.h:30
bool rescaleValues_
Definition: Scale.h:149
value_type maximum() const
Return maximum value.
Definition: Range.h:60
float pivot_
Definition: Scale.h:142
Scales a set of sliders and sets a common unit suffix.
Definition: Scale.h:30
value_type defaultValue() const
Return default value.
Definition: RangedValue.h:71
virtual void setScale(float _scale)
Set scale and apply to sliders.
Definition: Scale.h:38
static int getPrecision(float _scale)
Return precesion by scale.
Definition: Scale.h:107
QString suffix() const
Common unit of sliders.
Definition: Scale.h:75
SliderInfo()
Definition: Scale.h:129
value_type minimum() const
Return minimum value.
Definition: Range.h:54
void setSuffix(QString const &_suffix)
Set suffix (unit) of slider.
Definition: Scale.h:80
void unregisterScaledSlider(slider_type *_slider)
Remove slider from list, keep scale.
Definition: Scale.h:100
value_type pivot() const
Return pivot value.
Definition: RangedValue.h:77
float max_
Definition: Scale.h:140
Slider Info struct saves min, max and step values.
Definition: Scale.h:128