def METHOD_NAME(self) -> None:
    Logger.log("d", "Updating {model_class_name}.".format(model_class_name = self.__class__.__name__))
    cura_application = cura.CuraApplication.CuraApplication.getInstance()
    global_stack = cura_application.getGlobalContainerStack()
    if global_stack is None:
        self.setItems([])
        Logger.log("d", "No active GlobalStack, set quality profile model as empty.")
        return
    # Check for material compatibility
    if not cura_application.getMachineManager().activeMaterialsCompatible():
        Logger.log("d", "No active material compatibility, set quality profile model as empty.")
        self.setItems([])
        return
    available_categories = IntentManager.getInstance().currentAvailableIntentCategories()
    result = []
    for category in available_categories:
        if category in self._default_intent_categories:
            result.append({
                "name": IntentCategoryModel.translation(category, "name", category.title()),
                "description": IntentCategoryModel.translation(category, "description", None),
                "icon": self._icons[category],
                "custom_icon": None,
                "intent_category": category,
                "weight": self._default_intent_categories.index(category),
            })
        else:
            # There can be multiple intents with the same category, use one of these
            # intent-metadata's for the icon/description defintions for the intent
            intent_metadata = cura_application.getContainerRegistry().findContainersMetadata(type="intent",
                                                                                             definition=global_stack.findInstanceContainerDefinitionId(global_stack.definition),
                                                                                             intent_category=category)[0]
            intent_name = intent_metadata.get("name", category.title())
            icon = intent_metadata.get("icon", None)
            description = intent_metadata.get("description", None)
            if icon is not None and icon != '':
                try:
                    icon = QUrl.fromLocalFile(
                        Resources.getPath(cura.CuraApplication.CuraApplication.ResourceTypes.ImageFiles, icon))
                except (FileNotFoundError, NotADirectoryError, PermissionError):
                    Logger.log("e", f"Icon file for intent {intent_name} not found.")
                    icon = None
            result.append({
                "name": intent_name,
                "description": description,
                "custom_icon": icon,
                "icon": None,
                "intent_category": category,
                "weight": 5,
            })
    result.sort(key=lambda k: k["weight"])
    self.setItems(result)