forked from qt-creator/qt-creator
QmlDesigner: Add icons for lights and cameras when added to content lib
Also small relevant tweaks. Fixes: QDS-12903 Change-Id: If9d4c9c34005ca0853ec8bda52ebb0234a2223e8 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Shrief Gabr <shrief.gabr@qt.io> Reviewed-by: Ali Kianian <ali.kianian@qt.io>
This commit is contained in:
BIN
share/qtcreator/qmldesigner/contentLibraryImages/camera.png
Normal file
BIN
share/qtcreator/qmldesigner/contentLibraryImages/camera.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
BIN
share/qtcreator/qmldesigner/contentLibraryImages/light.png
Normal file
BIN
share/qtcreator/qmldesigner/contentLibraryImages/light.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
@@ -7,21 +7,18 @@
|
|||||||
|
|
||||||
namespace QmlDesigner {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
namespace Internal {
|
|
||||||
|
|
||||||
ContentLibraryIconProvider::ContentLibraryIconProvider()
|
ContentLibraryIconProvider::ContentLibraryIconProvider()
|
||||||
: QQuickImageProvider(Pixmap)
|
: QQuickImageProvider(Pixmap)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QPixmap ContentLibraryIconProvider::requestPixmap(const QString &id,
|
QPixmap ContentLibraryIconProvider::requestPixmap(const QString &id,
|
||||||
QSize *size,
|
QSize *size,
|
||||||
[[maybe_unused]] const QSize &requestedSize)
|
[[maybe_unused]] const QSize &requestedSize)
|
||||||
{
|
{
|
||||||
QString realPath = Core::ICore::resourcePath("qmldesigner/contentLibraryImages/" + id).toString();
|
QString imagePath = Core::ICore::resourcePath("qmldesigner/contentLibraryImages/" + id).toFSPathString();
|
||||||
|
|
||||||
QPixmap pixmap{realPath};
|
QPixmap pixmap{imagePath};
|
||||||
|
|
||||||
if (size) {
|
if (size) {
|
||||||
size->setWidth(pixmap.width());
|
size->setWidth(pixmap.width());
|
||||||
@@ -37,6 +34,4 @@ QPixmap ContentLibraryIconProvider::requestPixmap(const QString &id,
|
|||||||
return pixmap;
|
return pixmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Internal
|
|
||||||
|
|
||||||
} // namespace QmlDesigner
|
} // namespace QmlDesigner
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
#include <QQuickImageProvider>
|
#include <QQuickImageProvider>
|
||||||
|
|
||||||
namespace QmlDesigner::Internal {
|
namespace QmlDesigner {
|
||||||
|
|
||||||
class ContentLibraryIconProvider : public QQuickImageProvider
|
class ContentLibraryIconProvider : public QQuickImageProvider
|
||||||
{
|
{
|
||||||
@@ -14,4 +14,4 @@ public:
|
|||||||
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) override;
|
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace QmlDesigner::Internal
|
} // namespace QmlDesigner
|
||||||
|
@@ -4,6 +4,7 @@
|
|||||||
#include "contentlibraryview.h"
|
#include "contentlibraryview.h"
|
||||||
|
|
||||||
#include "contentlibrarybundleimporter.h"
|
#include "contentlibrarybundleimporter.h"
|
||||||
|
#include "contentlibraryiconprovider.h"
|
||||||
#include "contentlibraryitem.h"
|
#include "contentlibraryitem.h"
|
||||||
#include "contentlibraryeffectsmodel.h"
|
#include "contentlibraryeffectsmodel.h"
|
||||||
#include "contentlibrarymaterial.h"
|
#include "contentlibrarymaterial.h"
|
||||||
@@ -890,10 +891,18 @@ void ContentLibraryView::addLibItem(const ModelNode &node, const QPixmap &iconPi
|
|||||||
m_widget->userModel()->addItem(m_bundleId, name, qml, m_iconSavePath.toUrl(), depAssetsRelativePaths);
|
m_widget->userModel()->addItem(m_bundleId, name, qml, m_iconSavePath.toUrl(), depAssetsRelativePaths);
|
||||||
|
|
||||||
// generate and save icon
|
// generate and save icon
|
||||||
if (iconPixmap.isNull())
|
QPixmap iconPixmapToSave;
|
||||||
|
if (node.metaInfo().isQtQuick3DCamera())
|
||||||
|
iconPixmapToSave = m_widget->iconProvider()->requestPixmap("camera.png", nullptr, {});
|
||||||
|
else if (node.metaInfo().isQtQuick3DLight())
|
||||||
|
iconPixmapToSave = m_widget->iconProvider()->requestPixmap("light.png", nullptr, {});
|
||||||
|
else
|
||||||
|
iconPixmapToSave = iconPixmap;
|
||||||
|
|
||||||
|
if (iconPixmapToSave.isNull())
|
||||||
model()->nodeInstanceView()->previewImageDataForGenericNode(node, {}, {}, ADD_ITEM_REQ_ID);
|
model()->nodeInstanceView()->previewImageDataForGenericNode(node, {}, {}, ADD_ITEM_REQ_ID);
|
||||||
else
|
else
|
||||||
saveIconToBundle(iconPixmap);
|
saveIconToBundle(iconPixmapToSave);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ContentLibraryView::getExportPath(const ModelNode &node) const
|
QString ContentLibraryView::getExportPath(const ModelNode &node) const
|
||||||
|
@@ -5,12 +5,12 @@
|
|||||||
|
|
||||||
#include "contentlibrarybundleimporter.h"
|
#include "contentlibrarybundleimporter.h"
|
||||||
#include "contentlibraryeffectsmodel.h"
|
#include "contentlibraryeffectsmodel.h"
|
||||||
|
#include "contentlibraryiconprovider.h"
|
||||||
#include "contentlibraryitem.h"
|
#include "contentlibraryitem.h"
|
||||||
#include "contentlibrarymaterial.h"
|
#include "contentlibrarymaterial.h"
|
||||||
#include "contentlibrarymaterialsmodel.h"
|
#include "contentlibrarymaterialsmodel.h"
|
||||||
#include "contentlibrarytexture.h"
|
#include "contentlibrarytexture.h"
|
||||||
#include "contentlibrarytexturesmodel.h"
|
#include "contentlibrarytexturesmodel.h"
|
||||||
#include "contentlibraryiconprovider.h"
|
|
||||||
#include "contentlibraryusermodel.h"
|
#include "contentlibraryusermodel.h"
|
||||||
|
|
||||||
#include "utils/filedownloader.h"
|
#include "utils/filedownloader.h"
|
||||||
@@ -123,7 +123,8 @@ bool ContentLibraryWidget::eventFilter(QObject *obj, QEvent *event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
ContentLibraryWidget::ContentLibraryWidget()
|
ContentLibraryWidget::ContentLibraryWidget()
|
||||||
: m_quickWidget(Utils::makeUniqueObjectPtr<StudioQuickWidget>(this))
|
: m_iconProvider(Utils::makeUniqueObjectPtr<ContentLibraryIconProvider>())
|
||||||
|
, m_quickWidget(Utils::makeUniqueObjectPtr<StudioQuickWidget>(this))
|
||||||
, m_materialsModel(new ContentLibraryMaterialsModel(this))
|
, m_materialsModel(new ContentLibraryMaterialsModel(this))
|
||||||
, m_texturesModel(new ContentLibraryTexturesModel("Textures", this))
|
, m_texturesModel(new ContentLibraryTexturesModel("Textures", this))
|
||||||
, m_environmentsModel(new ContentLibraryTexturesModel("Environments", this))
|
, m_environmentsModel(new ContentLibraryTexturesModel("Environments", this))
|
||||||
@@ -138,8 +139,7 @@ ContentLibraryWidget::ContentLibraryWidget()
|
|||||||
|
|
||||||
m_quickWidget->quickWidget()->setObjectName(Constants::OBJECT_NAME_CONTENT_LIBRARY);
|
m_quickWidget->quickWidget()->setObjectName(Constants::OBJECT_NAME_CONTENT_LIBRARY);
|
||||||
m_quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView);
|
m_quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView);
|
||||||
m_quickWidget->engine()->addImageProvider(QStringLiteral("contentlibrary"),
|
m_quickWidget->engine()->addImageProvider("contentlibrary", m_iconProvider.get());
|
||||||
new Internal::ContentLibraryIconProvider);
|
|
||||||
m_quickWidget->engine()->addImportPath(propertyEditorResourcesPath() + "/imports");
|
m_quickWidget->engine()->addImportPath(propertyEditorResourcesPath() + "/imports");
|
||||||
m_quickWidget->setClearColor(Theme::getColor(Theme::Color::DSpanelBackground));
|
m_quickWidget->setClearColor(Theme::getColor(Theme::Color::DSpanelBackground));
|
||||||
|
|
||||||
@@ -181,6 +181,10 @@ ContentLibraryWidget::ContentLibraryWidget()
|
|||||||
createImporter();
|
createImporter();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ContentLibraryWidget::~ContentLibraryWidget()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void ContentLibraryWidget::createImporter()
|
void ContentLibraryWidget::createImporter()
|
||||||
{
|
{
|
||||||
m_importer = new ContentLibraryBundleImporter();
|
m_importer = new ContentLibraryBundleImporter();
|
||||||
@@ -212,6 +216,11 @@ void ContentLibraryWidget::createImporter()
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ContentLibraryIconProvider *ContentLibraryWidget::iconProvider() const
|
||||||
|
{
|
||||||
|
return m_iconProvider.get();
|
||||||
|
}
|
||||||
|
|
||||||
void ContentLibraryWidget::updateImportedState(const QString &bundleId)
|
void ContentLibraryWidget::updateImportedState(const QString &bundleId)
|
||||||
{
|
{
|
||||||
if (!m_importer)
|
if (!m_importer)
|
||||||
|
@@ -24,13 +24,13 @@ namespace QmlDesigner {
|
|||||||
|
|
||||||
class ContentLibraryBundleImporter;
|
class ContentLibraryBundleImporter;
|
||||||
class ContentLibraryEffectsModel;
|
class ContentLibraryEffectsModel;
|
||||||
|
class ContentLibraryIconProvider;
|
||||||
class ContentLibraryItem;
|
class ContentLibraryItem;
|
||||||
class ContentLibraryMaterial;
|
class ContentLibraryMaterial;
|
||||||
class ContentLibraryMaterialsModel;
|
class ContentLibraryMaterialsModel;
|
||||||
class ContentLibraryTexture;
|
class ContentLibraryTexture;
|
||||||
class ContentLibraryTexturesModel;
|
class ContentLibraryTexturesModel;
|
||||||
class ContentLibraryUserModel;
|
class ContentLibraryUserModel;
|
||||||
class NodeMetaInfo;
|
|
||||||
|
|
||||||
class ContentLibraryWidget : public QFrame
|
class ContentLibraryWidget : public QFrame
|
||||||
{
|
{
|
||||||
@@ -48,6 +48,7 @@ class ContentLibraryWidget : public QFrame
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
ContentLibraryWidget();
|
ContentLibraryWidget();
|
||||||
|
~ContentLibraryWidget();
|
||||||
|
|
||||||
QList<QToolButton *> createToolBarWidgets();
|
QList<QToolButton *> createToolBarWidgets();
|
||||||
|
|
||||||
@@ -94,6 +95,7 @@ public:
|
|||||||
QSize sizeHint() const override;
|
QSize sizeHint() const override;
|
||||||
|
|
||||||
ContentLibraryBundleImporter *importer() const;
|
ContentLibraryBundleImporter *importer() const;
|
||||||
|
ContentLibraryIconProvider *iconProvider() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void bundleItemDragStarted(QmlDesigner::ContentLibraryItem *item);
|
void bundleItemDragStarted(QmlDesigner::ContentLibraryItem *item);
|
||||||
@@ -129,6 +131,7 @@ private:
|
|||||||
void populateTextureBundleModels();
|
void populateTextureBundleModels();
|
||||||
void createImporter();
|
void createImporter();
|
||||||
|
|
||||||
|
Utils::UniqueObjectPtr<ContentLibraryIconProvider> m_iconProvider;
|
||||||
Utils::UniqueObjectPtr<StudioQuickWidget> m_quickWidget;
|
Utils::UniqueObjectPtr<StudioQuickWidget> m_quickWidget;
|
||||||
QPointer<ContentLibraryMaterialsModel> m_materialsModel;
|
QPointer<ContentLibraryMaterialsModel> m_materialsModel;
|
||||||
QPointer<ContentLibraryTexturesModel> m_texturesModel;
|
QPointer<ContentLibraryTexturesModel> m_texturesModel;
|
||||||
|
Reference in New Issue
Block a user