diff options
author | Tasuku Suzuki <stasuku@gmail.com> | 2013-04-25 23:58:54 +0900 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-06-10 12:21:06 +0200 |
commit | f617dbeeedbc4e8f6ce7f81995ab217036094cfa (patch) | |
tree | 74ae7e0811d8d54f07292dcd3ee27b3cd2155afa /src | |
parent | 8a793defa79bd332742cadeabfe05cbaa5516877 (diff) |
support url type qml property as a source for Context2D::drawImage()
Change-Id: I66445dafd64f6c47fe1098fadd83bf3af301e58d
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/context2d/qquickcontext2d.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp index c948d87cc0..d359077426 100644 --- a/src/quick/items/context2d/qquickcontext2d.cpp +++ b/src/quick/items/context2d/qquickcontext2d.cpp @@ -2363,6 +2363,7 @@ static v8::Handle<v8::Value> ctx2d_drawImage(const v8::Arguments &args) } else if (args[0]->IsObject()) { QQuickImage *imageItem = qobject_cast<QQuickImage*>(engine->toQObject(args[0]->ToObject())); QQuickCanvasItem *canvas = qobject_cast<QQuickCanvasItem*>(engine->toQObject(args[0]->ToObject())); + QUrl url(engine->toString(args[0])); QV8Context2DPixelArrayResource *pix = v8_resource_cast<QV8Context2DPixelArrayResource>(args[0]->ToObject()->GetInternalField(0)->ToObject()); if (pix && !pix->image.isNull()) { @@ -2373,6 +2374,8 @@ static v8::Handle<v8::Value> ctx2d_drawImage(const v8::Arguments &args) QImage img = canvas->toImage(); if (!img.isNull()) pixmap.take(new QQuickCanvasPixmap(img, canvas->window())); + } else if (url.isValid()) { + pixmap = r->context->createPixmap(url); } else { V8THROW_DOM(DOMEXCEPTION_TYPE_MISMATCH_ERR, "drawImage(), type mismatch"); } |