aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/doc/qtquick.qdocconf8
-rw-r--r--src/quick/items/qquickaccessibleattached.cpp4
-rw-r--r--src/quick/items/qquickaccessibleattached_p.h18
-rw-r--r--src/quick/items/qquickflickable.cpp2
-rw-r--r--src/quick/items/qquickflickable_p.h2
-rw-r--r--src/quick/items/qquickitem.cpp16
-rw-r--r--src/quick/items/qquickitem.h2
-rw-r--r--src/quick/items/qquickitem_p.h2
-rw-r--r--src/quick/items/qquickmousearea.cpp2
-rw-r--r--src/quick/items/qquickmousearea_p.h2
-rw-r--r--src/quick/items/qquickshadereffectnode.cpp2
-rw-r--r--src/quick/items/qquickshadereffectsource.cpp1
-rw-r--r--src/quick/items/qquicktextinput.cpp17
-rw-r--r--src/quick/items/qquickthreadedwindowmanager.cpp3
-rw-r--r--src/quick/items/qquickwindow.cpp4
-rw-r--r--src/quick/items/qquickwindow_p.h2
-rw-r--r--src/quick/items/qquickwindowmanager.cpp2
-rw-r--r--src/quick/scenegraph/util/qsgsimplematerial.cpp23
-rw-r--r--src/quick/util/qquickanimationcontroller.cpp2
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;