mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-21 05:09:37 +08:00

This reverts commit 28f4d8513db7efce17bfd8b80fa7c8b237fd1c18. The original revert was to revert an accidental merge from master to 4.7. This now reverts the revert on Master, so that we still have those changes on Master.
44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
# Copyright (c) 2020 Ultimaker B.V.
|
|
# Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
from typing import Dict, List
|
|
|
|
from PyQt5.QtCore import Qt
|
|
|
|
from UM.Qt.ListModel import ListModel
|
|
from cura.Settings.GlobalStack import GlobalStack
|
|
|
|
create_new_list_item = {
|
|
"id": "new",
|
|
"name": "Create new",
|
|
"displayName": "Create new",
|
|
"type": "default_option" # to make sure we are not mixing the "Create new" option with a printer with id "new"
|
|
} # type: Dict[str, str]
|
|
|
|
|
|
class UpdatableMachinesModel(ListModel):
|
|
"""Model that holds cura packages.
|
|
|
|
By setting the filter property the instances held by this model can be changed.
|
|
"""
|
|
|
|
def __init__(self, parent = None) -> None:
|
|
super().__init__(parent)
|
|
|
|
self.addRoleName(Qt.UserRole + 1, "id")
|
|
self.addRoleName(Qt.UserRole + 2, "name")
|
|
self.addRoleName(Qt.UserRole + 3, "displayName")
|
|
self.addRoleName(Qt.UserRole + 4, "type") # Either "default_option" or "machine"
|
|
|
|
def update(self, machines: List[GlobalStack]) -> None:
|
|
items = [create_new_list_item] # type: List[Dict[str, str]]
|
|
|
|
for machine in sorted(machines, key = lambda printer: printer.name):
|
|
items.append({
|
|
"id": machine.id,
|
|
"name": machine.name,
|
|
"displayName": "Update " + machine.name,
|
|
"type": "machine"
|
|
})
|
|
self.setItems(items)
|