Compile with changes to the accessibility API.
Change-Id: I72e7636a02ad2fba984f4a96cbb33d441a7f8be7 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
This commit is contained in:
parent
a7fd8696dd
commit
b9450734c9
@ -62,7 +62,7 @@ void MouseInterceptingGraphicsScene::mouseDoubleClickEvent(QGraphicsSceneMouseEv
|
||||
AccessibilitySceneManager *sceneManager = 0;
|
||||
QAccessible::UpdateHandler previousUpdateHandler = 0;
|
||||
bool updateHandlerRecursion = false;
|
||||
void accessibilityUpdateHandler(QObject *object, int who, QAccessible::Event reason)
|
||||
void accessibilityUpdateHandler(QAccessibleEvent *event)
|
||||
{
|
||||
if (updateHandlerRecursion)
|
||||
return;
|
||||
@ -70,13 +70,13 @@ void accessibilityUpdateHandler(QObject *object, int who, QAccessible::Event rea
|
||||
updateHandlerRecursion = true;
|
||||
|
||||
if (sceneManager) {
|
||||
sceneManager->handleUpdate(object, reason);
|
||||
sceneManager->handleUpdate(event);
|
||||
|
||||
//qDebug() << "update";
|
||||
}
|
||||
|
||||
if (previousUpdateHandler) // call prev just to be sure.
|
||||
previousUpdateHandler(object, who, reason);
|
||||
previousUpdateHandler(event);
|
||||
|
||||
updateHandlerRecursion = false;
|
||||
}
|
||||
|
@ -73,7 +73,6 @@ void AccessibilitySceneManager::updateAccessibilitySceneItemFlags()
|
||||
if (!interface)
|
||||
continue;
|
||||
updateItemFlags(m_graphicsItems.value(object), interface);
|
||||
delete interface;
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,15 +88,18 @@ void AccessibilitySceneManager::populateAccessibilityTreeScene()
|
||||
populateAccessibilityTreeScene(rootInterface);
|
||||
}
|
||||
|
||||
void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event reason)
|
||||
void AccessibilitySceneManager::handleUpdate(QAccessibleEvent *event)
|
||||
{
|
||||
QObject *object = event->object();
|
||||
QAccessible::Event type = event->type();
|
||||
|
||||
QAccessibleInterface *interface = QAccessible::queryAccessibleInterface(object);
|
||||
if (!interface)
|
||||
return;
|
||||
|
||||
QString name = interface->text(QAccessible::Name);
|
||||
|
||||
if (reason == QAccessible::ObjectCreated) {
|
||||
if (type == QAccessible::ObjectCreated) {
|
||||
// qDebug() << "ObjectCreated" << object << name;
|
||||
populateAccessibilityScene(interface, m_scene);
|
||||
}
|
||||
@ -109,7 +111,7 @@ void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event
|
||||
return;
|
||||
}
|
||||
|
||||
if (reason == QAccessible::LocationChanged) {
|
||||
if (type == QAccessible::LocationChanged) {
|
||||
|
||||
//if (name.startsWith("List"))
|
||||
qDebug() << "locationChange" << object << name << interface->rect();
|
||||
@ -119,12 +121,10 @@ void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event
|
||||
QAccessibleInterface *child = interface->child(i);
|
||||
if (child) {
|
||||
updateItem(m_graphicsItems.value(child->object()), child);
|
||||
delete child;
|
||||
}
|
||||
}
|
||||
|
||||
delete interface;
|
||||
} else if (reason == QAccessible::ObjectDestroyed) {
|
||||
} else if (type == QAccessible::ObjectDestroyed) {
|
||||
// qDebug() << "ObjectDestroyed" << object << name;
|
||||
delete m_graphicsItems.value(object);
|
||||
m_graphicsItems.remove(object);
|
||||
@ -132,28 +132,25 @@ void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event
|
||||
if (object == m_selectedObject) {
|
||||
m_selectedObject = 0;
|
||||
}
|
||||
} else if (reason == QAccessible::ObjectHide) {
|
||||
} else if (type == QAccessible::ObjectHide) {
|
||||
// qDebug() << "ObjectCreated Hide" << object;
|
||||
updateItemFlags(item, interface);
|
||||
} else if (reason == QAccessible::ObjectShow) {
|
||||
} else if (type == QAccessible::ObjectShow) {
|
||||
// qDebug() << "ObjectCreated Show" << object;
|
||||
updateItemFlags(item, interface);
|
||||
} else if (reason == QAccessible::ScrollingStart) {
|
||||
} else if (type == QAccessible::ScrollingStart) {
|
||||
qDebug() << "ObjectCreated ScrollingStart" << object;
|
||||
QAccessibleInterface *child = 0;
|
||||
for (int i = 0; i < interface->childCount(); ++i) {
|
||||
QAccessibleInterface *child = interface->child(i);
|
||||
if (child) {
|
||||
m_animatedObjects.insert(child->object());
|
||||
delete child;
|
||||
}
|
||||
}
|
||||
} else if (reason == QAccessible::ScrollingEnd) {
|
||||
} else if (type == QAccessible::ScrollingEnd) {
|
||||
// qDebug() << "ObjectCreated ScrollingEnd" << object;
|
||||
foreach (QObject *object, m_animatedObjects) {
|
||||
updateItem(m_graphicsItems.value(object), interface);
|
||||
}
|
||||
delete interface;
|
||||
m_animatedObjects.clear();
|
||||
|
||||
} else {
|
||||
@ -197,10 +194,7 @@ void AccessibilitySceneManager::updateItems(QObject *root)
|
||||
for (int i = 0; i < interface->childCount(); ++i) {
|
||||
QAccessibleInterface *child = interface->child(i);
|
||||
updateItems(child->object());
|
||||
delete child;
|
||||
}
|
||||
|
||||
delete interface;
|
||||
}
|
||||
|
||||
void AccessibilitySceneManager::updateItem(QObject *object)
|
||||
@ -213,8 +207,6 @@ void AccessibilitySceneManager::updateItem(QObject *object)
|
||||
return;
|
||||
|
||||
updateItem(m_graphicsItems.value(object), interface);
|
||||
|
||||
delete interface;
|
||||
}
|
||||
|
||||
void AccessibilitySceneManager::updateItem(QGraphicsRectItem *item, QAccessibleInterface *interface)
|
||||
@ -332,7 +324,6 @@ void AccessibilitySceneManager::populateAccessibilityScene(QAccessibleInterface
|
||||
QAccessibleInterface *child = interface->child(i);
|
||||
updateItems(child->object());
|
||||
populateAccessibilityScene(child, scene);
|
||||
delete child;
|
||||
}
|
||||
}
|
||||
|
||||
@ -351,7 +342,6 @@ AccessibilitySceneManager::TreeItem AccessibilitySceneManager::computeLevels(QAc
|
||||
TreeItem childLevel = computeLevels(child, level + 1);
|
||||
currentLevel.children.append(childLevel);
|
||||
currentLevel.width += childLevel.width + m_treeItemHorizontalPadding;
|
||||
delete child;
|
||||
}
|
||||
}
|
||||
|
||||
@ -485,11 +475,7 @@ bool AccessibilitySceneManager::isHidden(QAccessibleInterface *interface)
|
||||
return true;
|
||||
}
|
||||
|
||||
QAccessibleInterface *parent = current->parent();
|
||||
|
||||
if (current != interface)
|
||||
delete current;
|
||||
current = parent;
|
||||
current = current->parent();
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -63,7 +63,7 @@ public slots:
|
||||
void populateAccessibilityScene();
|
||||
void updateAccessibilitySceneItemFlags();
|
||||
void populateAccessibilityTreeScene();
|
||||
void handleUpdate(QObject *object, QAccessible::Event reason);
|
||||
void handleUpdate(QAccessibleEvent *event);
|
||||
void setSelected(QObject *object);
|
||||
|
||||
void changeScale(int scale);
|
||||
|
@ -42,6 +42,7 @@
|
||||
#include "screenreader.h"
|
||||
#include "optionswidget.h"
|
||||
#include "accessibilityscenemanager.h"
|
||||
#include <private/qaccessible2_p.h>
|
||||
#include <QtGui>
|
||||
|
||||
ScreenReader::ScreenReader(QObject *parent) :
|
||||
@ -54,8 +55,6 @@ ScreenReader::ScreenReader(QObject *parent) :
|
||||
|
||||
ScreenReader::~ScreenReader()
|
||||
{
|
||||
delete m_selectedInterface;
|
||||
delete m_rootInterface;
|
||||
}
|
||||
|
||||
void ScreenReader::setRootObject(QObject *rootObject)
|
||||
|
Loading…
x
Reference in New Issue
Block a user