QmlDesigner: Preview size is now changeable

You can now change the preview size with
rootModelNode.setAuxiliaryData("previewSize@Internal", size);
If size is null it will use the bounding box size.

Change-Id: Icbe747ccc5a2e26e79783825d2ed94ecc640012b
Reviewed-by: Michael Winkelmann <michael.winkelmann@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Marco Bubke
2020-05-07 14:13:21 +02:00
parent 2e409f792c
commit 0e7a1e6650
14 changed files with 169 additions and 39 deletions
@@ -25,10 +25,12 @@
#include "qt5previewnodeinstanceserver.h"
#include "nodeinstanceclientinterface.h"
#include "statepreviewimagechangedcommand.h"
#include "changepreviewimagesizecommand.h"
#include "createscenecommand.h"
#include "nodeinstanceclientinterface.h"
#include "removesharedmemorycommand.h"
#include "statepreviewimagechangedcommand.h"
#include <QQuickView>
#include <QQuickItem>
#include <designersupportdelegate.h>
@@ -100,7 +102,9 @@ QImage Qt5PreviewNodeInstanceServer::renderPreviewImage()
QRectF boundingRect = rootNodeInstance().boundingRect();
QSize previewImageSize = boundingRect.size().toSize();
previewImageSize.scale(QSize(160, 160), Qt::KeepAspectRatio);
if (!m_previewSize.isNull())
previewImageSize.scale(m_previewSize, Qt::KeepAspectRatio);
QImage previewImage = rootNodeInstance().renderPreviewImage(previewImageSize);
@@ -113,4 +117,12 @@ void QmlDesigner::Qt5PreviewNodeInstanceServer::removeSharedMemory(const QmlDesi
ImageContainer::removeSharedMemorys(command.keyNumbers());
}
void Qt5PreviewNodeInstanceServer::changePreviewImageSize(
const ChangePreviewImageSizeCommand &command)
{
m_previewSize = command.size;
collectItemChangesAndSendChangeCommands();
}
} // namespace QmlDesigner