From 84e66f69ae2a2e0b70c8e51c93b6991bf3437e6d Mon Sep 17 00:00:00 2001 From: Jan-Arve Saether Date: Wed, 30 Nov 2011 09:48:51 +0100 Subject: 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 --- src/widgets/accessible/qaccessiblewidget.cpp | 7 +++++++ src/widgets/accessible/qaccessiblewidget.h | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'src/widgets') diff --git a/src/widgets/accessible/qaccessiblewidget.cpp b/src/widgets/accessible/qaccessiblewidget.cpp index 9afb45c45e..30b21d3146 100644 --- a/src/widgets/accessible/qaccessiblewidget.cpp +++ b/src/widgets/accessible/qaccessiblewidget.cpp @@ -875,6 +875,13 @@ QColor QAccessibleWidget::backgroundColor() const return widget()->palette().color(widget()->backgroundRole()); } +void *QAccessibleWidget::interface_cast(QAccessible::InterfaceType t) +{ + if (t == QAccessible::ActionInterface) + return static_cast(this); + return 0; +} + QT_END_NAMESPACE #endif //QT_NO_ACCESSIBILITY diff --git a/src/widgets/accessible/qaccessiblewidget.h b/src/widgets/accessible/qaccessiblewidget.h index 87edf75f0e..cc86c46581 100644 --- a/src/widgets/accessible/qaccessiblewidget.h +++ b/src/widgets/accessible/qaccessiblewidget.h @@ -56,7 +56,6 @@ class QAccessibleWidgetPrivate; class Q_WIDGETS_EXPORT QAccessibleWidget : public QAccessibleObject, public QAccessibleActionInterface { - Q_ACCESSIBLE_OBJECT public: explicit QAccessibleWidget(QWidget *o, Role r = Client, const QString& name = QString()); @@ -79,6 +78,7 @@ public: QColor foregroundColor() const; QColor backgroundColor() const; + void *interface_cast(QAccessible::InterfaceType t); // QAccessibleActionInterface QStringList actionNames() const; -- cgit v1.2.3