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 Internal {
|
||||
|
||||
ContentLibraryIconProvider::ContentLibraryIconProvider()
|
||||
: QQuickImageProvider(Pixmap)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QPixmap ContentLibraryIconProvider::requestPixmap(const QString &id,
|
||||
QSize *size,
|
||||
[[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) {
|
||||
size->setWidth(pixmap.width());
|
||||
@@ -37,6 +34,4 @@ QPixmap ContentLibraryIconProvider::requestPixmap(const QString &id,
|
||||
return pixmap;
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
} // namespace QmlDesigner
|
||||
|
@@ -5,7 +5,7 @@
|
||||
|
||||
#include <QQuickImageProvider>
|
||||
|
||||
namespace QmlDesigner::Internal {
|
||||
namespace QmlDesigner {
|
||||
|
||||
class ContentLibraryIconProvider : public QQuickImageProvider
|
||||
{
|
||||
@@ -14,4 +14,4 @@ public:
|
||||
QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) override;
|
||||
};
|
||||
|
||||
} // namespace QmlDesigner::Internal
|
||||
} // namespace QmlDesigner
|
||||
|
@@ -4,6 +4,7 @@
|
||||
#include "contentlibraryview.h"
|
||||
|
||||
#include "contentlibrarybundleimporter.h"
|
||||
#include "contentlibraryiconprovider.h"
|
||||
#include "contentlibraryitem.h"
|
||||
#include "contentlibraryeffectsmodel.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);
|
||||
|
||||
// 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);
|
||||
else
|
||||
saveIconToBundle(iconPixmap);
|
||||
saveIconToBundle(iconPixmapToSave);
|
||||
}
|
||||
|
||||
QString ContentLibraryView::getExportPath(const ModelNode &node) const
|
||||
|
@@ -5,12 +5,12 @@
|
||||
|
||||
#include "contentlibrarybundleimporter.h"
|
||||
#include "contentlibraryeffectsmodel.h"
|
||||
#include "contentlibraryiconprovider.h"
|
||||
#include "contentlibraryitem.h"
|
||||
#include "contentlibrarymaterial.h"
|
||||
#include "contentlibrarymaterialsmodel.h"
|
||||
#include "contentlibrarytexture.h"
|
||||
#include "contentlibrarytexturesmodel.h"
|
||||
#include "contentlibraryiconprovider.h"
|
||||
#include "contentlibraryusermodel.h"
|
||||
|
||||
#include "utils/filedownloader.h"
|
||||
@@ -123,7 +123,8 @@ bool ContentLibraryWidget::eventFilter(QObject *obj, QEvent *event)
|
||||
}
|
||||
|
||||
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_texturesModel(new ContentLibraryTexturesModel("Textures", this))
|
||||
, m_environmentsModel(new ContentLibraryTexturesModel("Environments", this))
|
||||
@@ -138,8 +139,7 @@ ContentLibraryWidget::ContentLibraryWidget()
|
||||
|
||||
m_quickWidget->quickWidget()->setObjectName(Constants::OBJECT_NAME_CONTENT_LIBRARY);
|
||||
m_quickWidget->setResizeMode(QQuickWidget::SizeRootObjectToView);
|
||||
m_quickWidget->engine()->addImageProvider(QStringLiteral("contentlibrary"),
|
||||
new Internal::ContentLibraryIconProvider);
|
||||
m_quickWidget->engine()->addImageProvider("contentlibrary", m_iconProvider.get());
|
||||
m_quickWidget->engine()->addImportPath(propertyEditorResourcesPath() + "/imports");
|
||||
m_quickWidget->setClearColor(Theme::getColor(Theme::Color::DSpanelBackground));
|
||||
|
||||
@@ -181,6 +181,10 @@ ContentLibraryWidget::ContentLibraryWidget()
|
||||
createImporter();
|
||||
}
|
||||
|
||||
ContentLibraryWidget::~ContentLibraryWidget()
|
||||
{
|
||||
}
|
||||
|
||||
void ContentLibraryWidget::createImporter()
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (!m_importer)
|
||||
|
@@ -24,13 +24,13 @@ namespace QmlDesigner {
|
||||
|
||||
class ContentLibraryBundleImporter;
|
||||
class ContentLibraryEffectsModel;
|
||||
class ContentLibraryIconProvider;
|
||||
class ContentLibraryItem;
|
||||
class ContentLibraryMaterial;
|
||||
class ContentLibraryMaterialsModel;
|
||||
class ContentLibraryTexture;
|
||||
class ContentLibraryTexturesModel;
|
||||
class ContentLibraryUserModel;
|
||||
class NodeMetaInfo;
|
||||
|
||||
class ContentLibraryWidget : public QFrame
|
||||
{
|
||||
@@ -48,6 +48,7 @@ class ContentLibraryWidget : public QFrame
|
||||
|
||||
public:
|
||||
ContentLibraryWidget();
|
||||
~ContentLibraryWidget();
|
||||
|
||||
QList<QToolButton *> createToolBarWidgets();
|
||||
|
||||
@@ -94,6 +95,7 @@ public:
|
||||
QSize sizeHint() const override;
|
||||
|
||||
ContentLibraryBundleImporter *importer() const;
|
||||
ContentLibraryIconProvider *iconProvider() const;
|
||||
|
||||
signals:
|
||||
void bundleItemDragStarted(QmlDesigner::ContentLibraryItem *item);
|
||||
@@ -129,6 +131,7 @@ private:
|
||||
void populateTextureBundleModels();
|
||||
void createImporter();
|
||||
|
||||
Utils::UniqueObjectPtr<ContentLibraryIconProvider> m_iconProvider;
|
||||
Utils::UniqueObjectPtr<StudioQuickWidget> m_quickWidget;
|
||||
QPointer<ContentLibraryMaterialsModel> m_materialsModel;
|
||||
QPointer<ContentLibraryTexturesModel> m_texturesModel;
|
||||
|
Reference in New Issue
Block a user