diff options
author | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2022-05-31 17:42:18 +0300 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@qt.io> | 2022-06-02 08:55:47 +0000 |
commit | ffe94d177cb28c0657f72b8cd3a9bc6140cebd9b (patch) | |
tree | e265912d9e10dc7c3989258867da859c98550655 | |
parent | e1bb5d058debe84ee01bfb0bc92c0d4fd7344b5d (diff) |
QmlDesigner: Fix corrupted preview images in material editor/browser
Now a default preview image is shown if real preview is not yet
available.
Fixes: QDS-7055
Change-Id: Ia2f9ee3aa3b29f49224b6ba8ae8f22f1b36f629a
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io>
6 files changed, 18 insertions, 2 deletions
diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt index 9f2c3e091cb..1d56e323e9a 100644 --- a/src/plugins/qmldesigner/CMakeLists.txt +++ b/src/plugins/qmldesigner/CMakeLists.txt @@ -320,6 +320,7 @@ extend_qtc_plugin(QmlDesigner materialeditorqmlbackend.cpp materialeditorqmlbackend.h materialeditortransaction.cpp materialeditortransaction.h materialeditorview.cpp materialeditorview.h + materialeditor.qrc ) extend_qtc_plugin(QmlDesigner diff --git a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp index 4ca84cdfb9d..156add5d2da 100644 --- a/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp +++ b/src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp @@ -81,11 +81,15 @@ public: { Q_UNUSED(requestedSize) + static QPixmap defaultPreview = QPixmap::fromImage(QImage(":/materialeditor/images/defaultmaterialpreview.png")); + QPixmap pixmap{150, 150}; qint32 internalId = id.toInt(); if (m_pixmaps.contains(internalId)) pixmap = m_pixmaps.value(internalId); + else + pixmap = defaultPreview; if (size) *size = pixmap.size(); diff --git a/src/plugins/qmldesigner/components/materialeditor/images/defaultmaterialpreview.png b/src/plugins/qmldesigner/components/materialeditor/images/defaultmaterialpreview.png Binary files differnew file mode 100644 index 00000000000..93073719f55 --- /dev/null +++ b/src/plugins/qmldesigner/components/materialeditor/images/defaultmaterialpreview.png diff --git a/src/plugins/qmldesigner/components/materialeditor/materialeditor.qrc b/src/plugins/qmldesigner/components/materialeditor/materialeditor.qrc new file mode 100644 index 00000000000..4ed3c769175 --- /dev/null +++ b/src/plugins/qmldesigner/components/materialeditor/materialeditor.qrc @@ -0,0 +1,5 @@ +<RCC> + <qresource prefix="/materialeditor"> + <file>images/defaultmaterialpreview.png</file> + </qresource> +</RCC> diff --git a/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp b/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp index 828e5fab006..7c5d8436226 100644 --- a/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp +++ b/src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp @@ -77,16 +77,21 @@ public: { Q_UNUSED(requestedSize) + static QPixmap defaultPreview = QPixmap::fromImage(QImage(":/materialeditor/images/defaultmaterialpreview.png")); + QPixmap pixmap{150, 150}; if (id == "preview") { if (!m_previewPixmap.isNull()) pixmap = m_previewPixmap; + else + pixmap = defaultPreview; } else { - QString path = Core::ICore::resourcePath("qmldesigner/materialEditorQmlSources/images/" + id).toString(); - pixmap = QPixmap{path}; + qWarning() << __FUNCTION__ << "Unsupported image id:" << id; + pixmap.fill(Qt::red); } + if (size) *size = pixmap.size(); diff --git a/src/plugins/qmldesigner/qmldesignerplugin.qbs b/src/plugins/qmldesigner/qmldesignerplugin.qbs index 2d0055b8c93..ed113d4fe57 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.qbs +++ b/src/plugins/qmldesigner/qmldesignerplugin.qbs @@ -693,6 +693,7 @@ Project { "materialeditor/materialeditortransaction.h", "materialeditor/materialeditorview.cpp", "materialeditor/materialeditorview.h", + "materialeditor/materialeditor.qrc", "navigator/iconcheckboxitemdelegate.cpp", "navigator/iconcheckboxitemdelegate.h", "navigator/nameitemdelegate.cpp", |