summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorJan-Arve Saether <jan-arve.saether@nokia.com>2011-11-30 09:48:51 +0100
committerQt by Nokia <qt-info@nokia.com>2011-11-30 12:12:08 +0100
commit84e66f69ae2a2e0b70c8e51c93b6991bf3437e6d (patch)
tree64ec87aefef2c5749bd13b27a3501a3ce42b96ab /src/plugins
parent55c3799bd32d6fd8ec4b5fa26ebe3e5fdbbc91b3 (diff)
Fix casting. Casting is now done through the virtual interface_cast.
Change interface_cast to return void* to avoid using virtual inheritance. Get rid of the magic Q_ACCESSIBLE_OBJECT macro. Change-Id: I94b824aef53f2ba657d39d406b387c8681d47ee4 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/accessible/widgets/complexwidgets.cpp8
-rw-r--r--src/plugins/accessible/widgets/complexwidgets.h4
-rw-r--r--src/plugins/accessible/widgets/itemviews.cpp7
-rw-r--r--src/plugins/accessible/widgets/itemviews.h2
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.cpp7
-rw-r--r--src/plugins/accessible/widgets/qaccessiblemenu.h3
-rw-r--r--src/plugins/accessible/widgets/qaccessiblewidgets.cpp9
-rw-r--r--src/plugins/accessible/widgets/qaccessiblewidgets.h4
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.cpp14
-rw-r--r--src/plugins/accessible/widgets/rangecontrols.h4
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.cpp23
-rw-r--r--src/plugins/accessible/widgets/simplewidgets.h7
12 files changed, 76 insertions, 16 deletions
diff --git a/src/plugins/accessible/widgets/complexwidgets.cpp b/src/plugins/accessible/widgets/complexwidgets.cpp
index 766d18dbff..f5145bf537 100644
--- a/src/plugins/accessible/widgets/complexwidgets.cpp
+++ b/src/plugins/accessible/widgets/complexwidgets.cpp
@@ -1451,12 +1451,18 @@ QAccessible::State QAccessibleHeader::state(int child) const
class QAccessibleTabButton: public QAccessibleInterface, public QAccessibleActionInterface
{
- Q_ACCESSIBLE_OBJECT
public:
QAccessibleTabButton(QTabBar *parent, int index)
: m_parent(parent), m_index(index)
{}
+ void *interface_cast(QAccessible::InterfaceType t) {
+ if (t == QAccessible::ActionInterface) {
+ return static_cast<QAccessibleActionInterface*>(this);
+ }
+ return 0;
+ }
+
QObject *object() const { return 0; }
Role role() const { return QAccessible::PageTab; }
State state() const {
diff --git a/src/plugins/accessible/widgets/complexwidgets.h b/src/plugins/accessible/widgets/complexwidgets.h
index 53997b96ff..f094719a6c 100644
--- a/src/plugins/accessible/widgets/complexwidgets.h
+++ b/src/plugins/accessible/widgets/complexwidgets.h
@@ -103,7 +103,6 @@ public:
#ifndef QT_NO_ITEMVIEWS
class QAccessibleHeader : public QAccessibleWidget
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleHeader(QWidget *w);
@@ -162,7 +161,6 @@ private:
class QAccessibleItemView: public QAccessibleAbstractScrollArea, public QAccessibleTableInterface
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleItemView(QWidget *w);
@@ -232,7 +230,6 @@ private:
#ifndef QT_NO_TABBAR
class QAccessibleTabBar : public QAccessibleWidget
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleTabBar(QWidget *w);
@@ -254,7 +251,6 @@ protected:
#ifndef QT_NO_COMBOBOX
class QAccessibleComboBox : public QAccessibleWidget
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleComboBox(QWidget *w);
diff --git a/src/plugins/accessible/widgets/itemviews.cpp b/src/plugins/accessible/widgets/itemviews.cpp
index 6abc27b2a1..6b986154b7 100644
--- a/src/plugins/accessible/widgets/itemviews.cpp
+++ b/src/plugins/accessible/widgets/itemviews.cpp
@@ -470,6 +470,13 @@ QAccessible::Relation QAccessibleTable2::relationTo(const QAccessibleInterface *
return QAccessible::Unrelated;
}
+void *QAccessibleTable2::interface_cast(QAccessible::InterfaceType t)
+{
+ if (t == QAccessible::Table2Interface)
+ return static_cast<QAccessibleTable2Interface*>(this);
+ return 0;
+}
+
// TREE VIEW
QModelIndex QAccessibleTree::indexFromLogical(int row, int column) const
diff --git a/src/plugins/accessible/widgets/itemviews.h b/src/plugins/accessible/widgets/itemviews.h
index deee866c34..80d22650d4 100644
--- a/src/plugins/accessible/widgets/itemviews.h
+++ b/src/plugins/accessible/widgets/itemviews.h
@@ -60,7 +60,6 @@ class QAccessibleTable2HeaderCell;
class QAccessibleTable2 :public QAccessibleTable2Interface, public QAccessibleObject
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleTable2(QWidget *w);
@@ -82,6 +81,7 @@ public:
Relation relationTo(const QAccessibleInterface *other) const;
QVariant invokeMethod(Method, const QVariantList &) { return QVariant(); }
+ void *interface_cast(QAccessible::InterfaceType t);
// table2 interface
virtual QAccessibleTable2CellInterface *cellAt(int row, int column) const;
diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.cpp b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
index edf74105e6..ed221c6172 100644
--- a/src/plugins/accessible/widgets/qaccessiblemenu.cpp
+++ b/src/plugins/accessible/widgets/qaccessiblemenu.cpp
@@ -277,6 +277,13 @@ int QAccessibleMenuItem::navigate(RelationFlag relation, int entry, QAccessibleI
return *target ? 0 : -1;
}
+void *QAccessibleMenuItem::interface_cast(QAccessible::InterfaceType t)
+{
+ if (t == QAccessible::ActionInterface)
+ return static_cast<QAccessibleActionInterface*>(this);
+ return 0;
+}
+
QObject *QAccessibleMenuItem::object() const
{
return m_action;
diff --git a/src/plugins/accessible/widgets/qaccessiblemenu.h b/src/plugins/accessible/widgets/qaccessiblemenu.h
index ae5c4ba8cd..7c7956e988 100644
--- a/src/plugins/accessible/widgets/qaccessiblemenu.h
+++ b/src/plugins/accessible/widgets/qaccessiblemenu.h
@@ -92,11 +92,12 @@ protected:
class QAccessibleMenuItem : public QAccessibleInterface, public QAccessibleActionInterface
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleMenuItem(QWidget *owner, QAction *w);
virtual ~QAccessibleMenuItem();
+
+ void *interface_cast(QAccessible::InterfaceType t);
virtual int childAt(int x, int y) const;
virtual int childCount() const;
virtual int indexOfChild(const QAccessibleInterface * child) const;
diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
index d2d56065d0..9dec243dd7 100644
--- a/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
+++ b/src/plugins/accessible/widgets/qaccessiblewidgets.cpp
@@ -302,6 +302,15 @@ QVariant QAccessibleTextEdit::invokeMethod(QAccessible::Method method,
}
}
+void *QAccessibleTextEdit::interface_cast(QAccessible::InterfaceType t)
+{
+ if (t == QAccessible::TextInterface)
+ return static_cast<QAccessibleTextInterface*>(this);
+ else if (t == QAccessible::EditableTextInterface)
+ return static_cast<QAccessibleEditableTextInterface*>(this);
+ return QAccessibleWidget::interface_cast(t);
+}
+
void QAccessibleTextEdit::addSelection(int startOffset, int endOffset)
{
setSelection(0, startOffset, endOffset);
diff --git a/src/plugins/accessible/widgets/qaccessiblewidgets.h b/src/plugins/accessible/widgets/qaccessiblewidgets.h
index 04de22bb1e..b416469dc6 100644
--- a/src/plugins/accessible/widgets/qaccessiblewidgets.h
+++ b/src/plugins/accessible/widgets/qaccessiblewidgets.h
@@ -69,7 +69,6 @@ class QMainWindow;
class QAccessibleTextEdit : public QAccessibleWidget, public QAccessibleTextInterface,
public QAccessibleEditableTextInterface
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleTextEdit(QWidget *o);
@@ -77,6 +76,7 @@ public:
void setText(Text t, const QString &text);
QVariant invokeMethod(QAccessible::Method method, const QVariantList &params);
+ void *interface_cast(QAccessible::InterfaceType t);
// QAccessibleTextInterface
void addSelection(int startOffset, int endOffset);
@@ -118,7 +118,6 @@ private:
class QAccessibleStackedWidget : public QAccessibleWidget
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleStackedWidget(QWidget *widget);
@@ -135,7 +134,6 @@ protected:
class QAccessibleToolBox : public QAccessibleWidget
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleToolBox(QWidget *widget);
diff --git a/src/plugins/accessible/widgets/rangecontrols.cpp b/src/plugins/accessible/widgets/rangecontrols.cpp
index db10a1bff3..684b45d7c5 100644
--- a/src/plugins/accessible/widgets/rangecontrols.cpp
+++ b/src/plugins/accessible/widgets/rangecontrols.cpp
@@ -87,6 +87,13 @@ QString QAccessibleAbstractSpinBox::text(Text t) const
return QAccessibleWidget::text(t);
}
+void *QAccessibleAbstractSpinBox::interface_cast(QAccessible::InterfaceType t)
+{
+ if (t == QAccessible::ValueInterface)
+ return static_cast<QAccessibleValueInterface*>(this);
+ return QAccessibleWidget::interface_cast(t);
+}
+
QVariant QAccessibleAbstractSpinBox::currentValue()
{
QVariant result = abstractSpinBox()->property("value");
@@ -244,6 +251,13 @@ QAccessibleAbstractSlider::QAccessibleAbstractSlider(QWidget *w, Role r)
Q_ASSERT(qobject_cast<QAbstractSlider *>(w));
}
+void *QAccessibleAbstractSlider::interface_cast(QAccessible::InterfaceType t)
+{
+ if (t == QAccessible::ValueInterface)
+ return static_cast<QAccessibleValueInterface*>(this);
+ return QAccessibleWidget::interface_cast(t);
+}
+
QVariant QAccessibleAbstractSlider::currentValue()
{
return abstractSlider()->value();
diff --git a/src/plugins/accessible/widgets/rangecontrols.h b/src/plugins/accessible/widgets/rangecontrols.h
index 6719329cd8..59eb8f934a 100644
--- a/src/plugins/accessible/widgets/rangecontrols.h
+++ b/src/plugins/accessible/widgets/rangecontrols.h
@@ -60,11 +60,11 @@ class QDial;
#ifndef QT_NO_SPINBOX
class QAccessibleAbstractSpinBox: public QAccessibleWidget, public QAccessibleValueInterface // TODO, public QAccessibleActionInterface
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleAbstractSpinBox(QWidget *w);
QString text(Text t) const;
+ void *interface_cast(QAccessible::InterfaceType t);
// QAccessibleValueInterface
QVariant currentValue();
@@ -101,9 +101,9 @@ protected:
class QAccessibleAbstractSlider: public QAccessibleWidget, public QAccessibleValueInterface
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleAbstractSlider(QWidget *w, Role r = Slider);
+ void *interface_cast(QAccessible::InterfaceType t);
// QAccessibleValueInterface
QVariant currentValue();
diff --git a/src/plugins/accessible/widgets/simplewidgets.cpp b/src/plugins/accessible/widgets/simplewidgets.cpp
index f83c9fe30e..28661f0fc3 100644
--- a/src/plugins/accessible/widgets/simplewidgets.cpp
+++ b/src/plugins/accessible/widgets/simplewidgets.cpp
@@ -474,6 +474,13 @@ int QAccessibleDisplay::navigate(RelationFlag rel, int entry, QAccessibleInterfa
return QAccessibleWidget::navigate(rel, entry, target);
}
+void *QAccessibleDisplay::interface_cast(QAccessible::InterfaceType t)
+{
+ if (t == QAccessible::ImageInterface)
+ return static_cast<QAccessibleImageInterface*>(this);
+ return QAccessibleWidget::interface_cast(t);
+}
+
/*! \internal */
QString QAccessibleDisplay::imageDescription()
{
@@ -614,6 +621,15 @@ QVariant QAccessibleLineEdit::invokeMethod(QAccessible::Method method,
}
}
+void *QAccessibleLineEdit::interface_cast(QAccessible::InterfaceType t)
+{
+ if (t == QAccessible::TextInterface)
+ return static_cast<QAccessibleTextInterface*>(this);
+ else if (t == QAccessible::EditableTextInterface)
+ return static_cast<QAccessibleEditableTextInterface*>(this);
+ return QAccessibleWidget::interface_cast(t);
+}
+
void QAccessibleLineEdit::addSelection(int startOffset, int endOffset)
{
setSelection(0, startOffset, endOffset);
@@ -743,6 +759,13 @@ QAccessibleProgressBar::QAccessibleProgressBar(QWidget *o)
Q_ASSERT(progressBar());
}
+void *QAccessibleProgressBar::interface_cast(QAccessible::InterfaceType t)
+{
+ if (t == QAccessible::ValueInterface)
+ return static_cast<QAccessibleValueInterface*>(this);
+ return QAccessibleDisplay::interface_cast(t);
+}
+
QVariant QAccessibleProgressBar::currentValue()
{
return progressBar()->value();
diff --git a/src/plugins/accessible/widgets/simplewidgets.h b/src/plugins/accessible/widgets/simplewidgets.h
index 25c3150386..35fa6ee9b8 100644
--- a/src/plugins/accessible/widgets/simplewidgets.h
+++ b/src/plugins/accessible/widgets/simplewidgets.h
@@ -57,7 +57,6 @@ class QProgressBar;
class QAccessibleButton : public QAccessibleWidget
{
- Q_ACCESSIBLE_OBJECT
Q_DECLARE_TR_FUNCTIONS(QAccessibleButton)
public:
QAccessibleButton(QWidget *w, Role r);
@@ -99,7 +98,6 @@ protected:
class QAccessibleDisplay : public QAccessibleWidget, public QAccessibleImageInterface
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleDisplay(QWidget *w, Role role = StaticText);
@@ -108,6 +106,7 @@ public:
Relation relationTo(const QAccessibleInterface *other) const;
int navigate(RelationFlag, int entry, QAccessibleInterface **target) const;
+ void *interface_cast(QAccessible::InterfaceType t);
// QAccessibleImageInterface
QString imageDescription();
@@ -119,7 +118,6 @@ public:
class QAccessibleLineEdit : public QAccessibleWidget, public QAccessibleTextInterface,
public QAccessibleSimpleEditableTextInterface
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleLineEdit(QWidget *o, const QString &name = QString());
@@ -127,6 +125,7 @@ public:
void setText(Text t, const QString &text);
State state() const;
QVariant invokeMethod(QAccessible::Method method, const QVariantList &params);
+ void *interface_cast(QAccessible::InterfaceType t);
// QAccessibleTextInterface
void addSelection(int startOffset, int endOffset);
@@ -157,9 +156,9 @@ protected:
#ifndef QT_NO_PROGRESSBAR
class QAccessibleProgressBar : public QAccessibleDisplay, public QAccessibleValueInterface
{
- Q_ACCESSIBLE_OBJECT
public:
explicit QAccessibleProgressBar(QWidget *o);
+ void *interface_cast(QAccessible::InterfaceType t);
// QAccessibleValueInterface
QVariant currentValue();