diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index f2b107f1b6..0688a2222d 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -4,7 +4,7 @@ import os import urllib.parse import uuid -from typing import Dict, Union, Any, TYPE_CHECKING, List +from typing import Any, cast, Dict, List, TYPE_CHECKING, Union from PyQt5.QtCore import QObject, QUrl from PyQt5.QtWidgets import QMessageBox @@ -31,8 +31,6 @@ if TYPE_CHECKING: from cura.Machines.MaterialNode import MaterialNode from cura.Machines.QualityChangesGroup import QualityChangesGroup - from cura.Machines.QualityManager import QualityManager - catalog = i18nCatalog("cura") @@ -448,7 +446,10 @@ class ContainerManager(QObject): if not path: return - container_list = [n.container for n in quality_changes_group.getAllNodes() if n.container is not None] + container_registry = cura.CuraApplication.CuraApplication.getInstance().getContainerRegistry() + container_list = [cast(InstanceContainer, container_registry.findContainers(id = quality_changes_group.metadata_for_global["id"])[0])] # type: List[InstanceContainer] + for metadata in quality_changes_group.metadata_per_extruder.values(): + container_list.append(cast(InstanceContainer, container_registry.findContainers(id = metadata["id"])[0])) cura.CuraApplication.CuraApplication.getInstance().getContainerRegistry().exportQualityProfile(container_list, path, file_type) __instance = None # type: ContainerManager diff --git a/cura/Settings/CuraContainerRegistry.py b/cura/Settings/CuraContainerRegistry.py index 97634b4da4..84b714fdcf 100644 --- a/cura/Settings/CuraContainerRegistry.py +++ b/cura/Settings/CuraContainerRegistry.py @@ -101,7 +101,8 @@ class CuraContainerRegistry(ContainerRegistry): ## Exports an profile to a file # - # \param container_list \type{list} the containers to export + # \param container_list \type{list} the containers to export. This is not + # necessarily in any order! # \param file_name \type{str} the full path and filename to export to. # \param file_type \type{str} the file type with the format " (*.)" # \return True if the export succeeded, false otherwise.