aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/context2d
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2013-09-09 14:33:28 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-12 21:52:00 +0200
commita723c7ae756ba567c2f818bb77a83c24373d3438 (patch)
tree0508a1c1526e56a7aa3c4a3055c8a4b65a973b06 /src/quick/items/context2d
parentbf22c55036f6429ccfc849ea71f33e757fae47fa (diff)
Use a ReturnedValue when converting to String or Object
Also rename Value::toQString() to Value::toQStringNoThrow(), and add a throwing toQString() method for JS use. Change-Id: I821b33fc61abb7d08839df965fd337685f61a545 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/quick/items/context2d')
-rw-r--r--src/quick/items/context2d/qquickcanvasitem.cpp2
-rw-r--r--src/quick/items/context2d/qquickcontext2d.cpp38
2 files changed, 20 insertions, 20 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp
index 52281a4fbc..60cb3ace3e 100644
--- a/src/quick/items/context2d/qquickcanvasitem.cpp
+++ b/src/quick/items/context2d/qquickcanvasitem.cpp
@@ -750,7 +750,7 @@ void QQuickCanvasItem::getContext(QQmlV4Function *args)
return;
}
- QString contextId = (*args)[0].toQString();
+ QString contextId = (*args)[0].toQStringNoThrow();
if (d->context != 0) {
if (d->context->contextNames().contains(contextId, Qt::CaseInsensitive)) {
diff --git a/src/quick/items/context2d/qquickcontext2d.cpp b/src/quick/items/context2d/qquickcontext2d.cpp
index 84c4578946..f17b3d45e6 100644
--- a/src/quick/items/context2d/qquickcontext2d.cpp
+++ b/src/quick/items/context2d/qquickcontext2d.cpp
@@ -128,7 +128,7 @@ static const double Q_PI = 3.14159265358979323846; // pi
#define CHECK_RGBA(c) (c == '-' || c == '.' || (c >=0 && c <= 9))
QColor qt_color_from_string(const QV4::Value &name)
{
- QByteArray str = name.toQString().toUtf8();
+ QByteArray str = name.toQStringNoThrow().toUtf8();
char *p = str.data();
int len = str.length();
@@ -1278,7 +1278,7 @@ QV4::Value QQuickJSContext2D::method_set_globalCompositeOperation(QV4::SimpleCal
QQuickJSContext2D *r = ctx->thisObject.as<QQuickJSContext2D>();
CHECK_CONTEXT_SETTER(r)
- QString mode = ctx->argument(0).toQString();
+ QString mode = ctx->argument(0).toQStringNoThrow();
QPainter::CompositionMode cm = qt_composite_mode_from_string(mode);
if (cm == QPainter::CompositionMode_SourceOver && mode != QStringLiteral("source-over"))
return QV4::Value::undefinedValue();
@@ -1395,10 +1395,10 @@ QV4::Value QQuickJSContext2D::method_set_fillRule(QV4::SimpleCallContext *ctx)
QV4::Value value = ctx->argument(0);
- if ((value.isString() && value.toQString() == QStringLiteral("WindingFill"))
+ if ((value.isString() && value.toQStringNoThrow() == QStringLiteral("WindingFill"))
|| (value.isInt32() && value.integerValue() == Qt::WindingFill)) {
r->context->state.fillRule = Qt::WindingFill;
- } else if ((value.isString() && value.toQString() == QStringLiteral("OddEvenFill"))
+ } else if ((value.isString() && value.toQStringNoThrow() == QStringLiteral("OddEvenFill"))
|| (value.isInt32() && value.integerValue() == Qt::OddEvenFill)) {
r->context->state.fillRule = Qt::OddEvenFill;
} else {
@@ -1694,13 +1694,13 @@ QV4::Value QQuickJSContext2DPrototype::method_createPattern(QV4::SimpleCallConte
patternTexture = pixelData->image;
}
} else {
- patternTexture = r->context->createPixmap(QUrl(ctx->arguments[0].toQString()))->image();
+ patternTexture = r->context->createPixmap(QUrl(ctx->arguments[0].toQStringNoThrow()))->image();
}
if (!patternTexture.isNull()) {
pattern->brush.setTextureImage(patternTexture);
- QString repetition = ctx->arguments[1].toQString();
+ QString repetition = ctx->arguments[1].toQStringNoThrow();
if (repetition == QStringLiteral("repeat") || repetition.isEmpty()) {
pattern->patternRepeatX = true;
pattern->patternRepeatY = true;
@@ -1758,7 +1758,7 @@ QV4::Value QQuickJSContext2D::method_set_lineCap(QV4::SimpleCallContext *ctx)
QQuickJSContext2D *r = ctx->thisObject.as<QQuickJSContext2D>();
CHECK_CONTEXT_SETTER(r)
- QString lineCap = ctx->argument(0).toQString();
+ QString lineCap = ctx->argument(0).toQStringNoThrow();
Qt::PenCapStyle cap;
if (lineCap == QStringLiteral("round"))
cap = Qt::RoundCap;
@@ -1812,7 +1812,7 @@ QV4::Value QQuickJSContext2D::method_set_lineJoin(QV4::SimpleCallContext *ctx)
QQuickJSContext2D *r = ctx->thisObject.as<QQuickJSContext2D>();
CHECK_CONTEXT_SETTER(r)
- QString lineJoin = ctx->argument(0).toQString();
+ QString lineJoin = ctx->argument(0).toQStringNoThrow();
Qt::PenJoinStyle join;
if (lineJoin == QStringLiteral("round"))
join = Qt::RoundJoin;
@@ -2009,7 +2009,7 @@ QV4::Value QQuickJSContext2D::method_set_path(QV4::SimpleCallContext *ctx)
if (QQuickPath *path = qobject_cast<QQuickPath*>(qobjectWrapper->object()))
r->context->m_path = path->path();
} else {
- QString path = value.toQString();
+ QString path = value.toQStringNoThrow();
QQuickSvgParser::parsePathDataFast(path, r->context->m_path);
}
r->context->m_v4path = value;
@@ -2435,7 +2435,7 @@ QV4::Value QQuickJSContext2DPrototype::method_text(QV4::SimpleCallContext *ctx)
if (!qIsFinite(x) || !qIsFinite(y))
return ctx->thisObject;
- r->context->text(ctx->arguments[0].toQString(), x, y);
+ r->context->text(ctx->arguments[0].toQStringNoThrow(), x, y);
}
return ctx->thisObject;
}
@@ -2533,7 +2533,7 @@ QV4::Value QQuickJSContext2D::method_set_font(QV4::SimpleCallContext *ctx)
QQuickJSContext2D *r = ctx->thisObject.as<QQuickJSContext2D>();
CHECK_CONTEXT_SETTER(r)
- QString fs = ctx->argument(0).toQString();
+ QString fs = ctx->argument(0).toQStringNoThrow();
QFont font = qt_font_from_string(fs, r->context->state.font);
if (font != r->context->state.font) {
r->context->state.font = font;
@@ -2581,7 +2581,7 @@ QV4::Value QQuickJSContext2D::method_set_textAlign(QV4::SimpleCallContext *ctx)
QQuickJSContext2D *r = ctx->thisObject.as<QQuickJSContext2D>();
CHECK_CONTEXT_SETTER(r)
- QString textAlign = ctx->argument(0).toQString();
+ QString textAlign = ctx->argument(0).toQStringNoThrow();
QQuickContext2D::TextAlignType ta;
if (textAlign == QStringLiteral("start"))
@@ -2643,7 +2643,7 @@ QV4::Value QQuickJSContext2D::method_set_textBaseline(QV4::SimpleCallContext *ct
{
QQuickJSContext2D *r = ctx->thisObject.as<QQuickJSContext2D>();
CHECK_CONTEXT_SETTER(r)
- QString textBaseline = ctx->argument(0).toQString();
+ QString textBaseline = ctx->argument(0).toQStringNoThrow();
QQuickContext2D::TextBaseLineType tb;
if (textBaseline == QStringLiteral("alphabetic"))
@@ -2683,7 +2683,7 @@ QV4::Value QQuickJSContext2DPrototype::method_fillText(QV4::SimpleCallContext *c
qreal y = ctx->arguments[2].toNumber();
if (!qIsFinite(x) || !qIsFinite(y))
return ctx->thisObject;
- QPainterPath textPath = r->context->createTextGlyphs(x, y, ctx->arguments[0].toQString());
+ QPainterPath textPath = r->context->createTextGlyphs(x, y, ctx->arguments[0].toQStringNoThrow());
r->context->buffer()->fill(textPath);
}
return ctx->thisObject;
@@ -2702,7 +2702,7 @@ QV4::Value QQuickJSContext2DPrototype::method_strokeText(QV4::SimpleCallContext
CHECK_CONTEXT(r)
if (ctx->argumentCount == 3)
- r->context->drawText(ctx->arguments[0].toQString(), ctx->arguments[1].toNumber(), ctx->arguments[2].toNumber(), false);
+ r->context->drawText(ctx->arguments[0].toQStringNoThrow(), ctx->arguments[1].toNumber(), ctx->arguments[2].toNumber(), false);
return ctx->thisObject;
}
@@ -2737,7 +2737,7 @@ QV4::Value QQuickJSContext2DPrototype::method_measureText(QV4::SimpleCallContext
if (ctx->argumentCount == 1) {
QFontMetrics fm(r->context->state.font);
- uint width = fm.width(ctx->arguments[0].toQString());
+ uint width = fm.width(ctx->arguments[0].toQStringNoThrow());
QV4::Object *tm = ctx->engine->newObject();
tm->put(ctx->engine->newIdentifier(QStringLiteral("width")), QV4::Value::fromDouble(width));
return QV4::Value::fromObject(tm);
@@ -2821,7 +2821,7 @@ QV4::Value QQuickJSContext2DPrototype::method_drawImage(QV4::SimpleCallContext *
QQmlRefPointer<QQuickCanvasPixmap> pixmap;
if (ctx->arguments[0].isString()) {
- QUrl url(ctx->arguments[0].toQString());
+ QUrl url(ctx->arguments[0].toQStringNoThrow());
if (!url.isValid())
V4THROW_DOM(DOMEXCEPTION_TYPE_MISMATCH_ERR, "drawImage(), type mismatch");
@@ -2845,7 +2845,7 @@ QV4::Value QQuickJSContext2DPrototype::method_drawImage(QV4::SimpleCallContext *
V4THROW_DOM(DOMEXCEPTION_TYPE_MISMATCH_ERR, "drawImage(), type mismatch");
}
} else {
- QUrl url(ctx->arguments[0].toQString());
+ QUrl url(ctx->arguments[0].toQStringNoThrow());
if (url.isValid())
pixmap = r->context->createPixmap(url);
else
@@ -3100,7 +3100,7 @@ QV4::Value QQuickJSContext2DPrototype::method_createImageData(QV4::SimpleCallCon
return qt_create_image_data(w, h, engine, QImage());
}
} else if (ctx->arguments[0].isString()) {
- QImage image = r->context->createPixmap(QUrl(ctx->arguments[0].toQString()))->image();
+ QImage image = r->context->createPixmap(QUrl(ctx->arguments[0].toQStringNoThrow()))->image();
return qt_create_image_data(image.width(), image.height(), engine, image);
}
} else if (ctx->argumentCount == 2) {