aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/context2d
diff options
context:
space:
mode:
authorAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-10-12 14:48:35 +0300
committerAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-10-13 08:22:26 +0000
commita05fec277d0a122e03bb6c7756777729df50b1f2 (patch)
tree65ba250895722795ce3d14fb9b4341953ffd1733 /src/quick/items/context2d
parentae80962806f44fc9f58de14d62229771b836cb93 (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.cpp40
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:,");
}