diff options
author | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-10-12 14:48:35 +0300 |
---|---|---|
committer | Anton Kudryavtsev <a.kudryavtsev@netris.ru> | 2016-10-13 08:22:26 +0000 |
commit | a05fec277d0a122e03bb6c7756777729df50b1f2 (patch) | |
tree | 65ba250895722795ce3d14fb9b4341953ffd1733 /src/quick/items/context2d | |
parent | ae80962806f44fc9f58de14d62229771b836cb93 (diff) |
QQuickCanvasItem: use QStringLiteral less
QStringLiteral was used to store type of image, but
it was needless wrapper, because it always was be converted
to char* to pass to QImage::save(), so replace it with char*
to save allocations and text size.
Also replace QStringLiteral().arg().arg() pattern with
QStringBuilder. Again save allocations and text size.
Change-Id: I6614e127789a05069da200c263145654a289b309
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Diffstat (limited to 'src/quick/items/context2d')
-rw-r--r-- | src/quick/items/context2d/qquickcanvasitem.cpp | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp index 3b2b125c63..368a2b78d1 100644 --- a/src/quick/items/context2d/qquickcanvasitem.cpp +++ b/src/quick/items/context2d/qquickcanvasitem.cpp @@ -1095,6 +1095,23 @@ QImage QQuickCanvasItem::toImage(const QRectF& rect) const return QImage(); } +static const char* mimeToType(const QString &mime) +{ + if (mime == QLatin1String("image/png")) + return "PNG"; + else if (mime == QLatin1String("image/bmp")) + return "BMP"; + else if (mime == QLatin1String("image/jpeg")) + return "JPEG"; + else if (mime == QLatin1String("image/x-portable-pixmap")) + return "PPM"; + else if (mime == QLatin1String("image/tiff")) + return "TIFF"; + else if (mime == QLatin1String("image/xpm")) + return "XPM"; + return nullptr; +} + /*! \qmlmethod string QtQuick::Canvas::toDataURL(string mimeType) @@ -1112,27 +1129,14 @@ QString QQuickCanvasItem::toDataURL(const QString& mimeType) const QByteArray ba; QBuffer buffer(&ba); buffer.open(QIODevice::WriteOnly); - QString mime = mimeType.toLower(); - QString type; - if (mime == QLatin1String("image/png")) { - type = QStringLiteral("PNG"); - } else if (mime == QLatin1String("image/bmp")) - type = QStringLiteral("BMP"); - else if (mime == QLatin1String("image/jpeg")) - type = QStringLiteral("JPEG"); - else if (mime == QLatin1String("image/x-portable-pixmap")) - type = QStringLiteral("PPM"); - else if (mime == QLatin1String("image/tiff")) - type = QStringLiteral("TIFF"); - else if (mime == QLatin1String("image/xpm")) - type = QStringLiteral("XPM"); - else + const QString mime = mimeType.toLower(); + const char* type = mimeToType(mime); + if (!type) return QStringLiteral("data:,"); - image.save(&buffer, type.toLatin1()); + image.save(&buffer, type); buffer.close(); - QString dataUrl = QStringLiteral("data:%1;base64,%2"); - return dataUrl.arg(mime).arg(QLatin1String(ba.toBase64().constData())); + return QLatin1String("data:") + mime + QLatin1String(";base64,") + QLatin1String(ba.toBase64().constData()); } return QStringLiteral("data:,"); } |