diff options
Diffstat (limited to 'src/plugins')
12 files changed, 109 insertions, 70 deletions
diff --git a/src/plugins/accessible/quick/accessible.json b/src/plugins/accessible/quick/accessible.json index 845a45aa78..b21218f19c 100644 --- a/src/plugins/accessible/quick/accessible.json +++ b/src/plugins/accessible/quick/accessible.json @@ -1,3 +1,3 @@ { - "Keys": [ "QQuickView", "QQuickItem" ] + "Keys": [ "QQuickWindow", "QQuickItem" ] } diff --git a/src/plugins/accessible/quick/main.cpp b/src/plugins/accessible/quick/main.cpp index 882cbcda4f..019c84fc6e 100644 --- a/src/plugins/accessible/quick/main.cpp +++ b/src/plugins/accessible/quick/main.cpp @@ -44,7 +44,7 @@ #include "qaccessiblequickview.h" #include "qaccessiblequickitem.h" -#include <QtQuick/QQuickView> +#include <QtQuick/QQuickWindow> #include <QtQuick/QQuickItem> #include <QtQuick/private/qquickitem_p.h> #include <QtQuick/private/qquickaccessibleattached_p.h> @@ -77,37 +77,22 @@ AccessibleQuickFactory::AccessibleQuickFactory() QStringList AccessibleQuickFactory::keys() const { QStringList list; - list << QLatin1String("QQuickView"); + list << QLatin1String("QQuickWindow"); list << QLatin1String("QQuickItem"); return list; } QAccessibleInterface *AccessibleQuickFactory::create(const QString &classname, QObject *object) { - if (classname == QLatin1String("QQuickView")) { - return new QAccessibleQuickView(qobject_cast<QQuickView *>(object)); // FIXME + if (classname == QLatin1String("QQuickWindow")) { + return new QAccessibleQuickWindow(qobject_cast<QQuickWindow *>(object)); } else if (classname == QLatin1String("QQuickItem")) { QQuickItem *item = qobject_cast<QQuickItem *>(object); Q_ASSERT(item); QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item); if (!itemPrivate->isAccessible) return 0; - - QVariant v = QQuickAccessibleAttached::property(item, "role"); - bool ok; - QAccessible::Role role = (QAccessible::Role)v.toInt(&ok); - if (!ok) // Not sure if this check is needed. - return new QAccessibleQuickItem(item); - - switch (role) { - case QAccessible::Slider: - case QAccessible::SpinBox: - case QAccessible::Dial: - case QAccessible::ScrollBar: - return new QAccessibleQuickItemValueInterface(item); - default: - return new QAccessibleQuickItem(item); - } + return new QAccessibleQuickItem(item); } return 0; diff --git a/src/plugins/accessible/quick/qaccessiblequickitem.cpp b/src/plugins/accessible/quick/qaccessiblequickitem.cpp index 2d41379940..8d36834d48 100644 --- a/src/plugins/accessible/quick/qaccessiblequickitem.cpp +++ b/src/plugins/accessible/quick/qaccessiblequickitem.cpp @@ -228,7 +228,7 @@ QString QAccessibleQuickItem::text(QAccessible::Text textType) const break; } - // the following blocks handles item-specific behavior + // the following block handles item-specific behavior if (role() == QAccessible::EditableText) { if (textType == QAccessible::Value) { QVariant text = object()->property("text"); @@ -241,34 +241,44 @@ QString QAccessibleQuickItem::text(QAccessible::Text textType) const return QString(); } -void *QAccessibleQuickItemValueInterface::interface_cast(QAccessible::InterfaceType t) +void *QAccessibleQuickItem::interface_cast(QAccessible::InterfaceType t) { - if (t == QAccessible::ValueInterface) + QAccessible::Role r = role(); + if (t == QAccessible::ValueInterface && + (r == QAccessible::Slider || + r == QAccessible::SpinBox || + r == QAccessible::Dial || + r == QAccessible::ScrollBar)) return static_cast<QAccessibleValueInterface*>(this); - return QAccessibleQuickItem::interface_cast(t); + + if (t == QAccessible::TextInterface && + (r == QAccessible::EditableText)) + return static_cast<QAccessibleTextInterface*>(this); + + return QQmlAccessible::interface_cast(t); } -QVariant QAccessibleQuickItemValueInterface::currentValue() const +QVariant QAccessibleQuickItem::currentValue() const { return item()->property("value"); } -void QAccessibleQuickItemValueInterface::setCurrentValue(const QVariant &value) +void QAccessibleQuickItem::setCurrentValue(const QVariant &value) { item()->setProperty("value", value); } -QVariant QAccessibleQuickItemValueInterface::maximumValue() const +QVariant QAccessibleQuickItem::maximumValue() const { return item()->property("maximumValue"); } -QVariant QAccessibleQuickItemValueInterface::minimumValue() const +QVariant QAccessibleQuickItem::minimumValue() const { return item()->property("minimumValue"); } -QVariant QAccessibleQuickItemValueInterface::minimumStepSize() const +QVariant QAccessibleQuickItem::minimumStepSize() const { return item()->property("stepSize"); } diff --git a/src/plugins/accessible/quick/qaccessiblequickitem.h b/src/plugins/accessible/quick/qaccessiblequickitem.h index 0d31749ee0..46f573cc75 100644 --- a/src/plugins/accessible/quick/qaccessiblequickitem.h +++ b/src/plugins/accessible/quick/qaccessiblequickitem.h @@ -50,7 +50,7 @@ QT_BEGIN_NAMESPACE #ifndef QT_NO_ACCESSIBILITY -class QAccessibleQuickItem : public QQmlAccessible +class QAccessibleQuickItem : public QQmlAccessible, public QAccessibleValueInterface, public QAccessibleTextInterface { public: QAccessibleQuickItem(QQuickItem *item); @@ -72,28 +72,51 @@ public: bool isAccessible() const; -protected: - QQuickItem *item() const { return static_cast<QQuickItem*>(object()); } -}; - -QRect itemScreenRect(QQuickItem *item); - - -class QAccessibleQuickItemValueInterface: public QAccessibleQuickItem, public QAccessibleValueInterface -{ -public: - QAccessibleQuickItemValueInterface(QQuickItem *item) : QAccessibleQuickItem(item) - {} - - void *interface_cast(QAccessible::InterfaceType t); - + // Value Interface QVariant currentValue() const; void setCurrentValue(const QVariant &value); QVariant maximumValue() const; QVariant minimumValue() const; QVariant minimumStepSize() const; + + + // Text Interface + // selection (ignored for now) + void selection(int selectionIndex, int *startOffset, int *endOffset) const { *startOffset = 0; *endOffset = 0; } + int selectionCount() const { return 0; } + void addSelection(int startOffset, int endOffset) {} + void removeSelection(int selectionIndex) {} + void setSelection(int selectionIndex, int startOffset, int endOffset) {} + + // cursor + int cursorPosition() const { return 0; } + void setCursorPosition(int position) {} + + // text + QString text(int startOffset, int endOffset) const { return text(QAccessible::Name).mid(startOffset, endOffset - startOffset); } +// QString textBeforeOffset(int offset, QAccessible2::BoundaryType boundaryType, +// int *startOffset, int *endOffset) const; +// QString textAfterOffset(int offset, QAccessible2::BoundaryType boundaryType, +// int *startOffset, int *endOffset) const; +// QString textAtOffset(int offset, QAccessible2::BoundaryType boundaryType, +// int *startOffset, int *endOffset) const; + int characterCount() const { return text(QAccessible::Name).count(); } + + // character <-> geometry + QRect characterRect(int offset) const { return QRect(); } + int offsetAtPoint(const QPoint &point) const { return -1; } + + void scrollToSubstring(int startIndex, int endIndex) {} + QString attributes(int offset, int *startOffset, int *endOffset) const { return QString(); } + +protected: + QQuickItem *item() const { return static_cast<QQuickItem*>(object()); } + void *interface_cast(QAccessible::InterfaceType t); }; +QRect itemScreenRect(QQuickItem *item); + + #endif // QT_NO_ACCESSIBILITY QT_END_NAMESPACE diff --git a/src/plugins/accessible/quick/qaccessiblequickview.cpp b/src/plugins/accessible/quick/qaccessiblequickview.cpp index 0106a3d68b..f70a41c6e2 100644 --- a/src/plugins/accessible/quick/qaccessiblequickview.cpp +++ b/src/plugins/accessible/quick/qaccessiblequickview.cpp @@ -53,52 +53,59 @@ QT_BEGIN_NAMESPACE -QAccessibleQuickView::QAccessibleQuickView(QQuickView *object) +QAccessibleQuickWindow::QAccessibleQuickWindow(QQuickWindow *object) :QAccessibleObject(object) { } -int QAccessibleQuickView::childCount() const +QQuickItem *QAccessibleQuickWindow::rootItem() const { - return view()->contentItem() ? 1 : 0; + if (window()->contentItem()) + return window()->contentItem()->childItems().first(); + return 0; } -QAccessibleInterface *QAccessibleQuickView::parent() const +int QAccessibleQuickWindow::childCount() const +{ + return rootItem() ? 1 : 0; +} + +QAccessibleInterface *QAccessibleQuickWindow::parent() const { // FIXME: for now we assume to be a top level window... return QAccessible::queryAccessibleInterface(qApp); } -QAccessibleInterface *QAccessibleQuickView::child(int index) const +QAccessibleInterface *QAccessibleQuickWindow::child(int index) const { if (index == 0) { - if (QQuickItem *declarativeRoot = view()->rootObject()) + if (QQuickItem *declarativeRoot = rootItem()) return new QAccessibleQuickItem(declarativeRoot); } return 0; } -QAccessible::Role QAccessibleQuickView::role() const +QAccessible::Role QAccessibleQuickWindow::role() const { return QAccessible::Window; // FIXME } -QAccessible::State QAccessibleQuickView::state() const +QAccessible::State QAccessibleQuickWindow::state() const { QAccessible::State st; - if (view() == QGuiApplication::focusWindow()) + if (window() == QGuiApplication::focusWindow()) st.active = true; - if (!view()->isVisible()) + if (!window()->isVisible()) st.invisible = true; return st; } -QRect QAccessibleQuickView::rect() const +QRect QAccessibleQuickWindow::rect() const { - return QRect(view()->x(), view()->y(), view()->width(), view()->height()); + return QRect(window()->x(), window()->y(), window()->width(), window()->height()); } -QString QAccessibleQuickView::text(QAccessible::Text text) const +QString QAccessibleQuickWindow::text(QAccessible::Text text) const { #ifdef Q_ACCESSIBLE_QUICK_ITEM_ENABLE_DEBUG_DESCRIPTION if (text == QAccessible::DebugDescription) { @@ -107,7 +114,7 @@ QString QAccessibleQuickView::text(QAccessible::Text text) const #else Q_UNUSED(text) #endif - return view()->title(); + return window()->title(); } @@ -152,10 +159,10 @@ static QQuickItem *childAt_helper(QQuickItem *item, int x, int y) return 0; } -QAccessibleInterface *QAccessibleQuickView::childAt(int x, int y) const +QAccessibleInterface *QAccessibleQuickWindow::childAt(int x, int y) const { - Q_ASSERT(view()); - QQuickItem *root = view()->contentItem(); + Q_ASSERT(window()); + QQuickItem *root = rootItem(); if (root) { if (QQuickItem *item = childAt_helper(root, x, y)) return QAccessible::queryAccessibleInterface(item); @@ -164,15 +171,14 @@ QAccessibleInterface *QAccessibleQuickView::childAt(int x, int y) const return 0; } -int QAccessibleQuickView::indexOfChild(const QAccessibleInterface *iface) const +int QAccessibleQuickWindow::indexOfChild(const QAccessibleInterface *iface) const { if (iface) { - QQuickItem *declarativeRoot = view()->rootObject(); + QQuickItem *declarativeRoot = rootItem(); if (declarativeRoot == iface->object()) return 0; } return -1; - } QT_END_NAMESPACE diff --git a/src/plugins/accessible/quick/qaccessiblequickview.h b/src/plugins/accessible/quick/qaccessiblequickview.h index 03061be275..2b01b18f3c 100644 --- a/src/plugins/accessible/quick/qaccessiblequickview.h +++ b/src/plugins/accessible/quick/qaccessiblequickview.h @@ -44,16 +44,16 @@ #include <QtGui/qaccessible2.h> #include <QtGui/qaccessibleobject.h> -#include <QtQuick/qquickview.h> +#include <QtQuick/qquickwindow.h> QT_BEGIN_NAMESPACE #ifndef QT_NO_ACCESSIBILITY -class QAccessibleQuickView : public QAccessibleObject +class QAccessibleQuickWindow : public QAccessibleObject { public: - QAccessibleQuickView(QQuickView *object); + QAccessibleQuickWindow(QQuickWindow *object); QAccessibleInterface *parent() const; QAccessibleInterface *child(int index) const; @@ -66,8 +66,10 @@ public: int indexOfChild(const QAccessibleInterface *iface) const; QString text(QAccessible::Text text) const; QAccessibleInterface *childAt(int x, int y) const; + private: - QQuickView *view() const { return static_cast<QQuickView*>(object()); } + QQuickWindow *window() const { return static_cast<QQuickWindow*>(object()); } + QQuickItem *rootItem() const; }; #endif // QT_NO_ACCESSIBILITY diff --git a/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.cpp b/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.cpp index d05f4b9b59..93cbdf3018 100644 --- a/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.cpp +++ b/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.cpp @@ -166,6 +166,7 @@ void InspectTool::hoverMoveEvent(QMouseEvent *event) } } +#ifndef QT_NO_WHEELEVENT void InspectTool::wheelEvent(QWheelEvent *event) { if (event->orientation() != Qt::Vertical) @@ -184,6 +185,7 @@ void InspectTool::wheelEvent(QWheelEvent *event) } } } +#endif void InspectTool::keyReleaseEvent(QKeyEvent *event) { diff --git a/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.h b/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.h index 5c480697af..5ed243d361 100644 --- a/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.h +++ b/src/plugins/qmltooling/qmldbg_qtquick2/inspecttool.h @@ -79,7 +79,9 @@ public: void mouseDoubleClickEvent(QMouseEvent *); void hoverMoveEvent(QMouseEvent *); +#ifndef QT_NO_WHEELEVENT void wheelEvent(QWheelEvent *); +#endif void keyPressEvent(QKeyEvent *) {} void keyReleaseEvent(QKeyEvent *); diff --git a/src/plugins/qmltooling/shared/abstracttool.h b/src/plugins/qmltooling/shared/abstracttool.h index f29909baf0..6e7d0c09cb 100644 --- a/src/plugins/qmltooling/shared/abstracttool.h +++ b/src/plugins/qmltooling/shared/abstracttool.h @@ -74,7 +74,9 @@ public: virtual void mouseDoubleClickEvent(QMouseEvent *event) = 0; virtual void hoverMoveEvent(QMouseEvent *event) = 0; +#ifndef QT_NO_WHEELEVENT virtual void wheelEvent(QWheelEvent *event) = 0; +#endif virtual void keyPressEvent(QKeyEvent *event) = 0; virtual void keyReleaseEvent(QKeyEvent *keyEvent) = 0; diff --git a/src/plugins/qmltooling/shared/abstractviewinspector.cpp b/src/plugins/qmltooling/shared/abstractviewinspector.cpp index ed207c5f26..c1d0cf1343 100644 --- a/src/plugins/qmltooling/shared/abstractviewinspector.cpp +++ b/src/plugins/qmltooling/shared/abstractviewinspector.cpp @@ -173,10 +173,12 @@ bool AbstractViewInspector::eventFilter(QObject *obj, QEvent *event) if (mouseDoubleClickEvent(static_cast<QMouseEvent*>(event))) return true; break; +#ifndef QT_NO_WHEELEVENT case QEvent::Wheel: if (wheelEvent(static_cast<QWheelEvent*>(event))) return true; break; +#endif case QEvent::TouchBegin: case QEvent::TouchUpdate: case QEvent::TouchEnd: @@ -244,12 +246,14 @@ bool AbstractViewInspector::mouseDoubleClickEvent(QMouseEvent *event) return true; } +#ifndef QT_NO_WHEELEVENT bool AbstractViewInspector::wheelEvent(QWheelEvent *event) { foreach (AbstractTool *tool, m_tools) tool->wheelEvent(event); return true; } +#endif bool AbstractViewInspector::touchEvent(QTouchEvent *event) { diff --git a/src/plugins/qmltooling/shared/abstractviewinspector.h b/src/plugins/qmltooling/shared/abstractviewinspector.h index d98707eaca..e0524c880c 100644 --- a/src/plugins/qmltooling/shared/abstractviewinspector.h +++ b/src/plugins/qmltooling/shared/abstractviewinspector.h @@ -107,7 +107,9 @@ protected: virtual bool keyPressEvent(QKeyEvent *event); virtual bool keyReleaseEvent(QKeyEvent *keyEvent); virtual bool mouseDoubleClickEvent(QMouseEvent *event); +#ifndef QT_NO_WHEELEVENT virtual bool wheelEvent(QWheelEvent *event); +#endif virtual bool touchEvent(QTouchEvent *event); virtual void setShowAppOnTop(bool) = 0; diff --git a/src/plugins/qmltooling/shared/qpacketprotocol.cpp b/src/plugins/qmltooling/shared/qpacketprotocol.cpp index 205601c3bf..020e5dbe9d 100644 --- a/src/plugins/qmltooling/shared/qpacketprotocol.cpp +++ b/src/plugins/qmltooling/shared/qpacketprotocol.cpp @@ -290,6 +290,7 @@ void QPacketProtocol::send(const QPacket & p) d->sendingPackets.append(sendSize); qint32 sendSize32 = sendSize; qint64 writeBytes = d->dev->write((char *)&sendSize32, sizeof(qint32)); + Q_UNUSED(writeBytes); Q_ASSERT(writeBytes == sizeof(qint32)); writeBytes = d->dev->write(p.b); Q_ASSERT(writeBytes == p.b.size()); |