Change-Id: I3c490eb2ce9bd655f4808b232663a530baec5990
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
This commit is contained in:
Morten Johan Sorvig 2012-01-17 20:02:18 +01:00 committed by Qt by Nokia
parent f99c1b5f1c
commit 06ff72e02d
5 changed files with 9 additions and 87 deletions

View File

@ -4,11 +4,6 @@ INCLUDEPATH += $$PWD
# DEFINES += ACCESSIBILITYINSPECTOR_NO_UITOOLS
# CONFIG += uitools
mac {
# for text-to-speach
LIBS += -framework AppKit
}
HEADERS += \
$$PWD/screenreader.h \
$$PWD/optionswidget.h \
@ -20,6 +15,5 @@ SOURCES += \
$$PWD/screenreader.cpp \
$$PWD/accessibilityinspector.cpp
OBJECTIVE_SOURCES += $$PWD/screenreader_mac.mm

View File

@ -116,9 +116,8 @@ void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event
updateItem(item, interface);
for (int i = 0; i < interface->childCount(); ++i) {
QAccessibleInterface *child = 0;
int ret = interface->navigate(QAccessible::Child, i + 1, &child);
if (ret == 0 && child) {
QAccessibleInterface *child = interface->child(i);
if (child) {
updateItem(m_graphicsItems.value(child->object()), child);
delete child;
}
@ -143,8 +142,8 @@ void AccessibilitySceneManager::handleUpdate(QObject *object, QAccessible::Event
qDebug() << "ObjectCreated ScrollingStart" << object;
QAccessibleInterface *child = 0;
for (int i = 0; i < interface->childCount(); ++i) {
int ret = interface->navigate(QAccessible::Child, i + 1, &child);
if (ret == 0 && child) {
QAccessibleInterface *child = interface->child(i);
if (child) {
m_animatedObjects.insert(child->object());
delete child;
}
@ -243,7 +242,7 @@ void AccessibilitySceneManager::updateItemFlags(QGraphicsRectItem *item, QAccess
}
if (m_optionsWidget->hideOffscreenItems()) {
if (interface->state() & QAccessible::Offscreen) {
if (interface->state().offscreen) {
shouldShow = false;
}
}
@ -398,7 +397,7 @@ void AccessibilitySceneManager::addGraphicsItems(AccessibilitySceneManager::Tree
else
graphicsItem->setBrush(QColor(Qt::white));
if (item.state & QAccessible::Invisible) {
if (item.state.offscreen) {
QPen linePen;
linePen.setStyle(Qt::DashLine);
graphicsItem->setPen(linePen);
@ -470,7 +469,7 @@ bool AccessibilitySceneManager::isHidden(QAccessibleInterface *interface)
QAccessibleInterface *current = interface;
while (current) {
if (current->state() & QAccessible::Invisible) {
if (current->state().invisible) {
return true;
}

View File

@ -44,10 +44,6 @@
#include "accessibilityscenemanager.h"
#include <QtGui>
#ifdef Q_OS_MAC
#include <private/qt_mac_p.h>
#endif
ScreenReader::ScreenReader(QObject *parent) :
QObject(parent)
{
@ -128,12 +124,6 @@ void ScreenReader::activate()
}
}
#ifdef Q_OS_MAC
// screenreader.mm
#else
void ScreenReader::speak(const QString &text, const QString &/*voice*/)
{
QFile f("festivalspeachhack");
@ -145,5 +135,4 @@ void ScreenReader::speak(const QString &text, const QString &/*voice*/)
process->start("/usr/bin/festival", QStringList() << "--tts" << "festivalspeachhack");
}
#endif

View File

@ -50,8 +50,8 @@
/*
A Simple screen reader for touch-based user interfaces.
Requires a text-to-speach backend. Currently implemented on
Mac OS X and using festival on unix.
Requires a text-to-speach backend. Currently implemented
using festival on unix.
*/
class OptionsWidget;
class ScreenReader : public QObject

View File

@ -1,60 +0,0 @@
/****************************************************************************
**
** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the tools applications of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** 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, Nokia gives you certain additional
** rights. These rights are described in the Nokia 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.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
** $QT_END_LICENSE$
**
****************************************************************************/
#include "screenreader.h"
#include <QtCore>
#include <private/qt_mac_p.h>
void ScreenReader::speak(const QString &text, const QString &voice)
{
QString voiceBase = "com.apple.speech.synthesis.voice.";
if (voice.isEmpty())
voiceBase += "Vici";
else
voiceBase += voice;
CFStringRef cfVoice = QCFString::toCFStringRef(voiceBase);
NSSpeechSynthesizer *synth = [[NSSpeechSynthesizer alloc] initWithVoice:(NSString *)cfVoice];
CFStringRef cfText = QCFString::toCFStringRef(text);
[synth startSpeakingString: (NSString *)cfText];
CFRelease(cfText);
CFRelease(cfVoice);
}