aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@qt.io>2022-05-31 17:42:18 +0300
committerMiikka Heikkinen <miikka.heikkinen@qt.io>2022-06-02 08:55:47 +0000
commitffe94d177cb28c0657f72b8cd3a9bc6140cebd9b (patch)
treee265912d9e10dc7c3989258867da859c98550655
parente1bb5d058debe84ee01bfb0bc92c0d4fd7344b5d (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>
-rw-r--r--src/plugins/qmldesigner/CMakeLists.txt1
-rw-r--r--src/plugins/qmldesigner/components/materialbrowser/materialbrowserwidget.cpp4
-rw-r--r--src/plugins/qmldesigner/components/materialeditor/images/defaultmaterialpreview.pngbin0 -> 2685 bytes
-rw-r--r--src/plugins/qmldesigner/components/materialeditor/materialeditor.qrc5
-rw-r--r--src/plugins/qmldesigner/components/materialeditor/materialeditorqmlbackend.cpp9
-rw-r--r--src/plugins/qmldesigner/qmldesignerplugin.qbs1
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
new file mode 100644
index 00000000000..93073719f55
--- /dev/null
+++ b/src/plugins/qmldesigner/components/materialeditor/images/defaultmaterialpreview.png
Binary files differ
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",