summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.cpp117
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.h13
-rw-r--r--tests/auto/qaccessibility/tst_qaccessibility.cpp18
3 files changed, 18 insertions, 130 deletions
diff --git a/src/plugins/accessible/widgets/rangecontrols.cpp b/src/plugins/accessible/widgets/rangecontrols.cpp
index 544b88c2b1..15850ac720 100644
--- a/src/plugins/accessible/widgets/rangecontrols.cpp
+++ b/src/plugins/accessible/widgets/rangecontrols.cpp
@@ -545,113 +545,12 @@ QSlider *QAccessibleSlider::slider() const
}
/*! \reimp */
-QRect QAccessibleSlider::rect(int child) const
-{
- QRect rect;
- if (!slider()->isVisible())
- return rect;
- const QStyleOptionSlider option = qt_qsliderStyleOption(slider());
- QRect srect = slider()->style()->subControlRect(QStyle::CC_Slider, &option,
- QStyle::SC_SliderHandle, slider());
-
- switch (child) {
- case PageLeft:
- if (slider()->orientation() == Qt::Vertical)
- rect = QRect(0, 0, slider()->width(), srect.y());
- else
- rect = QRect(0, 0, srect.x(), slider()->height());
- break;
- case Position:
- rect = srect;
- break;
- case PageRight:
- if (slider()->orientation() == Qt::Vertical)
- rect = QRect(0, srect.y() + srect.height(), slider()->width(), slider()->height()- srect.y() - srect.height());
- else
- rect = QRect(srect.x() + srect.width(), 0, slider()->width() - srect.x() - srect.width(), slider()->height());
- break;
- default:
- return QAccessibleAbstractSlider::rect(child);
- }
-
- QPoint tp = slider()->mapToGlobal(QPoint(0,0));
- return QRect(tp.x() + rect.x(), tp.y() + rect.y(), rect.width(), rect.height());
-}
-
-/*! \reimp */
-int QAccessibleSlider::childCount() const
-{
- return PageRight;
-}
-
-/*! \reimp */
QString QAccessibleSlider::text(Text t, int child) const
{
- switch (t) {
- case Value:
- if (!child || child == 2)
- return QString::number(slider()->value());
- return QString();
- case Name:
- switch (child) {
- case PageLeft:
- return slider()->orientation() == Qt::Horizontal ?
- QSlider::tr("Page left") : QSlider::tr("Page up");
- case Position:
- return QSlider::tr("Position");
- case PageRight:
- return slider()->orientation() == Qt::Horizontal ?
- QSlider::tr("Page right") : QSlider::tr("Page down");
- }
- break;
- default:
- break;
- }
- return QAccessibleAbstractSlider::text(t, child);
-}
-
-/*! \reimp */
-QAccessible::Role QAccessibleSlider::role(int child) const
-{
- switch (child) {
- case PageLeft:
- case PageRight:
- return PushButton;
- case Position:
- return Indicator;
- default:
- return Slider;
- }
-}
-
-/*! \reimp */
-QAccessible::State QAccessibleSlider::state(int child) const
-{
- const State parentState = QAccessibleAbstractSlider::state(0);
-
- if (child == 0)
- return parentState;
-
- // Inherit the Invisible state from parent.
- State state = parentState & QAccessible::Invisible;
-
- // Disable left/right if we are at the minimum/maximum.
- const QSlider * const slider = QAccessibleSlider::slider();
- switch (child) {
- case PageLeft:
- if (slider->value() <= slider->minimum())
- state |= Unavailable;
- break;
- case PageRight:
- if (slider->value() >= slider->maximum())
- state |= Unavailable;
- break;
- case Position:
- default:
- break;
- }
+ if (t == Value)
+ return QString::number(slider()->value());
- return state;
+ return QAccessibleAbstractSlider::text(t, child);
}
/*!
@@ -662,16 +561,6 @@ QAccessible::State QAccessibleSlider::state(int child) const
*/
int QAccessibleSlider::defaultAction(int /*child*/) const
{
-/*
- switch (child) {
- case SliderSelf:
- return SetFocus;
- case PageLeft:
- return Press;
- case PageRight:
- return Press;
- }
-*/
return 0;
}
diff --git a/src/plugins/accessible/widgets/rangecontrols.h b/src/plugins/accessible/widgets/rangecontrols.h
index a79c221771..521b6c5bac 100644
--- a/src/plugins/accessible/widgets/rangecontrols.h
+++ b/src/plugins/accessible/widgets/rangecontrols.h
@@ -166,20 +166,7 @@ class QAccessibleSlider : public QAccessibleAbstractSlider
{
public:
explicit QAccessibleSlider(QWidget *w);
-
- enum SliderElements {
- SliderSelf = 0,
- PageLeft,
- Position,
- PageRight
- };
-
- int childCount() const;
-
- QRect rect(int child) const;
QString text(Text t, int child) const;
- Role role(int child) const;
- State state(int child) const;
int defaultAction(int child) const;
QString actionText(int action, Text t, int child) const;
diff --git a/tests/auto/qaccessibility/tst_qaccessibility.cpp b/tests/auto/qaccessibility/tst_qaccessibility.cpp
index 2e5e19ebda..30e713f0f6 100644
--- a/tests/auto/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/qaccessibility/tst_qaccessibility.cpp
@@ -233,7 +233,7 @@ private slots:
void navigateGeometric();
void navigateHierarchy();
- void navigateSlider();
+ void sliderTest();
void navigateCovered();
void textAttributes();
void hideShowTest();
@@ -553,7 +553,7 @@ void tst_QAccessibility::navigateGeometric()
QTestAccessibility::clearEvents();
}
-void tst_QAccessibility::navigateSlider()
+void tst_QAccessibility::sliderTest()
{
{
QSlider *slider = new QSlider(0);
@@ -563,9 +563,21 @@ void tst_QAccessibility::navigateSlider()
QVERIFY(iface != 0);
QVERIFY(iface->isValid());
- QEXPECT_FAIL("", "Implement slider with value interface and no children. Test value interface here.", Continue);
QCOMPARE(iface->childCount(), 0);
+ QAccessibleValueInterface *valueIface = iface->valueInterface();
+ QVERIFY(valueIface != 0);
+ QCOMPARE(valueIface->minimumValue().toInt(), slider->minimum());
+ QCOMPARE(valueIface->maximumValue().toInt(), slider->maximum());
+ slider->setValue(50);
+ QCOMPARE(valueIface->currentValue().toInt(), slider->value());
+ slider->setValue(0);
+ QCOMPARE(valueIface->currentValue().toInt(), slider->value());
+ slider->setValue(100);
+ QCOMPARE(valueIface->currentValue().toInt(), slider->value());
+ valueIface->setCurrentValue(77);
+ QCOMPARE(77, slider->value());
+
delete iface;
delete slider;
}