Scale values for screen reader to be from 0 to 100 for sliders in awl.
This commit is contained in:
parent
ddaf8b363e
commit
ae1b46b2a7
3 changed files with 23 additions and 3 deletions
|
@ -40,6 +40,7 @@ AbstractSlider::AbstractSlider(QWidget* parent)
|
|||
_invert = false;
|
||||
_scaleWidth = 4;
|
||||
_log = false;
|
||||
_useActualValue = false;
|
||||
setFocusPolicy(Qt::StrongFocus);
|
||||
}
|
||||
|
||||
|
@ -202,6 +203,21 @@ double AbstractSlider::value() const
|
|||
return _log ? pow(10.0, _value*0.05f) : _value;
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// userValue (between 0 and 100)
|
||||
//---------------------------------------------------------
|
||||
|
||||
QString AbstractSlider::userValue() const
|
||||
{
|
||||
double result;
|
||||
if (_useActualValue)
|
||||
result = value();
|
||||
else
|
||||
result = (_value - minValue())/ ((maxValue() - minValue())/100);
|
||||
|
||||
return QString::number(result, 'f', 2);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------
|
||||
// minLogValue
|
||||
//---------------------------------------------------------
|
||||
|
@ -278,7 +294,7 @@ QString AccessibleAbstractSlider::text(QAccessible::Text t) const
|
|||
case QAccessible::Name:
|
||||
return slider->accessibleName();
|
||||
case QAccessible::Value:
|
||||
return QString::number(slider->value());
|
||||
return slider->userValue();
|
||||
case QAccessible::Description:
|
||||
return slider->accessibleDescription();
|
||||
default:
|
||||
|
@ -287,9 +303,9 @@ QString AccessibleAbstractSlider::text(QAccessible::Text t) const
|
|||
return QString();
|
||||
}
|
||||
|
||||
void AccessibleAbstractSlider::valueChanged(double value, int)
|
||||
void AccessibleAbstractSlider::valueChanged(double, int)
|
||||
{
|
||||
QAccessibleValueChangeEvent ev(slider, value);
|
||||
QAccessibleValueChangeEvent ev(slider, slider->userValue());
|
||||
QAccessible::updateAccessibility(&ev);
|
||||
}
|
||||
|
||||
|
|
|
@ -70,6 +70,7 @@ class AbstractSlider : public QWidget {
|
|||
QColor _scaleColor;
|
||||
QColor _scaleValueColor;
|
||||
bool _log;
|
||||
bool _useActualValue; //! for user value
|
||||
|
||||
virtual void wheelEvent(QWheelEvent*);
|
||||
virtual void keyPressEvent(QKeyEvent*);
|
||||
|
@ -109,6 +110,7 @@ class AbstractSlider : public QWidget {
|
|||
void setId(int i) { _id = i; }
|
||||
|
||||
virtual double value() const;
|
||||
virtual QString userValue() const;
|
||||
|
||||
double minValue() const { return _minValue; }
|
||||
void setMinValue(double v) { _minValue = v; }
|
||||
|
@ -135,6 +137,7 @@ class AbstractSlider : public QWidget {
|
|||
void setDclickValue1(double val) { _dclickValue1 = val; }
|
||||
void setDclickValue2(double val) { _dclickValue2 = val; }
|
||||
void setEnabled(bool val);
|
||||
void setUseActualValue(bool v) { _useActualValue = v; }
|
||||
};
|
||||
|
||||
class AccessibleAbstractSlider : public QObject, QAccessibleWidget {
|
||||
|
|
|
@ -63,6 +63,7 @@ PlayPanel::PlayPanel(QWidget* parent)
|
|||
|
||||
tempoSlider->setDclickValue1(100.0);
|
||||
tempoSlider->setDclickValue2(100.0);
|
||||
tempoSlider->setUseActualValue(true);
|
||||
|
||||
connect(volumeSlider, SIGNAL(valueChanged(double,int)), SLOT(volumeChanged(double,int)));
|
||||
connect(posSlider, SIGNAL(sliderMoved(int)), SLOT(setPos(int)));
|
||||
|
|
Loading…
Reference in a new issue