diff options
Diffstat (limited to 'src/quick/items/context2d/qquickcanvasitem.cpp')
-rw-r--r-- | src/quick/items/context2d/qquickcanvasitem.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/src/quick/items/context2d/qquickcanvasitem.cpp b/src/quick/items/context2d/qquickcanvasitem.cpp index 368a2b78d1..dcad719ef0 100644 --- a/src/quick/items/context2d/qquickcanvasitem.cpp +++ b/src/quick/items/context2d/qquickcanvasitem.cpp @@ -1097,18 +1097,22 @@ QImage QQuickCanvasItem::toImage(const QRectF& rect) const 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"; + const QLatin1String imagePrefix("image/"); + if (!mime.startsWith(imagePrefix)) + return nullptr; + const QStringRef mimeExt = mime.midRef(imagePrefix.size()); + if (mimeExt == QLatin1String("png")) + return "png"; + else if (mimeExt == QLatin1String("bmp")) + return "bmp"; + else if (mimeExt == QLatin1String("jpeg")) + return "jpeg"; + else if (mimeExt == QLatin1String("x-portable-pixmap")) + return "ppm"; + else if (mimeExt == QLatin1String("tiff")) + return "tiff"; + else if (mimeExt == QLatin1String("xpm")) + return "xpm"; return nullptr; } |