forked from qt-creator/qt-creator
QmlDesigner: Fix bundle material instance not removed
after removing a bundle material from project Fixes: QDS-12527 Change-Id: I72b4d99d15a6fbd454d45bdf0ba1a1b469e1a5bb Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -40,7 +40,10 @@ ContentLibraryMaterialsModel::ContentLibraryMaterialsModel(ContentLibraryWidget
|
||||
|
||||
qmlRegisterType<QmlDesigner::FileDownloader>("WebFetcher", 1, 0, "FileDownloader");
|
||||
qmlRegisterType<QmlDesigner::MultiFileDownloader>("WebFetcher", 1, 0, "MultiFileDownloader");
|
||||
}
|
||||
|
||||
void ContentLibraryMaterialsModel::loadBundle()
|
||||
{
|
||||
QDir bundleDir{m_downloadPath};
|
||||
if (fetchBundleMetadata(bundleDir) && fetchBundleIcons(bundleDir))
|
||||
loadMaterialBundle(bundleDir);
|
||||
|
@@ -51,6 +51,7 @@ public:
|
||||
|
||||
void resetModel();
|
||||
void updateIsEmpty();
|
||||
void loadBundle();
|
||||
|
||||
Internal::ContentLibraryBundleImporter *bundleImporter() const;
|
||||
|
||||
|
@@ -290,7 +290,6 @@ void ContentLibraryView::modelAttached(Model *model)
|
||||
m_hasQuick3DImport = model->hasImport("QtQuick3D");
|
||||
|
||||
updateBundlesQuick3DVersion();
|
||||
updateBundleMaterialsImportedState();
|
||||
|
||||
const bool hasLibrary = Utils3D::materialLibraryNode(this).isValid();
|
||||
m_widget->setHasMaterialLibrary(hasLibrary);
|
||||
@@ -302,11 +301,16 @@ void ContentLibraryView::modelAttached(Model *model)
|
||||
m_widget->setHasActive3DScene(m_sceneId != -1);
|
||||
m_widget->clearSearchFilter();
|
||||
|
||||
// bundles loading has to happen here, otherwise project path is not ready which will
|
||||
// cause bundle items types to resolve incorrectly
|
||||
m_widget->materialsModel()->loadBundle();
|
||||
m_widget->effectsModel()->loadBundle();
|
||||
updateBundleEffectsImportedState();
|
||||
|
||||
m_widget->userModel()->loadMaterialBundle();
|
||||
m_widget->userModel()->loadTextureBundle();
|
||||
|
||||
updateBundleMaterialsImportedState();
|
||||
updateBundleEffectsImportedState();
|
||||
updateBundleUserMaterialsImportedState();
|
||||
}
|
||||
|
||||
void ContentLibraryView::modelAboutToBeDetached(Model *model)
|
||||
|
Reference in New Issue
Block a user