diff options
Diffstat (limited to 'src/quick/items/qquicktextnodeengine.cpp')
| -rw-r--r-- | src/quick/items/qquicktextnodeengine.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/quick/items/qquicktextnodeengine.cpp b/src/quick/items/qquicktextnodeengine.cpp index 461191f6d0..d000638593 100644 --- a/src/quick/items/qquicktextnodeengine.cpp +++ b/src/quick/items/qquicktextnodeengine.cpp @@ -12,6 +12,7 @@ #include <QtGui/qtextobject.h> #include <QtGui/qtexttable.h> #include <QtGui/qtextlist.h> +#include <QtGui/qimageiohandler.h> #include <private/qquicktext_p.h> #include <private/qtextdocumentlayout_p.h> @@ -435,12 +436,15 @@ void QQuickTextNodeEngine::addTextObject(const QTextBlock &block, const QPointF } if (image.isNull()) { - image = QImage((size * m_devicePixelRatio).toSize(), QImage::Format_ARGB32_Premultiplied); - image.setDevicePixelRatio(m_devicePixelRatio); - image.fill(Qt::transparent); - { - QPainter painter(&image); - handler->drawObject(&painter, QRectF({}, size), textDocument, pos, format); + if (QImageIOHandler::allocateImage((size * m_devicePixelRatio).toSize(), + QImage::Format_ARGB32_Premultiplied, + &image)) { + image.setDevicePixelRatio(m_devicePixelRatio); + image.fill(Qt::transparent); + { + QPainter painter(&image); + handler->drawObject(&painter, QRectF({}, size), textDocument, pos, format); + } } } |
