forked from qt-creator/qt-creator
Previously, icon generation was done at import time, but that was wasteful, as we now have image cache backed icon generation available for component library icons. Added the few remaining missing bits to support icon generation for image cache and disabled the old icon generation implementation for Qt6. A few issues in fit algorithm for preview image generation were also uncovered and fixed to make icons render scene in comparable size to the old version. Qt5 imports still generate using old way since component library 3D previews generation doesn't work on Qt5. Fixes: QDS-6205 Change-Id: I5418fa19d86e81adcd184be023f1dfbc813d0bf5 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
69 lines
2.4 KiB
C++
69 lines
2.4 KiB
C++
/****************************************************************************
|
|
**
|
|
** Copyright (C) 2022 The Qt Company Ltd.
|
|
** Contact: https://www.qt.io/licensing/
|
|
**
|
|
** This file is part of Qt Creator.
|
|
**
|
|
** Commercial License Usage
|
|
** Licensees holding valid commercial Qt licenses may use this file in
|
|
** accordance with the commercial license agreement provided with the
|
|
** Software or, alternatively, in accordance with the terms contained in
|
|
** a written agreement between you and The Qt Company. For licensing terms
|
|
** and conditions see https://www.qt.io/terms-conditions. For further
|
|
** information use the contact form at https://www.qt.io/contact-us.
|
|
**
|
|
** GNU General Public License Usage
|
|
** Alternatively, this file may be used under the terms of the GNU
|
|
** General Public License version 3 as published by the Free Software
|
|
** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
** included in the packaging of this file. Please review the following
|
|
** information to ensure the GNU General Public License requirements will
|
|
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
**
|
|
****************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
#include <QtGlobal>
|
|
|
|
#include "objectnodeinstance.h"
|
|
|
|
namespace QmlDesigner {
|
|
namespace Internal {
|
|
|
|
class Quick3DRenderableNodeInstance : public ObjectNodeInstance
|
|
{
|
|
public:
|
|
~Quick3DRenderableNodeInstance() override;
|
|
void initialize(const ObjectNodeInstance::Pointer &objectNodeInstance,
|
|
InstanceContainer::NodeFlags flags) override;
|
|
|
|
QImage renderImage() const override;
|
|
QImage renderPreviewImage(const QSize &previewImageSize) const override;
|
|
|
|
bool isRenderable() const override;
|
|
bool hasContent() const override;
|
|
QRectF boundingRect() const override;
|
|
QRectF contentItemBoundingBox() const override;
|
|
QPointF position() const override;
|
|
QSizeF size() const override;
|
|
|
|
QList<ServerNodeInstance> stateInstances() const override;
|
|
|
|
QQuickItem *contentItem() const override;
|
|
void setPropertyVariant(const PropertyName &name, const QVariant &value) override;
|
|
|
|
protected:
|
|
explicit Quick3DRenderableNodeInstance(QObject *node);
|
|
Qt5NodeInstanceServer *qt5NodeInstanceServer() const;
|
|
|
|
QByteArray m_dummyRootViewCreateFunction;
|
|
|
|
private:
|
|
QQuickItem *m_dummyRootView = nullptr;
|
|
};
|
|
|
|
} // namespace Internal
|
|
} // namespace QmlDesigner
|