diff options
Diffstat (limited to 'src/gui/accessible')
-rw-r--r-- | src/gui/accessible/accessible.pri | 4 | ||||
-rw-r--r-- | src/gui/accessible/qaccessible.cpp | 135 | ||||
-rw-r--r-- | src/gui/accessible/qaccessible.h | 26 | ||||
-rw-r--r-- | src/gui/accessible/qaccessible2.cpp | 2 | ||||
-rw-r--r-- | src/gui/accessible/qaccessible2_p.h (renamed from src/gui/accessible/qaccessible2.h) | 10 | ||||
-rw-r--r-- | src/gui/accessible/qaccessiblebridge.h | 4 | ||||
-rw-r--r-- | src/gui/accessible/qaccessiblecache.cpp | 116 | ||||
-rw-r--r-- | src/gui/accessible/qaccessiblecache_p.h | 78 | ||||
-rw-r--r-- | src/gui/accessible/qaccessibleobject.cpp | 39 | ||||
-rw-r--r-- | src/gui/accessible/qaccessibleobject.h | 5 | ||||
-rw-r--r-- | src/gui/accessible/qaccessibleplugin.h | 4 | ||||
-rw-r--r-- | src/gui/accessible/qplatformaccessibility.h | 4 |
12 files changed, 345 insertions, 82 deletions
diff --git a/src/gui/accessible/accessible.pri b/src/gui/accessible/accessible.pri index 7c8e81812a..6fdb2d35b2 100644 --- a/src/gui/accessible/accessible.pri +++ b/src/gui/accessible/accessible.pri @@ -3,13 +3,15 @@ contains(QT_CONFIG, accessibility) { HEADERS += \ accessible/qaccessible.h \ - accessible/qaccessible2.h \ + accessible/qaccessiblecache_p.h \ + accessible/qaccessible2_p.h \ accessible/qaccessibleobject.h \ accessible/qaccessibleplugin.h \ accessible/qplatformaccessibility.h SOURCES += accessible/qaccessible.cpp \ accessible/qaccessible2.cpp \ + accessible/qaccessiblecache.cpp \ accessible/qaccessibleobject.cpp \ accessible/qaccessibleplugin.cpp \ accessible/qplatformaccessibility.cpp diff --git a/src/gui/accessible/qaccessible.cpp b/src/gui/accessible/qaccessible.cpp index 9b8e44f003..e007c9967e 100644 --- a/src/gui/accessible/qaccessible.cpp +++ b/src/gui/accessible/qaccessible.cpp @@ -41,6 +41,8 @@ #include "qaccessible.h" +#include "qaccessible2_p.h" +#include "qaccessiblecache_p.h" #include "qaccessibleplugin.h" #include "qaccessibleobject.h" #include "qaccessiblebridge.h" @@ -51,6 +53,7 @@ #include <QtCore/qdebug.h> #include <QtCore/qmetaobject.h> +#include <QtCore/qhash.h> #include <private/qfactoryloader_p.h> QT_BEGIN_NAMESPACE @@ -430,6 +433,8 @@ Q_GLOBAL_STATIC_WITH_ARGS(QFactoryLoader, loader, #endif Q_GLOBAL_STATIC(QList<QAccessible::InterfaceFactory>, qAccessibleFactories) +typedef QHash<QString, QAccessiblePlugin*> QAccessiblePluginsHash; +Q_GLOBAL_STATIC(QAccessiblePluginsHash, qAccessiblePlugins); QAccessible::UpdateHandler QAccessible::updateHandler = 0; QAccessible::RootObjectHandler QAccessible::rootObjectHandler = 0; @@ -555,6 +560,8 @@ QAccessible::RootObjectHandler QAccessible::installRootObjectHandler(RootObjectH return old; } +Q_GLOBAL_STATIC(QAccessibleCache, qAccessibleCache) + /*! If a QAccessibleInterface implementation exists for the given \a object, this function returns a pointer to the implementation; otherwise it @@ -571,8 +578,7 @@ QAccessible::RootObjectHandler QAccessible::installRootObjectHandler(RootObjectH function tries to find an implementation for the object's parent class, using the above strategy. - \warning The caller is responsible for deleting the returned - interface after use. + All interfaces are managed by an internal cache and should not be deleted. */ QAccessibleInterface *QAccessible::queryAccessibleInterface(QObject *object) { @@ -580,32 +586,117 @@ QAccessibleInterface *QAccessible::queryAccessibleInterface(QObject *object) if (!object) return 0; + if (Id id = qAccessibleCache->objectToId.value(object)) + return qAccessibleCache->interfaceForId(id); + + // Create a QAccessibleInterface for the object class. Start by the most + // derived class and walk up the class hierarchy. const QMetaObject *mo = object->metaObject(); while (mo) { const QString cn = QLatin1String(mo->className()); + + // Check if the class has a InterfaceFactory installed. for (int i = qAccessibleFactories()->count(); i > 0; --i) { InterfaceFactory factory = qAccessibleFactories()->at(i - 1); - if (QAccessibleInterface *iface = factory(cn, object)) + if (QAccessibleInterface *iface = factory(cn, object)) { + qAccessibleCache->insert(object, iface); + Q_ASSERT(qAccessibleCache->objectToId.contains(object)); return iface; + } } #ifndef QT_NO_ACCESSIBILITY #ifndef QT_NO_LIBRARY - if (QAccessibleInterface * iface = qLoadPlugin1<QAccessibleInterface, QAccessiblePlugin>(loader(), cn, object)) - return iface; + // Find a QAccessiblePlugin (factory) for the class name. If there's + // no entry in the cache try to create it using the plugin loader. + if (!qAccessiblePlugins()->contains(cn)) { + QAccessiblePlugin *factory = 0; // 0 means "no plugin found". This is cached as well. + const int index = loader()->indexOf(cn); + if (index != -1) + factory = qobject_cast<QAccessiblePlugin *>(loader()->instance(index)); + qAccessiblePlugins()->insert(cn, factory); + } + + // At this point the cache should contain a valid factory pointer or 0: + Q_ASSERT(qAccessiblePlugins()->contains(cn)); + QAccessiblePlugin *factory = qAccessiblePlugins()->value(cn); + if (factory) { + QAccessibleInterface *result = factory->create(cn, object); + if (result) { // Need this condition because of QDesktopScreenWidget + qAccessibleCache->insert(object, result); + Q_ASSERT(qAccessibleCache->objectToId.contains(object)); + } + return result; + } #endif #endif mo = mo->superClass(); } #ifndef QT_NO_ACCESSIBILITY - if (object == qApp) - return new QAccessibleApplication; + if (object == qApp) { + QAccessibleInterface *appInterface = new QAccessibleApplication; + qAccessibleCache->insert(object, appInterface); + Q_ASSERT(qAccessibleCache->objectToId.contains(qApp)); + return appInterface; + } #endif return 0; } /*! + \internal + Required to ensure that manually created interfaces + are properly memory managed. + + Must only be called exactly once per interface. + This is implicitly called when calling queryAccessibleInterface, + so it's only required when re-implementing for example + the child function and returning the child after new-ing + a QAccessibleInterface subclass. + */ +QAccessible::Id QAccessible::registerAccessibleInterface(QAccessibleInterface *iface) +{ + Q_ASSERT(iface); + return qAccessibleCache->insert(iface->object(), iface); +} + +/*! + \internal + Removes the interface belonging to this id from the cache and + deletes it. The id becomes invalid an may be re-used by the + cache. +*/ +void QAccessible::deleteAccessibleInterface(Id id) +{ + qAccessibleCache->deleteInterface(id); +} + +/*! + \internal + Returns the unique ID for the accessibleInterface. +*/ +QAccessible::Id QAccessible::uniqueId(QAccessibleInterface *iface) +{ + Id id = qAccessibleCache->idToInterface.key(iface); + if (!id) + id = registerAccessibleInterface(iface); + return id; +} + +/*! + \internal + Returns the QAccessibleInterface belonging to the id. + + Returns 0 if the id is invalid. +*/ +QAccessibleInterface *QAccessible::accessibleInterface(Id id) +{ + return qAccessibleCache->idToInterface.value(id); +} + + +/*! Returns true if an accessibility implementation has been requested during the runtime of the application; otherwise returns false. @@ -667,15 +758,23 @@ void QAccessible::setRootObject(QObject *object) */ void QAccessible::updateAccessibility(QAccessibleEvent *event) { - if (updateHandler) { - updateHandler(event); + if (!isActive()) return; + +#ifndef QT_NO_ACCESSIBILITY + if (event->type() == QAccessible::TableModelChanged) { + Q_ASSERT(event->object()); + if (QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(event->object())) { + if (iface->tableInterface()) + iface->tableInterface()->modelChange(static_cast<QAccessibleTableModelChangeEvent*>(event)); + } } - if (!isActive()) + if (updateHandler) { + updateHandler(event); return; + } -#ifndef QT_NO_ACCESSIBILITY if (QPlatformAccessibility *pfAccessibility = platformAccessibility()) pfAccessibility->notifyAccessibilityUpdate(event); #endif @@ -1008,6 +1107,10 @@ QColor QAccessibleInterface::backgroundColor() const return QColor(); } +QAccessibleInterface::~QAccessibleInterface() +{ +} + /*! \fn QAccessibleTextInterface *QAccessibleInterface::textInterface() \internal @@ -1329,15 +1432,19 @@ QColor QAccessibleInterface::backgroundColor() const QAccessibleInterface *QAccessibleEvent::accessibleInterface() const { QAccessibleInterface *iface = QAccessible::queryAccessibleInterface(m_object); - if (!iface) { - qWarning() << "Cannot create accessible interface for object: " << m_object; + if (!iface || !iface->isValid()) { + static bool hasWarned = false; + if (!hasWarned) { + qWarning() << "Problem creating accessible interface for: " << m_object << endl + << "Make sure to deploy Qt with accessibility plugins."; + hasWarned = true; + } return 0; } if (m_child >= 0) { QAccessibleInterface *child = iface->child(m_child); if (child) { - delete iface; iface = child; } else { qWarning() << "Cannot creat accessible child interface for object: " << m_object << " index: " << m_child; diff --git a/src/gui/accessible/qaccessible.h b/src/gui/accessible/qaccessible.h index 5988e6c346..8447f34154 100644 --- a/src/gui/accessible/qaccessible.h +++ b/src/gui/accessible/qaccessible.h @@ -39,10 +39,13 @@ ** ****************************************************************************/ +#include <QtCore/qglobal.h> + #ifndef QT_NO_ACCESSIBILITY #ifndef QACCESSIBLE_H #define QACCESSIBLE_H +#include <QtCore/qdebug.h> #include <QtCore/qglobal.h> #include <QtCore/qobject.h> #include <QtCore/qrect.h> @@ -54,11 +57,8 @@ #include <stdlib.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE - class QAccessibleInterface; class QAccessibleEvent; class QWindow; @@ -335,12 +335,20 @@ public: typedef void(*UpdateHandler)(QAccessibleEvent *event); typedef void(*RootObjectHandler)(QObject*); + typedef unsigned Id; + static void installFactory(InterfaceFactory); static void removeFactory(InterfaceFactory); static UpdateHandler installUpdateHandler(UpdateHandler); static RootObjectHandler installRootObjectHandler(RootObjectHandler); static QAccessibleInterface *queryAccessibleInterface(QObject *); + static Id uniqueId(QAccessibleInterface *iface); + static QAccessibleInterface *accessibleInterface(Id uniqueId); + static Id registerAccessibleInterface(QAccessibleInterface *iface); + static void deleteAccessibleInterface(Id uniqueId); + + #if QT_DEPRECATED_SINCE(5, 0) QT_DEPRECATED static inline void updateAccessibility(QObject *object, int child, Event reason); #endif @@ -360,6 +368,8 @@ private: it is not supposed to be instantiated. */ QAccessible() {} + + friend class QAccessibleCache; }; Q_GUI_EXPORT bool operator==(const QAccessible::State &first, const QAccessible::State &second); @@ -377,8 +387,10 @@ class QAccessibleTableCellInterface; class Q_GUI_EXPORT QAccessibleInterface { +protected: + virtual ~QAccessibleInterface(); + public: - virtual ~QAccessibleInterface() {} // check for valid pointers virtual bool isValid() const = 0; virtual QObject *object() const = 0; @@ -431,7 +443,9 @@ public: virtual void *interface_cast(QAccessible::InterfaceType) { return 0; } -private: + +protected: + friend class QAccessibleCache; }; class Q_GUI_EXPORT QAccessibleEvent @@ -679,7 +693,5 @@ inline void QAccessible::updateAccessibility(QObject *object, int child, Event r QT_END_NAMESPACE -QT_END_HEADER - #endif // QACCESSIBLE_H #endif //!QT_NO_ACCESSIBILITY diff --git a/src/gui/accessible/qaccessible2.cpp b/src/gui/accessible/qaccessible2.cpp index 3d7b8d5a76..bd9ecde260 100644 --- a/src/gui/accessible/qaccessible2.cpp +++ b/src/gui/accessible/qaccessible2.cpp @@ -39,7 +39,7 @@ ** ****************************************************************************/ -#include "qaccessible2.h" +#include "qaccessible2_p.h" #include <QtGui/QGuiApplication> #include "qclipboard.h" #include "qtextboundaryfinder.h" diff --git a/src/gui/accessible/qaccessible2.h b/src/gui/accessible/qaccessible2_p.h index 2f95094584..1a1eeea4ba 100644 --- a/src/gui/accessible/qaccessible2.h +++ b/src/gui/accessible/qaccessible2_p.h @@ -45,8 +45,6 @@ #include <QtGui/qaccessible.h> #include <QtCore/qcoreapplication.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE @@ -186,15 +184,17 @@ public: virtual bool isColumnSelected(int column) const = 0; // Returns a boolean value indicating whether the specified row is completely selected. virtual bool isRowSelected(int row) const = 0; - // Selects a row and unselects all previously selected rows. + // Selects a row and it might unselect all previously selected rows. virtual bool selectRow(int row) = 0; - // Selects a column and unselects all previously selected columns. + // Selects a column it might unselect all previously selected columns. virtual bool selectColumn(int column) = 0; // Unselects one row, leaving other selected rows selected (if any). virtual bool unselectRow(int row) = 0; // Unselects one column, leaving other selected columns selected (if any). virtual bool unselectColumn(int column) = 0; + virtual void modelChange(QAccessibleTableModelChangeEvent *event) = 0; + protected: friend class QAbstractItemView; friend class QAbstractItemViewPrivate; @@ -234,6 +234,4 @@ public: QT_END_NAMESPACE -QT_END_HEADER - #endif diff --git a/src/gui/accessible/qaccessiblebridge.h b/src/gui/accessible/qaccessiblebridge.h index 077996900b..0a0002af2c 100644 --- a/src/gui/accessible/qaccessiblebridge.h +++ b/src/gui/accessible/qaccessiblebridge.h @@ -45,8 +45,6 @@ #include <QtCore/qplugin.h> #include <QtCore/qfactoryinterface.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE @@ -79,6 +77,4 @@ public: QT_END_NAMESPACE -QT_END_HEADER - #endif // QACCESSIBLEBRIDGE_H diff --git a/src/gui/accessible/qaccessiblecache.cpp b/src/gui/accessible/qaccessiblecache.cpp new file mode 100644 index 0000000000..1b79c30b6c --- /dev/null +++ b/src/gui/accessible/qaccessiblecache.cpp @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qaccessiblecache_p.h" + +QT_BEGIN_NAMESPACE + +/*! + \class QAccessibleCache + \internal + \brief Maintains a cache of accessible interfaces. +*/ + +/* + The ID is always in the range [INT_MAX+1, UINT_MAX]. + This makes it easy on windows to reserve the positive integer range + for the index of a child and not clash with the unique ids. +*/ +QAccessible::Id QAccessibleCache::acquireId() const +{ + static const QAccessible::Id FirstId = QAccessible::Id(INT_MAX) + 1; + static QAccessible::Id lastUsedId = FirstId; + + while (idToInterface.contains(lastUsedId)) { + if (lastUsedId == UINT_MAX) // (wrap back when when we reach UINT_MAX) + lastUsedId = FirstId; + else + ++lastUsedId; + } + + return lastUsedId; +} + +QAccessibleInterface *QAccessibleCache::interfaceForId(QAccessible::Id id) const +{ + return idToInterface.value(id); +} + +QAccessible::Id QAccessibleCache::insert(QObject *object, QAccessibleInterface *iface) const +{ + Q_ASSERT(iface); + Q_UNUSED(object) + + // object might be 0 + Q_ASSERT(!objectToId.contains(object)); + Q_ASSERT_X(!idToInterface.values().contains(iface), "", "Accessible interface inserted into cache twice!"); + + QAccessible::Id id = acquireId(); + QObject *obj = iface->object(); + Q_ASSERT(object == obj); + if (obj) { + objectToId.insert(obj, id); + connect(obj, SIGNAL(destroyed(QObject *)), this, SLOT(objectDestroyed(QObject *))); + } + idToInterface.insert(id, iface); + return id; +} + +void QAccessibleCache::objectDestroyed(QObject* obj) +{ + QAccessible::Id id = objectToId.value(obj); + if (id) { + Q_ASSERT_X(idToInterface.contains(id), "", "QObject with accessible interface deleted, where interface not in cache!"); + deleteInterface(id, obj); + } +} + +void QAccessibleCache::deleteInterface(QAccessible::Id id, QObject *obj) +{ + QAccessibleInterface *iface = idToInterface.take(id); + if (!obj) + obj = iface->object(); + if (obj) + objectToId.remove(obj); + delete iface; +} + +QT_END_NAMESPACE diff --git a/src/gui/accessible/qaccessiblecache_p.h b/src/gui/accessible/qaccessiblecache_p.h new file mode 100644 index 0000000000..32f9c443ba --- /dev/null +++ b/src/gui/accessible/qaccessiblecache_p.h @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the QtGui module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. For licensing terms and +** conditions see http://qt.digia.com/licensing. For further information +** use the contact form at http://qt.digia.com/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Digia gives you certain additional +** rights. These rights are described in the Digia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU General Public License version 3.0 requirements will be +** met: http://www.gnu.org/copyleft/gpl.html. +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QACCESSIBLECACHE_P +#define QACCESSIBLECACHE_P + +#include <QtCore/qglobal.h> +#include <QtCore/qobject.h> +#include <QtCore/qhash.h> + +#include "qaccessible.h" + +QT_BEGIN_NAMESPACE + + +class QAccessibleCache :public QObject +{ + Q_OBJECT + +public: + QAccessibleInterface *interfaceForId(QAccessible::Id id) const; + QAccessible::Id insert(QObject *object, QAccessibleInterface *iface) const; + void deleteInterface(QAccessible::Id id, QObject *obj = 0); + +private Q_SLOTS: + void objectDestroyed(QObject *obj); + +private: + QAccessible::Id acquireId() const; + + mutable QHash<QAccessible::Id, QAccessibleInterface *> idToInterface; + mutable QHash<QObject *, QAccessible::Id> objectToId; + + friend class QAccessible; + friend class QAccessibleInterface; +}; + +QT_END_NAMESPACE + +#endif diff --git a/src/gui/accessible/qaccessibleobject.cpp b/src/gui/accessible/qaccessibleobject.cpp index af8787ae80..ccbfd36b70 100644 --- a/src/gui/accessible/qaccessibleobject.cpp +++ b/src/gui/accessible/qaccessibleobject.cpp @@ -55,39 +55,8 @@ class QAccessibleObjectPrivate { public: QPointer<QObject> object; - - QList<QByteArray> actionList() const; }; -QList<QByteArray> QAccessibleObjectPrivate::actionList() const -{ - QList<QByteArray> actionList; - - if (!object) - return actionList; - - const QMetaObject *mo = object->metaObject(); - Q_ASSERT(mo); - - QByteArray defaultAction = QMetaObject::normalizedSignature( - mo->classInfo(mo->indexOfClassInfo("DefaultSlot")).value()); - - for (int i = 0; i < mo->methodCount(); ++i) { - const QMetaMethod member = mo->method(i); - if (member.methodType() != QMetaMethod::Slot && member.access() != QMetaMethod::Public) - continue; - - if (!qstrcmp(member.tag(), "QACCESSIBLE_SLOT")) { - if (member.methodSignature() == defaultAction) - actionList.prepend(defaultAction); - else - actionList << member.methodSignature(); - } - } - - return actionList; -} - /*! \class QAccessibleObject \brief The QAccessibleObject class implements parts of the @@ -163,11 +132,8 @@ QAccessibleInterface *QAccessibleObject::childAt(int x, int y) const for (int i = 0; i < childCount(); ++i) { QAccessibleInterface *childIface = child(i); Q_ASSERT(childIface); - if (childIface->rect().contains(x,y)) { + if (childIface->rect().contains(x,y)) return childIface; - } else { - delete childIface; - } } return 0; } @@ -207,7 +173,6 @@ static QObjectList topLevelObjects() if (QAccessibleInterface *root = w->accessibleRoot()) { if (root->object()) list.append(root->object()); - delete root; } } } @@ -224,6 +189,8 @@ int QAccessibleApplication::childCount() const /*! \reimp */ int QAccessibleApplication::indexOfChild(const QAccessibleInterface *child) const { + if (!child) + return -1; const QObjectList tlw(topLevelObjects()); return tlw.indexOf(child->object()); } diff --git a/src/gui/accessible/qaccessibleobject.h b/src/gui/accessible/qaccessibleobject.h index abe55f38c6..4861af3557 100644 --- a/src/gui/accessible/qaccessibleobject.h +++ b/src/gui/accessible/qaccessibleobject.h @@ -43,9 +43,6 @@ #define QACCESSIBLEOBJECT_H #include <QtGui/qaccessible.h> -#include <QtGui/qaccessible2.h> - -QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -101,6 +98,4 @@ public: QT_END_NAMESPACE -QT_END_HEADER - #endif // QACCESSIBLEOBJECT_H diff --git a/src/gui/accessible/qaccessibleplugin.h b/src/gui/accessible/qaccessibleplugin.h index 6f7915d025..ac56c83f98 100644 --- a/src/gui/accessible/qaccessibleplugin.h +++ b/src/gui/accessible/qaccessibleplugin.h @@ -45,8 +45,6 @@ #include <QtGui/qaccessible.h> #include <QtCore/qfactoryinterface.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE @@ -73,6 +71,4 @@ public: QT_END_NAMESPACE -QT_END_HEADER - #endif // QACCESSIBLEPLUGIN_H diff --git a/src/gui/accessible/qplatformaccessibility.h b/src/gui/accessible/qplatformaccessibility.h index f10e8a7f12..26a22e492d 100644 --- a/src/gui/accessible/qplatformaccessibility.h +++ b/src/gui/accessible/qplatformaccessibility.h @@ -55,8 +55,6 @@ #include <QtGui/qaccessible.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE @@ -75,8 +73,6 @@ public: QT_END_NAMESPACE -QT_END_HEADER - #endif // QT_NO_ACCESSIBILITY #endif // QPLATFORMACCESSIBILITY_H |