diff options
author | Jaime van Kessel <nallath@gmail.com> | 2021-12-10 11:51:09 +0300 |
---|---|---|
committer | Jaime van Kessel <nallath@gmail.com> | 2021-12-10 11:51:09 +0300 |
commit | fe8a3fc61d5720997ba246db6b7eb422a2f4496e (patch) | |
tree | 208cc553386e03ee3bf69777700ba2a76282189d | |
parent | f456c1a885b13db7fd8cb8c8cf266325c269af72 (diff) |
Prevent crash when setting non default intent category
-rw-r--r-- | cura/Machines/Models/IntentCategoryModel.py | 6 | ||||
-rw-r--r-- | cura/Machines/Models/QualityManagementModel.py | 9 |
2 files changed, 13 insertions, 2 deletions
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 |