diff options
Diffstat (limited to 'src/quick')
-rw-r--r-- | src/quick/doc/qtquick.qdocconf | 8 | ||||
-rw-r--r-- | src/quick/items/qquickaccessibleattached.cpp | 4 | ||||
-rw-r--r-- | src/quick/items/qquickaccessibleattached_p.h | 18 | ||||
-rw-r--r-- | src/quick/items/qquickflickable.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquickflickable_p.h | 2 | ||||
-rw-r--r-- | src/quick/items/qquickitem.cpp | 16 | ||||
-rw-r--r-- | src/quick/items/qquickitem.h | 2 | ||||
-rw-r--r-- | src/quick/items/qquickitem_p.h | 2 | ||||
-rw-r--r-- | src/quick/items/qquickmousearea.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquickmousearea_p.h | 2 | ||||
-rw-r--r-- | src/quick/items/qquickshadereffectnode.cpp | 2 | ||||
-rw-r--r-- | src/quick/items/qquickshadereffectsource.cpp | 1 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 17 | ||||
-rw-r--r-- | src/quick/items/qquickthreadedwindowmanager.cpp | 3 | ||||
-rw-r--r-- | src/quick/items/qquickwindow.cpp | 4 | ||||
-rw-r--r-- | src/quick/items/qquickwindow_p.h | 2 | ||||
-rw-r--r-- | src/quick/items/qquickwindowmanager.cpp | 2 | ||||
-rw-r--r-- | src/quick/scenegraph/util/qsgsimplematerial.cpp | 23 | ||||
-rw-r--r-- | src/quick/util/qquickanimationcontroller.cpp | 2 |
19 files changed, 98 insertions, 16 deletions
diff --git a/src/quick/doc/qtquick.qdocconf b/src/quick/doc/qtquick.qdocconf index 518304ab62..f75ae06539 100644 --- a/src/quick/doc/qtquick.qdocconf +++ b/src/quick/doc/qtquick.qdocconf @@ -3,7 +3,7 @@ include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf) project = QtQuick description = Qt Quick Reference Documentation url = http://qt-project.org/doc/qt-5.0/qtquick-index.html -version = 5.0.0 +version = 5.0.1 qhp.projects = QtQuick @@ -14,9 +14,9 @@ qhp.QtQuick.virtualFolder = qtquick qhp.QtQuick.indexTitle = Qt Quick qhp.QtQuick.indexRoot = -qhp.QtQuick.filterAttributes = qtquick 5.0.0 qtrefdoc -qhp.QtQuick.customFilters.Qt.name = QtQuick 5.0.0 -qhp.QtQuick.customFilters.Qt.filterAttributes = qtquick 5.0.0 +qhp.QtQuick.filterAttributes = qtquick 5.0.1 qtrefdoc +qhp.QtQuick.customFilters.Qt.name = QtQuick 5.0.1 +qhp.QtQuick.customFilters.Qt.filterAttributes = qtquick 5.0.1 qhp.QtQuick.subprojects = qmltypes classes examples qhp.QtQuick.subprojects.qmltypes.title = QML Types qhp.QtQuick.subprojects.qmltypes.indexTitle = Qt Quick QML Types diff --git a/src/quick/items/qquickaccessibleattached.cpp b/src/quick/items/qquickaccessibleattached.cpp index 372a47963e..193a0280b3 100644 --- a/src/quick/items/qquickaccessibleattached.cpp +++ b/src/quick/items/qquickaccessibleattached.cpp @@ -152,6 +152,10 @@ QQuickAccessibleAttached::QQuickAccessibleAttached(QObject *parent) item->d_func()->setAccessibleFlagAndListener(); QAccessibleEvent ev(item, QAccessible::ObjectCreated); QAccessible::updateAccessibility(&ev); + + if (!parent->property("value").isNull()) { + connect(parent, SIGNAL(valueChanged()), this, SLOT(valueChanged())); + } } QQuickAccessibleAttached::~QQuickAccessibleAttached() diff --git a/src/quick/items/qquickaccessibleattached_p.h b/src/quick/items/qquickaccessibleattached_p.h index 74f486ae7d..6c10b496d0 100644 --- a/src/quick/items/qquickaccessibleattached_p.h +++ b/src/quick/items/qquickaccessibleattached_p.h @@ -127,11 +127,29 @@ public: return obj->setProperty(propertyName, value); } + static QObject *findAccessible(QObject *object, QAccessible::Role role = QAccessible::NoRole) + { + while (object) { + QObject *att = QQuickAccessibleAttached::attachedProperties(object); + if (att && (role == QAccessible::NoRole || att->property("role").toInt() == role)) { + break; + } + object = object->parent(); + } + return object; + } + +public Q_SLOTS: + void valueChanged() { + QAccessibleValueChangeEvent ev(parent(), parent()->property("value")); + QAccessible::updateAccessibility(&ev); + } Q_SIGNALS: void roleChanged(); void nameChanged(); void descriptionChanged(); + private: QAccessible::Role m_role; QString m_name; diff --git a/src/quick/items/qquickflickable.cpp b/src/quick/items/qquickflickable.cpp index 0a3dcd8039..6e5e6b74a0 100644 --- a/src/quick/items/qquickflickable.cpp +++ b/src/quick/items/qquickflickable.cpp @@ -1270,6 +1270,7 @@ void QQuickFlickable::mouseReleaseEvent(QMouseEvent *event) } } +#ifndef QT_NO_WHEELEVENT void QQuickFlickable::wheelEvent(QWheelEvent *event) { Q_D(QQuickFlickable); @@ -1324,6 +1325,7 @@ void QQuickFlickable::wheelEvent(QWheelEvent *event) if (!event->isAccepted()) QQuickItem::wheelEvent(event); } +#endif bool QQuickFlickablePrivate::isInnermostPressDelay(QQuickItem *i) const { diff --git a/src/quick/items/qquickflickable_p.h b/src/quick/items/qquickflickable_p.h index d5f97ad963..ed4b026be3 100644 --- a/src/quick/items/qquickflickable_p.h +++ b/src/quick/items/qquickflickable_p.h @@ -234,7 +234,9 @@ protected: virtual void mousePressEvent(QMouseEvent *event); virtual void mouseMoveEvent(QMouseEvent *event); virtual void mouseReleaseEvent(QMouseEvent *event); +#ifndef QT_NO_WHEELEVENT virtual void wheelEvent(QWheelEvent *event); +#endif virtual void timerEvent(QTimerEvent *event); QQuickFlickableVisibleArea *visibleArea(); diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 2340da9b9f..6668cb72c5 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -3129,8 +3129,12 @@ void QQuickItem::inputMethodEvent(QInputMethodEvent *event) void QQuickItem::focusInEvent(QFocusEvent * /*event*/) { #ifndef QT_NO_ACCESSIBILITY - QAccessibleEvent ev(this, QAccessible::Focus); - QAccessible::updateAccessibility(&ev); + if (QAccessible::isActive()) { + if (QObject *acc = QQuickAccessibleAttached::findAccessible(this)) { + QAccessibleEvent ev(acc, QAccessible::Focus); + QAccessible::updateAccessibility(&ev); + } + } #endif } @@ -3202,6 +3206,7 @@ void QQuickItem::touchUngrabEvent() // XXX todo } +#ifndef QT_NO_WHEELEVENT /*! This event handler can be reimplemented in a subclass to receive wheel events for an item. The event information is provided by the @@ -3211,6 +3216,7 @@ void QQuickItem::wheelEvent(QWheelEvent *event) { event->ignore(); } +#endif /*! This event handler can be reimplemented in a subclass to receive touch @@ -4100,11 +4106,13 @@ void QQuickItemPrivate::deliverMouseEvent(QMouseEvent *e) } } +#ifndef QT_NO_WHEELEVENT void QQuickItemPrivate::deliverWheelEvent(QWheelEvent *e) { Q_Q(QQuickItem); q->wheelEvent(e); } +#endif void QQuickItemPrivate::deliverTouchEvent(QTouchEvent *e) { @@ -5264,7 +5272,7 @@ void QQuickItem::setFlags(Flags flags) { Q_D(QQuickItem); - if ((flags & ItemIsFocusScope) != (d->flags & ItemIsFocusScope)) { + if (int(flags & ItemIsFocusScope) != int(d->flags & ItemIsFocusScope)) { if (flags & ItemIsFocusScope && !d->childItems.isEmpty() && d->window) { qWarning("QQuickItem: Cannot set FocusScope once item has children and is in a window."); flags &= ~ItemIsFocusScope; @@ -5274,7 +5282,7 @@ void QQuickItem::setFlags(Flags flags) } } - if ((flags & ItemClipsChildrenToShape ) != (d->flags & ItemClipsChildrenToShape)) + if (int(flags & ItemClipsChildrenToShape) != int(d->flags & ItemClipsChildrenToShape)) d->dirty(QQuickItemPrivate::Clip); d->flags = flags; diff --git a/src/quick/items/qquickitem.h b/src/quick/items/qquickitem.h index bba26be060..dc20310c48 100644 --- a/src/quick/items/qquickitem.h +++ b/src/quick/items/qquickitem.h @@ -398,7 +398,9 @@ protected: virtual void mouseDoubleClickEvent(QMouseEvent *event); virtual void mouseUngrabEvent(); // XXX todo - params? virtual void touchUngrabEvent(); +#ifndef QT_NO_WHEELEVENT virtual void wheelEvent(QWheelEvent *event); +#endif virtual void touchEvent(QTouchEvent *event); virtual void hoverEnterEvent(QHoverEvent *event); virtual void hoverMoveEvent(QHoverEvent *event); diff --git a/src/quick/items/qquickitem_p.h b/src/quick/items/qquickitem_p.h index 363cc93cc4..804b10deac 100644 --- a/src/quick/items/qquickitem_p.h +++ b/src/quick/items/qquickitem_p.h @@ -528,7 +528,9 @@ public: #endif void deliverFocusEvent(QFocusEvent *); void deliverMouseEvent(QMouseEvent *); +#ifndef QT_NO_WHEELEVENT void deliverWheelEvent(QWheelEvent *); +#endif void deliverTouchEvent(QTouchEvent *); void deliverHoverEvent(QHoverEvent *); #ifndef QT_NO_DRAGANDDROP diff --git a/src/quick/items/qquickmousearea.cpp b/src/quick/items/qquickmousearea.cpp index fd01c80ba5..0edbd1b9a9 100644 --- a/src/quick/items/qquickmousearea.cpp +++ b/src/quick/items/qquickmousearea.cpp @@ -938,6 +938,7 @@ void QQuickMouseArea::hoverLeaveEvent(QHoverEvent *event) setHovered(false); } +#ifndef QT_NO_WHEELEVENT void QQuickMouseArea::wheelEvent(QWheelEvent *event) { Q_D(QQuickMouseArea); @@ -953,6 +954,7 @@ void QQuickMouseArea::wheelEvent(QWheelEvent *event) if (!we.isAccepted()) QQuickItem::wheelEvent(event); } +#endif void QQuickMouseArea::ungrabMouse() { diff --git a/src/quick/items/qquickmousearea_p.h b/src/quick/items/qquickmousearea_p.h index eb5bddf1db..c2138792ae 100644 --- a/src/quick/items/qquickmousearea_p.h +++ b/src/quick/items/qquickmousearea_p.h @@ -222,7 +222,9 @@ protected: virtual void hoverEnterEvent(QHoverEvent *event); virtual void hoverMoveEvent(QHoverEvent *event); virtual void hoverLeaveEvent(QHoverEvent *event); +#ifndef QT_NO_WHEELEVENT virtual void wheelEvent(QWheelEvent *event); +#endif virtual bool childMouseEventFilter(QQuickItem *i, QEvent *e); virtual void timerEvent(QTimerEvent *event); virtual void windowDeactivateEvent(); diff --git a/src/quick/items/qquickshadereffectnode.cpp b/src/quick/items/qquickshadereffectnode.cpp index 622000e492..15989db57b 100644 --- a/src/quick/items/qquickshadereffectnode.cpp +++ b/src/quick/items/qquickshadereffectnode.cpp @@ -153,7 +153,7 @@ void QQuickCustomMaterialShader::updateState(const RenderState &state, QSGMateri if (state.isMatrixDirty()) program()->setUniformValue(loc, state.combinedMatrix()); } else if (d.specialType == UniformData::None) { - switch (d.value.type()) { + switch (int(d.value.type())) { case QMetaType::QColor: program()->setUniformValue(loc, qt_premultiply_color(qvariant_cast<QColor>(d.value))); break; diff --git a/src/quick/items/qquickshadereffectsource.cpp b/src/quick/items/qquickshadereffectsource.cpp index 2b613df0f2..0c4e263ac2 100644 --- a/src/quick/items/qquickshadereffectsource.cpp +++ b/src/quick/items/qquickshadereffectsource.cpp @@ -695,6 +695,7 @@ void QQuickShaderEffectSource::setSourceItem(QQuickItem *item) void QQuickShaderEffectSource::sourceItemDestroyed(QObject *item) { Q_ASSERT(item == m_sourceItem); + Q_UNUSED(item); m_sourceItem = 0; update(); emit sourceItemChanged(); diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index fee49593ee..6dd8fb157d 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -59,6 +59,7 @@ #ifndef QT_NO_ACCESSIBILITY #include "qaccessible.h" +#include "qquickaccessibleattached_p.h" #endif QT_BEGIN_NAMESPACE @@ -3374,9 +3375,11 @@ void QQuickTextInputPrivate::internalSetText(const QString &txt, int pos, bool e #ifdef QT_NO_ACCESSIBILITY Q_UNUSED(changed) #else - if (changed) { - QAccessibleTextUpdateEvent ev(q, 0, oldText, m_text); - QAccessible::updateAccessibility(&ev); + if (changed && QAccessible::isActive()) { + if (QObject *acc = QQuickAccessibleAttached::findAccessible(q, QAccessible::EditableText)) { + QAccessibleTextUpdateEvent ev(acc, 0, oldText, m_text); + QAccessible::updateAccessibility(&ev); + } } #endif } @@ -4025,8 +4028,12 @@ bool QQuickTextInputPrivate::emitCursorPositionChanged() } #ifndef QT_NO_ACCESSIBILITY - QAccessibleTextCursorEvent ev(q, m_cursor); - QAccessible::updateAccessibility(&ev); + if (QAccessible::isActive()) { + if (QObject *acc = QQuickAccessibleAttached::findAccessible(q, QAccessible::EditableText)) { + QAccessibleTextCursorEvent ev(acc, m_cursor); + QAccessible::updateAccessibility(&ev); + } + } #endif return true; diff --git a/src/quick/items/qquickthreadedwindowmanager.cpp b/src/quick/items/qquickthreadedwindowmanager.cpp index 4c38686298..63e2c46d79 100644 --- a/src/quick/items/qquickthreadedwindowmanager.cpp +++ b/src/quick/items/qquickthreadedwindowmanager.cpp @@ -845,6 +845,9 @@ QImage QQuickRenderThreadSingleContextWindowManager::grab(QQuickWindow *window) if (QThread::currentThread() != qApp->thread()) { qWarning("QQuickWindow::grabFrameBuffer: can only be called from the GUI thread"); return QImage(); + } else if (window->size().width() <= 0 || window->size().height() <= 0 ) { + qWarning("QQuickWindow::grabFrameBuffer: Can't grab a Window with size %dx%d", window->size().width(), window->size().height()); + return QImage(); } #ifdef THREAD_DEBUG diff --git a/src/quick/items/qquickwindow.cpp b/src/quick/items/qquickwindow.cpp index a915430616..2cde3cc434 100644 --- a/src/quick/items/qquickwindow.cpp +++ b/src/quick/items/qquickwindow.cpp @@ -1421,6 +1421,7 @@ bool QQuickWindowPrivate::deliverHoverEvent(QQuickItem *item, const QPointF &sce return false; } +#ifndef QT_NO_WHEELEVENT bool QQuickWindowPrivate::deliverWheelEvent(QQuickItem *item, QWheelEvent *event) { Q_Q(QQuickWindow); @@ -1457,7 +1458,6 @@ bool QQuickWindowPrivate::deliverWheelEvent(QQuickItem *item, QWheelEvent *event return false; } -#ifndef QT_NO_WHEELEVENT /*! \reimp */ void QQuickWindow::wheelEvent(QWheelEvent *event) { @@ -2058,9 +2058,11 @@ bool QQuickWindow::sendEvent(QQuickItem *item, QEvent *e) item->mouseUngrabEvent(); } break; +#ifndef QT_NO_WHEELEVENT case QEvent::Wheel: QQuickItemPrivate::get(item)->deliverWheelEvent(static_cast<QWheelEvent *>(e)); break; +#endif case QEvent::HoverEnter: case QEvent::HoverLeave: case QEvent::HoverMove: diff --git a/src/quick/items/qquickwindow_p.h b/src/quick/items/qquickwindow_p.h index fdf5fe2abb..c8ecd43238 100644 --- a/src/quick/items/qquickwindow_p.h +++ b/src/quick/items/qquickwindow_p.h @@ -131,7 +131,9 @@ public: bool deliverInitialMousePressEvent(QQuickItem *, QMouseEvent *); bool deliverMouseEvent(QMouseEvent *); bool sendFilteredMouseEvent(QQuickItem *, QQuickItem *, QEvent *); +#ifndef QT_NO_WHEELEVENT bool deliverWheelEvent(QQuickItem *, QWheelEvent *); +#endif bool deliverTouchPoints(QQuickItem *, QTouchEvent *, const QList<QTouchEvent::TouchPoint> &, QSet<int> *, QHash<QQuickItem *, QList<QTouchEvent::TouchPoint> > *); bool deliverTouchEvent(QTouchEvent *); diff --git a/src/quick/items/qquickwindowmanager.cpp b/src/quick/items/qquickwindowmanager.cpp index 5da904ace2..1249468a4d 100644 --- a/src/quick/items/qquickwindowmanager.cpp +++ b/src/quick/items/qquickwindowmanager.cpp @@ -253,7 +253,7 @@ void QQuickTrivialWindowManager::renderWindow(QQuickWindow *window) QQuickWindowPrivate *cd = QQuickWindowPrivate::get(window); cd->polishItems(); - int renderTime, syncTime; + int renderTime = 0, syncTime = 0; QTime renderTimer; if (qquick_render_timing()) renderTimer.start(); diff --git a/src/quick/scenegraph/util/qsgsimplematerial.cpp b/src/quick/scenegraph/util/qsgsimplematerial.cpp index 6267d3ff5c..f91c85af93 100644 --- a/src/quick/scenegraph/util/qsgsimplematerial.cpp +++ b/src/quick/scenegraph/util/qsgsimplematerial.cpp @@ -145,6 +145,29 @@ */ /*! + \macro QSG_DECLARE_SIMPLE_SHADER(Shader, State) + \relates QSGSimpleMaterialShader + + This macro is used to declare a QSGMaterialType and a \c + createMaterial() function for \a Shader with the given \a State. + */ + +/*! + \macro QSG_DECLARE_SIMPLE_COMPARABLE_SHADER(Shader, State) + \relates QSGSimpleMaterialShader + + This macro is used to declare a QSGMaterialType and a \c + createMaterial() function for \a Shader with the given \a State, + where the \a State class must define a compare function on the + form: + + \code + int compare(const State *other) const; + \endcode +*/ + + +/*! \fn char const *const *QSGSimpleMaterialShader::attributeNames() const \internal */ diff --git a/src/quick/util/qquickanimationcontroller.cpp b/src/quick/util/qquickanimationcontroller.cpp index e4a82ca091..71efda5846 100644 --- a/src/quick/util/qquickanimationcontroller.cpp +++ b/src/quick/util/qquickanimationcontroller.cpp @@ -67,6 +67,7 @@ void QQuickAnimationControllerPrivate::animationFinished(QAbstractAnimationJob * { Q_Q(QQuickAnimationController); Q_ASSERT(animationInstance && animationInstance == job); + Q_UNUSED(job); animationInstance->removeAnimationChangeListener(this, QAbstractAnimationJob::Completion | QAbstractAnimationJob::CurrentTime); @@ -84,6 +85,7 @@ void QQuickAnimationControllerPrivate::animationCurrentTimeChanged(QAbstractAnim { Q_Q(QQuickAnimationController); Q_ASSERT(animationInstance && animationInstance == job); + Q_UNUSED(job); const qreal newProgress = currentTime * 1.0 / animationInstance->duration(); if (progress != newProgress) { progress = newProgress; |