Simplify QAccessibleSpinboxes.
authorFrederik Gladhorn <frederik.gladhorn@nokia.com>
Fri, 9 Sep 2011 14:06:38 +0000 (16:06 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 27 Sep 2011 03:15:09 +0000 (05:15 +0200)
Change-Id: I2fb3ef0ccd108539d8a4abbf3bbd3fdf6d94fac2
Reviewed-on: http://codereview.qt-project.org/4823
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
src/plugins/accessible/widgets/rangecontrols.cpp
src/plugins/accessible/widgets/rangecontrols.h

index 464112d..00ca5c8 100644 (file)
@@ -81,15 +81,6 @@ QAbstractSpinBox *QAccessibleAbstractSpinBox::abstractSpinBox() const
 }
 
 /*! \reimp */
-QRect QAccessibleAbstractSpinBox::rect(int child) const
-{
-    QRect rect;
-    if (!abstractSpinBox()->isVisible())
-        return rect;
-    return widget()->rect();
-}
-
-/*! \reimp */
 QString QAccessibleAbstractSpinBox::text(Text t, int child) const
 {
     if (t == QAccessible::Value)
@@ -197,7 +188,7 @@ bool QAccessibleSpinBox::doAction(int action, int child, const QVariantList &par
 
 // ================================== QAccessibleDoubleSpinBox ==================================
 QAccessibleDoubleSpinBox::QAccessibleDoubleSpinBox(QWidget *widget)
-    : QAccessibleWidget(widget, SpinBox)
+    : QAccessibleAbstractSpinBox(widget)
 {
     Q_ASSERT(qobject_cast<QDoubleSpinBox *>(widget));
     addControllingSignal(QLatin1String("valueChanged(double)"));
@@ -212,65 +203,6 @@ QDoubleSpinBox *QAccessibleDoubleSpinBox::doubleSpinBox() const
     return static_cast<QDoubleSpinBox*>(object());
 }
 
-/*! \reimp */
-int QAccessibleDoubleSpinBox::childCount() const
-{
-    return ValueDown;
-}
-
-/*! \reimp */
-QRect QAccessibleDoubleSpinBox::rect(int child) const
-{
-    QRect rect;
-    if (!doubleSpinBox()->isVisible())
-        return rect;
-    QStyleOptionSpinBox spinBoxOption;
-    spinBoxOption.initFrom(doubleSpinBox());
-    switch (child) {
-    case Editor:
-        rect = doubleSpinBox()->style()->subControlRect(QStyle::CC_SpinBox, &spinBoxOption,
-                                                 QStyle::SC_SpinBoxEditField, doubleSpinBox());
-        break;
-    case ValueUp:
-        rect = doubleSpinBox()->style()->subControlRect(QStyle::CC_SpinBox, &spinBoxOption,
-                                                 QStyle::SC_SpinBoxUp, doubleSpinBox());
-        break;
-    case ValueDown:
-        rect = doubleSpinBox()->style()->subControlRect(QStyle::CC_SpinBox, &spinBoxOption,
-                                                 QStyle::SC_SpinBoxDown, doubleSpinBox());
-        break;
-    default:
-        rect = spinBoxOption.rect;
-        break;
-    }
-    const QPoint globalPos = doubleSpinBox()->mapToGlobal(QPoint(0, 0));
-    return QRect(globalPos.x() + rect.x(), globalPos.y() + rect.y(), rect.width(), rect.height());
-}
-
-/*! \reimp */
-int QAccessibleDoubleSpinBox::navigate(RelationFlag relation, int entry, QAccessibleInterface **target) const
-{
-    if (entry <= 0)
-        return QAccessibleWidget::navigate(relation, entry, target);
-
-    *target = 0;
-    switch (relation) {
-    case Child:
-        return entry <= childCount() ? entry : -1;
-    case QAccessible::Left:
-        return (entry == ValueUp || entry == ValueDown) ? Editor : -1;
-    case QAccessible::Right:
-        return entry == Editor ? ValueUp : -1;
-    case QAccessible::Up:
-        return entry == ValueDown ? ValueUp : -1;
-    case QAccessible::Down:
-        return entry == ValueUp ? ValueDown : -1;
-    default:
-        break;
-    }
-    return QAccessibleWidget::navigate(relation, entry, target);
-}
-
 QVariant QAccessibleDoubleSpinBox::invokeMethod(QAccessible::Method, int, const QVariantList &)
 {
     return QVariant();
@@ -279,56 +211,11 @@ QVariant QAccessibleDoubleSpinBox::invokeMethod(QAccessible::Method, int, const
 /*! \reimp */
 QString QAccessibleDoubleSpinBox::text(Text textType, int child) const
 {
-    switch (textType) {
-    case Name:
-        if (child == ValueUp)
-            return QDoubleSpinBox::tr("More");
-        else if (child == ValueDown)
-            return QDoubleSpinBox::tr("Less");
-        break;
-    case Value:
-        if (child == Editor || child == SpinBoxSelf)
-            return doubleSpinBox()->textFromValue(doubleSpinBox()->value());
-        break;
-    default:
-        break;
-    }
+    if (textType == Value)
+        return doubleSpinBox()->textFromValue(doubleSpinBox()->value());
     return QAccessibleWidget::text(textType, 0);
 }
 
-/*! \reimp */
-QAccessible::Role QAccessibleDoubleSpinBox::role(int child) const
-{
-    switch (child) {
-    case Editor:
-        return EditableText;
-    case ValueUp:
-    case ValueDown:
-        return PushButton;
-    default:
-        break;
-    }
-    return QAccessibleWidget::role(child);
-}
-
-/*! \reimp */
-QAccessible::State QAccessibleDoubleSpinBox::state(int child) const
-{
-    State state = QAccessibleWidget::state(child);
-    switch (child) {
-    case ValueUp:
-        if (doubleSpinBox()->value() >= doubleSpinBox()->maximum())
-            state |= Unavailable;
-        break;
-    case ValueDown:
-        if (doubleSpinBox()->value() <= doubleSpinBox()->minimum())
-            state |= Unavailable;
-        break;
-    default:
-        break;
-    }
-    return state;
-}
 #endif // QT_NO_SPINBOX
 
 #ifndef QT_NO_SCROLLBAR
index 7ff64cb..07bb73a 100644 (file)
@@ -64,8 +64,6 @@ class QAccessibleAbstractSpinBox: public QAccessibleWidget, public QAccessibleVa
 public:
     explicit QAccessibleAbstractSpinBox(QWidget *w);
 
-    QRect rect(int child) const;
-
     QString text(Text t, int child) const;
 
     bool doAction(int action, int child, const QVariantList &params);
@@ -94,25 +92,13 @@ protected:
     QSpinBox *spinBox() const;
 };
 
-class QAccessibleDoubleSpinBox : public QAccessibleWidget
+class QAccessibleDoubleSpinBox : public QAccessibleAbstractSpinBox
 {
 public:
     explicit QAccessibleDoubleSpinBox(QWidget *widget);
 
-    enum DoubleSpinBoxElements {
-        SpinBoxSelf = 0,
-        Editor,
-        ValueUp,
-        ValueDown
-    };
-
-    int childCount() const;
-    QRect rect(int child) const;
-    int navigate(RelationFlag rel, int entry, QAccessibleInterface **target) const;
     QVariant invokeMethod(QAccessible::Method method, int child, const QVariantList &params);
     QString text(Text t, int child) const;
-    Role role(int child) const;
-    State state(int child) const;
 
 protected:
     QDoubleSpinBox *doubleSpinBox() const;