CURA-4776 Add unique id to the profiles so user can import the same

profile several times with different names.It also fixes the issue for
importing profiles from GCode.
This commit is contained in:
Diego Prado Gesto 2018-01-10 16:40:58 +01:00
parent d91a2e1ca3
commit 78b42afbcb

View File

@ -214,8 +214,6 @@ class CuraContainerRegistry(ContainerRegistry):
name_seed = os.path.splitext(os.path.basename(file_name))[0]
new_name = self.uniqueName(name_seed)
# Ensure it is always a list of profiles
if type(profile_or_list) is not list:
profile_or_list = [profile_or_list]
@ -238,16 +236,6 @@ class CuraContainerRegistry(ContainerRegistry):
else: #More extruders in the imported file than in the machine.
continue #Delete the additional profiles.
# if the loaded profile comes from g-code then the instance containers should be
# defined differently
if extension == "gcode":
if profile.getMetaDataEntry("extruder") is None:
temp_defintion = profile.getMetaDataEntry("definition")
profile.metaData["id"] = (temp_defintion + "_" + new_name).lower()
elif profile.getMetaDataEntry("extruder") is not None: # be sure that extruder data exist
temp_extruder = profile.getMetaDataEntry("extruder")
profile.metaData["id"] = (temp_extruder + "_" + new_name).lower()
result = self._configureProfile(profile, profile_id, new_name)
if result is not None:
return {"status": "error", "message": catalog.i18nc(
@ -280,6 +268,10 @@ class CuraContainerRegistry(ContainerRegistry):
profile._id = new_id
profile.setName(new_name)
# Set the unique Id to the profile, so it's generating a new one even if the user imports the same profile
# It also solves an issue with importing profiles from G-Codes
profile.setMetaDataEntry("id", new_id)
if "type" in profile.getMetaData():
profile.setMetaDataEntry("type", "quality_changes")
else: