aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@theqtcompany.com>2014-10-31 20:20:43 +0100
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2014-10-31 20:21:09 +0100
commit473ef83dba6976250a1ff27175716aa1af970f2f (patch)
tree922044c8be598f76945af1599196c7f379df280e /src/quick
parentbeb6667d4e65dfe2ec9e7f554837524416c0f4dc (diff)
parent0704d2be63b484cb579c1507223db3f914b1338a (diff)
Merge remote-tracking branch 'origin/5.4' into dev
Diffstat (limited to 'src/quick')
-rw-r--r--src/quick/items/context2d/qquickcanvasitem.cpp12
-rw-r--r--src/quick/items/context2d/qquickcontext2d.cpp12
-rw-r--r--src/quick/items/qquickborderimage.cpp8
-rw-r--r--src/quick/items/qquickimagebase_p_p.h1
-rw-r--r--src/quick/items/qquickitem.cpp7
-rw-r--r--src/quick/items/qquickitemview.cpp6
-rw-r--r--src/quick/items/qquickpathview.cpp6
-rw-r--r--src/quick/items/qquickrepeater.cpp6
-rw-r--r--src/quick/items/qquicktextcontrol.cpp28
-rw-r--r--src/quick/items/qquicktextedit_p_p.h2
10 files changed, 44 insertions, 44 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp
index 15eb28350e..c31b7726c4 100644
--- a/src/quick/items/context2d/qquickcanvasitem.cpp
+++ b/src/quick/items/context2d/qquickcanvasitem.cpp
@@ -313,7 +313,7 @@ QQuickCanvasItem::~QQuickCanvasItem()
}
/*!
- \qmlproperty size QtQuick::Canvas::available
+ \qmlproperty bool QtQuick::Canvas::available
Indicates when Canvas is able to provide a drawing context to operate on.
*/
@@ -790,18 +790,18 @@ QSGTextureProvider *QQuickCanvasItem::textureProvider() const
}
/*!
- \qmlmethod object QtQuick::Canvas::getContext(string contextId, any... args)
+ \qmlmethod object QtQuick::Canvas::getContext(string contextId, ... args)
- Returns a drawing context or null if no context available.
+ Returns a drawing context, or \c null if no context is available.
The \a contextId parameter names the required context. The Canvas item
will return a context that implements the required drawing mode. After the
- first call to getContext any subsequent call to getContext with the same
+ first call to getContext, any subsequent call to getContext with the same
contextId will return the same context object.
If the context type is not supported or the canvas has previously been
- requested to provide a different and incompatible context type, null will
- be returned.
+ requested to provide a different and incompatible context type, \c null
+ will be returned.
Canvas only supports a 2d context.
*/
diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp
index b1af6f10dd..0101e0edf4 100644
--- a/src/quick/items/context2d/qquickcontext2d.cpp
+++ b/src/quick/items/context2d/qquickcontext2d.cpp
@@ -3093,11 +3093,12 @@ QV4::ReturnedValue QQuickJSContext2DPixelData::proto_get_length(QV4::CallContext
QV4::ReturnedValue QQuickJSContext2DPixelData::getIndexed(QV4::Managed *m, uint index, bool *hasProperty)
{
+ Q_ASSERT(m->as<QQuickJSContext2DPixelData>());
QV4::ExecutionEngine *v4 = m->engine();
QV4::Scope scope(v4);
- QV4::Scoped<QQuickJSContext2DPixelData> r(scope, m->as<QQuickJSContext2DPixelData>());
+ QV4::Scoped<QQuickJSContext2DPixelData> r(scope, static_cast<QQuickJSContext2DPixelData *>(m));
- if (r && index < static_cast<quint32>(r->d()->image.width() * r->d()->image.height() * 4)) {
+ if (index < static_cast<quint32>(r->d()->image.width() * r->d()->image.height() * 4)) {
if (hasProperty)
*hasProperty = true;
const quint32 w = r->d()->image.width();
@@ -3123,16 +3124,13 @@ QV4::ReturnedValue QQuickJSContext2DPixelData::getIndexed(QV4::Managed *m, uint
void QQuickJSContext2DPixelData::putIndexed(QV4::Managed *m, uint index, const QV4::ValueRef value)
{
+ Q_ASSERT(m->as<QQuickJSContext2DPixelData>());
QV4::ExecutionEngine *v4 = m->engine();
QV4::Scope scope(v4);
if (scope.hasException())
return;
- QV4::Scoped<QQuickJSContext2DPixelData> r(scope, m->as<QQuickJSContext2DPixelData>());
- if (!r) {
- scope.engine->currentContext()->throwTypeError();
- return;
- }
+ QV4::Scoped<QQuickJSContext2DPixelData> r(scope, static_cast<QQuickJSContext2DPixelData *>(m));
const int v = value->toInt32();
if (r && index < static_cast<quint32>(r->d()->image.width() * r->d()->image.height() * 4) && v >= 0 && v <= 255) {
diff --git a/src/quick/items/qquickborderimage.cpp b/src/quick/items/qquickborderimage.cpp
index 8d8e4b6a02..07b8958664 100644
--- a/src/quick/items/qquickborderimage.cpp
+++ b/src/quick/items/qquickborderimage.cpp
@@ -582,10 +582,16 @@ QSGNode *QQuickBorderImage::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeDat
qMax<qreal>(0, width() - border->right() - border->left()),
qMax<qreal>(0, height() - border->bottom() - border->top()));
- if (innerSourceRect != d->oldInnerSourceRect || innerTargetRect != d->oldInnerTargetRect)
+ QSizeF newSize(width(), height());
+ if (innerSourceRect != d->oldInnerSourceRect
+ || innerTargetRect != d->oldInnerTargetRect
+ || newSize != d->oldSize) {
updateNode = true;
+ }
+
d->oldInnerSourceRect = innerSourceRect;
d->oldInnerTargetRect = innerTargetRect;
+ d->oldSize = newSize;
}
bool updatePixmap = d->pixmapChanged;
diff --git a/src/quick/items/qquickimagebase_p_p.h b/src/quick/items/qquickimagebase_p_p.h
index ec2f0bb73e..21d11a7448 100644
--- a/src/quick/items/qquickimagebase_p_p.h
+++ b/src/quick/items/qquickimagebase_p_p.h
@@ -77,6 +77,7 @@ public:
qreal devicePixelRatio;
QRectF oldInnerSourceRect;
QRectF oldInnerTargetRect;
+ QSizeF oldSize;
bool async : 1;
bool cache : 1;
bool mirror: 1;
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp
index 41e9e0e57a..25f139549d 100644
--- a/src/quick/items/qquickitem.cpp
+++ b/src/quick/items/qquickitem.cpp
@@ -6957,6 +6957,13 @@ void QQuickItem::grabTouchPoints(const QVector<int> &ids)
windowPriv->itemForTouchPointId[ids.at(i)] = this;
if (oldGrabber)
ungrab.insert(oldGrabber);
+
+ QQuickItem *mouseGrabber = windowPriv->mouseGrabberItem;
+ if (windowPriv->touchMouseId == ids.at(i) && mouseGrabber && mouseGrabber != this) {
+ windowPriv->mouseGrabberItem = 0;
+ QEvent ev(QEvent::UngrabMouse);
+ d->window->sendEvent(mouseGrabber, &ev);
+ }
}
foreach (QQuickItem *oldGrabber, ungrab)
oldGrabber->touchUngrabEvent();
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
index 2fd79715e1..93cb5e4e9d 100644
--- a/src/quick/items/qquickitemview.cpp
+++ b/src/quick/items/qquickitemview.cpp
@@ -273,9 +273,13 @@ QVariant QQuickItemView::model() const
return d->modelVariant;
}
-void QQuickItemView::setModel(const QVariant &model)
+void QQuickItemView::setModel(const QVariant &m)
{
Q_D(QQuickItemView);
+ QVariant model = m;
+ if (model.userType() == qMetaTypeId<QJSValue>())
+ model = model.value<QJSValue>().toVariant();
+
if (d->modelVariant == model)
return;
if (d->model) {
diff --git a/src/quick/items/qquickpathview.cpp b/src/quick/items/qquickpathview.cpp
index 825845eca9..6cf3e33de9 100644
--- a/src/quick/items/qquickpathview.cpp
+++ b/src/quick/items/qquickpathview.cpp
@@ -607,9 +607,13 @@ QVariant QQuickPathView::model() const
return d->modelVariant;
}
-void QQuickPathView::setModel(const QVariant &model)
+void QQuickPathView::setModel(const QVariant &m)
{
Q_D(QQuickPathView);
+ QVariant model = m;
+ if (model.userType() == qMetaTypeId<QJSValue>())
+ model = model.value<QJSValue>().toVariant();
+
if (d->modelVariant == model)
return;
diff --git a/src/quick/items/qquickrepeater.cpp b/src/quick/items/qquickrepeater.cpp
index 8e13947d78..e2a3043857 100644
--- a/src/quick/items/qquickrepeater.cpp
+++ b/src/quick/items/qquickrepeater.cpp
@@ -183,9 +183,13 @@ QVariant QQuickRepeater::model() const
return d->dataSource;
}
-void QQuickRepeater::setModel(const QVariant &model)
+void QQuickRepeater::setModel(const QVariant &m)
{
Q_D(QQuickRepeater);
+ QVariant model = m;
+ if (model.userType() == qMetaTypeId<QJSValue>())
+ model = model.value<QJSValue>().toVariant();
+
if (d->dataSource == model)
return;
diff --git a/src/quick/items/qquicktextcontrol.cpp b/src/quick/items/qquicktextcontrol.cpp
index 2585caefb5..0ad21ccff3 100644
--- a/src/quick/items/qquicktextcontrol.cpp
+++ b/src/quick/items/qquicktextcontrol.cpp
@@ -965,7 +965,6 @@ QRectF QQuickTextControlPrivate::rectForPosition(int position) const
const QTextBlock block = doc->findBlock(position);
if (!block.isValid())
return QRectF();
- const QAbstractTextDocumentLayout *docLayout = doc->documentLayout();
const QTextLayout *layout = block.layout();
const QPointF layoutPos = q->blockBoundingRect(block).topLeft();
int relativePos = position - block.position();
@@ -980,24 +979,14 @@ QRectF QQuickTextControlPrivate::rectForPosition(int position) const
#endif
QTextLine line = layout->lineForTextPosition(relativePos);
- int cursorWidth;
- {
- bool ok = false;
-#ifndef QT_NO_PROPERTIES
- cursorWidth = docLayout->property("cursorWidth").toInt(&ok);
-#endif
- if (!ok)
- cursorWidth = 1;
- }
-
QRectF r;
if (line.isValid()) {
qreal x = line.cursorToX(relativePos);
qreal w = 0;
- r = QRectF(layoutPos.x() + x, layoutPos.y() + line.y(), cursorWidth + w, line.height());
+ r = QRectF(layoutPos.x() + x, layoutPos.y() + line.y(), textCursorWidth + w, line.height());
} else {
- r = QRectF(layoutPos.x(), layoutPos.y(), cursorWidth, 10); // #### correct height
+ r = QRectF(layoutPos.x(), layoutPos.y(), textCursorWidth, 10); // #### correct height
}
return r;
@@ -1510,19 +1499,6 @@ QString QQuickTextControl::anchorAt(const QPointF &pos) const
return d->doc->documentLayout()->anchorAt(pos);
}
-void QQuickTextControl::setCursorWidth(int width)
-{
- Q_D(QQuickTextControl);
-#ifdef QT_NO_PROPERTIES
- Q_UNUSED(width);
-#else
- if (width == -1)
- width = textCursorWidth;
- d->doc->documentLayout()->setProperty("cursorWidth", width);
-#endif
- d->repaintCursor();
-}
-
void QQuickTextControl::setAcceptRichText(bool accept)
{
Q_D(QQuickTextControl);
diff --git a/src/quick/items/qquicktextedit_p_p.h b/src/quick/items/qquicktextedit_p_p.h
index 41a5107ccf..5233413cd7 100644
--- a/src/quick/items/qquicktextedit_p_p.h
+++ b/src/quick/items/qquicktextedit_p_p.h
@@ -122,7 +122,7 @@ public:
Qt::LayoutDirection textDirection(const QString &text) const;
bool isLinkHoveredConnected();
- void setNativeCursorEnabled(bool enabled) { control->setCursorWidth(enabled ? 1 : 0); }
+ void setNativeCursorEnabled(bool) {}
void handleFocusEvent(QFocusEvent *event);
void addCurrentTextNodeToRoot(QSGTransformNode *, QQuickTextNode*, TextNodeIterator&, int startPos);
QQuickTextNode* createTextNode();