mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-30 15:54:32 +08:00
36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
from typing import List, Optional
|
|
|
|
from PyQt5.Qt import QObject, pyqtSlot
|
|
|
|
from cura.Machines.ContainerNode import ContainerNode
|
|
|
|
|
|
class ContainerGroup(QObject):
|
|
|
|
def __init__(self, name: str, parent = None):
|
|
super().__init__(parent)
|
|
self.name = name
|
|
self.node_for_global = None # type: Optional[ContainerNode]
|
|
self.nodes_for_extruders = dict()
|
|
|
|
@pyqtSlot(result = str)
|
|
def getName(self) -> str:
|
|
return self.name
|
|
|
|
def getAllKeys(self) -> set:
|
|
result = set()
|
|
for node in [self.node_for_global] + list(self.nodes_for_extruders.values()):
|
|
if node is None:
|
|
continue
|
|
for key in node.getContainer().getAllKeys():
|
|
result.add(key)
|
|
return result
|
|
|
|
def getAllNodes(self) -> List[ContainerNode]:
|
|
result = []
|
|
if self.node_for_global is not None:
|
|
result.append(self.node_for_global)
|
|
for extruder_node in self.nodes_for_extruders.values():
|
|
result.append(extruder_node)
|
|
return result
|