diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-03-18 16:02:06 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-03-22 17:11:17 +0100 |
commit | 4e07286a30fb58321f46a9fd0e0033f06bf9eb4d (patch) | |
tree | c886f76f0a7eeb00b353dfcd3e863f59c3504674 /src/plugins/accessible/widgets/main.cpp | |
parent | f4609b202208fe592d24c7ae3b4a48ee83045497 (diff) |
Only instantiate QAccessibleWidget after trying inherited classes
The plugin should try each class name from the meta object
in succession instead of giving up right away and just using
QWidget.
This improves the handling of the itemviews and makes many sub-classes
of QWidget outside of Qt work.
Change-Id: Id81017c648fe229c3eb85d6d9ae6696d5f16a1ef
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Diffstat (limited to 'src/plugins/accessible/widgets/main.cpp')
-rw-r--r-- | src/plugins/accessible/widgets/main.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/plugins/accessible/widgets/main.cpp b/src/plugins/accessible/widgets/main.cpp index 92cda9f3ca..ade4979256 100644 --- a/src/plugins/accessible/widgets/main.cpp +++ b/src/plugins/accessible/widgets/main.cpp @@ -172,12 +172,11 @@ QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObjec iface = new QAccessibleMenu(widget); #endif #ifndef QT_NO_ITEMVIEWS - } else if (classname == QLatin1String("QAbstractItemView")) { - if (qobject_cast<const QTreeView*>(widget)) { - iface = new QAccessibleTree(widget); - } else { - iface = new QAccessibleTable(widget); - } + } else if (classname == QLatin1String("QTreeView")) { + iface = new QAccessibleTree(widget); + } else if (classname == QLatin1String("QTableView") || classname == QLatin1String("QListView")) { + iface = new QAccessibleTable(widget); + // ### This should be cleaned up. We return the parent for the scrollarea to hide it. } else if (classname == QLatin1String("QWidget") && widget->objectName() == QLatin1String("qt_scrollarea_viewport") && qobject_cast<QAbstractItemView*>(widget->parentWidget())) { @@ -254,7 +253,7 @@ QAccessibleInterface *AccessibleFactory::create(const QString &classname, QObjec } else if (classname == QLatin1String("QDesktopScreenWidget")) { iface = 0; - } else { + } else if (classname == QLatin1String("QWidget")) { iface = new QAccessibleWidget(widget); } |