From fe8a3fc61d5720997ba246db6b7eb422a2f4496e Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 10 Dec 2021 09:51:09 +0100 Subject: Prevent crash when setting non default intent category --- cura/Machines/Models/IntentCategoryModel.py | 6 +++++- cura/Machines/Models/QualityManagementModel.py | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'cura/Machines') diff --git a/cura/Machines/Models/IntentCategoryModel.py b/cura/Machines/Models/IntentCategoryModel.py index d4f28a78e9..aeb1f878ca 100644 --- a/cura/Machines/Models/IntentCategoryModel.py +++ b/cura/Machines/Models/IntentCategoryModel.py @@ -106,11 +106,15 @@ class IntentCategoryModel(ListModel): for category in available_categories: qualities = IntentModel() qualities.setIntentCategory(category) + try: + weight = list(IntentCategoryModel._get_translations().keys()).index(category) + except ValueError: + weight = 99 result.append({ "name": IntentCategoryModel.translation(category, "name", category), "description": IntentCategoryModel.translation(category, "description", None), "intent_category": category, - "weight": list(IntentCategoryModel._get_translations().keys()).index(category), + "weight": weight, "qualities": qualities }) result.sort(key = lambda k: k["weight"]) diff --git a/cura/Machines/Models/QualityManagementModel.py b/cura/Machines/Models/QualityManagementModel.py index df12b16c15..63c1ead29d 100644 --- a/cura/Machines/Models/QualityManagementModel.py +++ b/cura/Machines/Models/QualityManagementModel.py @@ -361,8 +361,15 @@ class QualityManagementModel(ListModel): "section_name": catalog.i18nc("@label", intent_translations.get(intent_category, {}).get("name", catalog.i18nc("@label", "Unknown"))), }) # Sort by quality_type for each intent category + intent_translations_list = list(intent_translations) - result = sorted(result, key = lambda x: (list(intent_translations).index(x["intent_category"]), x["quality_type"])) + def getIntentWeight(intent_category): + try: + return intent_translations_list.index(intent_category) + except ValueError: + return 99 + + result = sorted(result, key = lambda x: (getIntentWeight(x["intent_category"]), x["quality_type"])) item_list += result # Create quality_changes group items -- cgit v1.2.3