Revert "Filter generic list for Ultimaker printers."

This reverts commit 767789d394.
This commit is contained in:
Jack Ha 2018-03-26 15:07:37 +02:00
parent 18e3e084a5
commit 2a39d81a3c

View file

@ -1,10 +1,8 @@
# Copyright (c) 2018 Ultimaker B.V. # Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher. # Cura is released under the terms of the LGPLv3 or higher.
from typing import Dict
from UM.Logger import Logger from UM.Logger import Logger
from cura.Machines.Models.BaseMaterialsModel import BaseMaterialsModel from cura.Machines.Models.BaseMaterialsModel import BaseMaterialsModel
from cura.Machines.MaterialNode import MaterialNode
class GenericMaterialsModel(BaseMaterialsModel): class GenericMaterialsModel(BaseMaterialsModel):
@ -40,24 +38,6 @@ class GenericMaterialsModel(BaseMaterialsModel):
self.setItems([]) self.setItems([])
return return
#special case only for Ultimaker printers, filter the generic list
printer_name = global_stack.getMetaDataEntry("name", "empty")
filter_ultimaker_printers = False
if printer_name and printer_name[:9] == "Ultimaker":
filter_ultimaker_printers = True
# Special case, Ultimaker generic list also should be filtered
if filter_ultimaker_printers is False:
item_list = self._getGenericProfiles(available_material_dict)
else:
item_list = self._getUltimakerGenericProfiles(available_material_dict)
# Sort the item list by material name alphabetically
item_list = sorted(item_list, key = lambda d: d["name"].upper())
self.setItems(item_list)
def _getGenericProfiles(self, available_material_dict):
item_list = [] item_list = []
for root_material_id, container_node in available_material_dict.items(): for root_material_id, container_node in available_material_dict.items():
metadata = container_node.metadata metadata = container_node.metadata
@ -75,42 +55,7 @@ class GenericMaterialsModel(BaseMaterialsModel):
} }
item_list.append(item) item_list.append(item)
return item_list # Sort the item list by material name alphabetically
item_list = sorted(item_list, key = lambda d: d["name"].upper())
## The method filters available materials by name. If material is not defined for Ultimaker printers self.setItems(item_list)
# then it will be removed
# \available_material_dict \type{dictionary}
# \return The filtered list
def _getUltimakerGenericProfiles(self, available_material_dict: Dict[str, MaterialNode]):
generic_item_list = []
ultimaker_item_list = []
for root_material_id, container_node in available_material_dict.items():
metadata = container_node.metadata
is_ultimaker_brand = False
brand_name = metadata["brand"].lower()
if brand_name != "generic":
if brand_name == 'ultimaker':
is_ultimaker_brand = True
else:
continue
item = {"root_material_id": root_material_id,
"id": metadata["id"],
"name": metadata["name"],
"brand": metadata["brand"],
"material": metadata["material"],
"color_name": metadata["color_name"],
"container_node": container_node
}
if is_ultimaker_brand:
ultimaker_item_list.append(item['material'])
else:
generic_item_list.append(item)
# If material is not in ultimaker list then remove it
item_list = [material for material in generic_item_list if material['material'] in ultimaker_item_list]
return item_list