summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.cpp111
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.h15
-rw-r--r--tests/auto/qaccessibility/tst_qaccessibility.cpp41
3 files changed, 16 insertions, 151 deletions
diff --git a/src/plugins/accessible/widgets/rangecontrols.cpp b/src/plugins/accessible/widgets/rangecontrols.cpp
index 50f64e0849..544b88c2b1 100644
--- a/src/plugins/accessible/widgets/rangecontrols.cpp
+++ b/src/plugins/accessible/widgets/rangecontrols.cpp
@@ -498,120 +498,13 @@ QScrollBar *QAccessibleScrollBar::scrollBar() const
}
/*! \reimp */
-QRect QAccessibleScrollBar::rect(int child) const
-{
- if (!scrollBar()->isVisible())
- return QRect();
-
- QStyle::SubControl subControl;
- switch (child) {
- case LineUp:
- subControl = QStyle ::SC_ScrollBarSubLine;
- break;
- case PageUp:
- subControl = QStyle::SC_ScrollBarSubPage;
- break;
- case Position:
- subControl = QStyle::SC_ScrollBarSlider;
- break;
- case PageDown:
- subControl = QStyle::SC_ScrollBarAddPage;
- break;
- case LineDown:
- subControl = QStyle::SC_ScrollBarAddLine;
- break;
- default:
- return QAccessibleAbstractSlider::rect(child);
- }
-
- const QStyleOptionSlider option = qt_qscrollbarStyleOption(scrollBar());
- const QRect rect = scrollBar()->style()->subControlRect(QStyle::CC_ScrollBar, &option,
- subControl, scrollBar());
- const QPoint tp = scrollBar()->mapToGlobal(QPoint(0,0));
- return QRect(tp.x() + rect.x(), tp.y() + rect.y(), rect.width(), rect.height());
-}
-
-/*! \reimp */
-int QAccessibleScrollBar::childCount() const
-{
- return LineDown;
-}
-
-/*! \reimp */
QString QAccessibleScrollBar::text(Text t, int child) const
{
- switch (t) {
- case Value:
- if (!child || child == Position)
- return QString::number(scrollBar()->value());
- return QString();
- case Name:
- switch (child) {
- case LineUp:
- return QScrollBar::tr("Line up");
- case PageUp:
- return QScrollBar::tr("Page up");
- case Position:
- return QScrollBar::tr("Position");
- case PageDown:
- return QScrollBar::tr("Page down");
- case LineDown:
- return QScrollBar::tr("Line down");
- }
- break;
- default:
- break;
- }
+ if (t == Value)
+ return QString::number(scrollBar()->value());
return QAccessibleAbstractSlider::text(t, child);
}
-/*! \reimp */
-QAccessible::Role QAccessibleScrollBar::role(int child) const
-{
- switch (child) {
- case LineUp:
- case PageUp:
- case PageDown:
- case LineDown:
- return PushButton;
- case Position:
- return Indicator;
- default:
- return ScrollBar;
- }
-}
-
-/*! \reimp */
-QAccessible::State QAccessibleScrollBar::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 QScrollBar * const scrollBar = QAccessibleScrollBar::scrollBar();
- switch (child) {
- case LineUp:
- case PageUp:
- if (scrollBar->value() <= scrollBar->minimum())
- state |= Unavailable;
- break;
- case LineDown:
- case PageDown:
- if (scrollBar->value() >= scrollBar->maximum())
- state |= Unavailable;
- break;
- case Position:
- default:
- break;
- }
-
- return state;
-}
#endif // QT_NO_SCROLLBAR
#ifndef QT_NO_SLIDER
diff --git a/src/plugins/accessible/widgets/rangecontrols.h b/src/plugins/accessible/widgets/rangecontrols.h
index 0a59e13656..a79c221771 100644
--- a/src/plugins/accessible/widgets/rangecontrols.h
+++ b/src/plugins/accessible/widgets/rangecontrols.h
@@ -154,22 +154,7 @@ class QAccessibleScrollBar : public QAccessibleAbstractSlider
{
public:
explicit QAccessibleScrollBar(QWidget *w);
-
- enum ScrollBarElements {
- ScrollBarSelf = 0,
- LineUp,
- PageUp,
- Position,
- PageDown,
- LineDown
- };
-
- 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;
protected:
QScrollBar *scrollBar() const;
diff --git a/tests/auto/qaccessibility/tst_qaccessibility.cpp b/tests/auto/qaccessibility/tst_qaccessibility.cpp
index b43b580abf..2e5e19ebda 100644
--- a/tests/auto/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/qaccessibility/tst_qaccessibility.cpp
@@ -1214,47 +1214,34 @@ void tst_QAccessibility::scrollBarTest()
QScrollBar *scrollBar = new QScrollBar();
QAccessibleInterface * const scrollBarInterface = QAccessible::queryAccessibleInterface(scrollBar);
QVERIFY(scrollBarInterface);
-
- QVERIFY(scrollBarInterface->state(0) & QAccessible::Invisible);
- QVERIFY(scrollBarInterface->state(PageUp) & QAccessible::Invisible);
- QVERIFY(scrollBarInterface->state(Position) & QAccessible::Invisible);
- QVERIFY(scrollBarInterface->state(PageDown) & QAccessible::Invisible);
-
+ QVERIFY(scrollBarInterface->state() & QAccessible::Invisible);
scrollBar->show();
- QVERIFY(scrollBarInterface->state(0) ^ QAccessible::Invisible);
- QVERIFY(scrollBarInterface->state(PageUp) ^ QAccessible::Invisible);
- QVERIFY(scrollBarInterface->state(Position) ^ QAccessible::Invisible);
- QVERIFY(scrollBarInterface->state(PageDown) ^ QAccessible::Invisible);
+ QVERIFY(scrollBarInterface->state() ^ QAccessible::Invisible);
QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(scrollBar, 0, QAccessible::ObjectShow)));
QTestAccessibility::clearEvents();
scrollBar->hide();
- QVERIFY(scrollBarInterface->state(0) & QAccessible::Invisible);
- QVERIFY(scrollBarInterface->state(PageUp) & QAccessible::Invisible);
- QVERIFY(scrollBarInterface->state(Position) & QAccessible::Invisible);
- QVERIFY(scrollBarInterface->state(PageDown) & QAccessible::Invisible);
+ QVERIFY(scrollBarInterface->state() & QAccessible::Invisible);
QVERIFY(QTestAccessibility::events().contains(QTestAccessibilityEvent(scrollBar, 0, QAccessible::ObjectHide)));
QTestAccessibility::clearEvents();
// Test that the left/right subcontrols are set to unavailable when the scrollBar is at the minimum/maximum.
scrollBar->show();
- scrollBar->setMinimum(0);
- scrollBar->setMaximum(100);
+ scrollBar->setMinimum(11);
+ scrollBar->setMaximum(111);
+ QAccessibleValueInterface *valueIface = scrollBarInterface->valueInterface();
+ QVERIFY(valueIface != 0);
+ QCOMPARE(valueIface->minimumValue().toInt(), scrollBar->minimum());
+ QCOMPARE(valueIface->maximumValue().toInt(), scrollBar->maximum());
scrollBar->setValue(50);
- QVERIFY(scrollBarInterface->state(PageUp) ^ QAccessible::Unavailable);
- QVERIFY(scrollBarInterface->state(Position) ^ QAccessible::Unavailable);
- QVERIFY(scrollBarInterface->state(PageDown) ^ QAccessible::Unavailable);
-
+ QCOMPARE(valueIface->currentValue().toInt(), scrollBar->value());
scrollBar->setValue(0);
- QVERIFY(scrollBarInterface->state(PageUp) & QAccessible::Unavailable);
- QVERIFY(scrollBarInterface->state(Position) ^ QAccessible::Unavailable);
- QVERIFY(scrollBarInterface->state(PageDown) ^ QAccessible::Unavailable);
-
+ QCOMPARE(valueIface->currentValue().toInt(), scrollBar->value());
scrollBar->setValue(100);
- QVERIFY(scrollBarInterface->state(PageUp) ^ QAccessible::Unavailable);
- QVERIFY(scrollBarInterface->state(Position) ^ QAccessible::Unavailable);
- QVERIFY(scrollBarInterface->state(PageDown) & QAccessible::Unavailable);
+ QCOMPARE(valueIface->currentValue().toInt(), scrollBar->value());
+ valueIface->setCurrentValue(77);
+ QCOMPARE(77, scrollBar->value());
delete scrollBarInterface;
delete scrollBar;