mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-14 04:05:53 +08:00
Groups of objects are taken into account and are shown in the object
list instead of each model separatelly. Contributes to CURA-4525
This commit is contained in:
parent
1a520a041b
commit
c839bc1759
@ -24,16 +24,28 @@ class ObjectsModel(ListModel):
|
|||||||
nodes = []
|
nodes = []
|
||||||
filter_current_build_plate = Preferences.getInstance().getValue("view/filter_current_build_plate")
|
filter_current_build_plate = Preferences.getInstance().getValue("view/filter_current_build_plate")
|
||||||
active_build_plate_number = self._build_plate_number
|
active_build_plate_number = self._build_plate_number
|
||||||
|
group_nr = 1
|
||||||
for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()):
|
for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()):
|
||||||
if not issubclass(type(node), SceneNode) or (not node.getMeshData() and not node.callDecoration("getLayerData")):
|
if not issubclass(type(node), SceneNode):
|
||||||
continue
|
continue
|
||||||
if not node.callDecoration("isSliceable"):
|
if (not node.getMeshData() and not node.callDecoration("getLayerData")) and not node.callDecoration("isGroup"):
|
||||||
|
continue
|
||||||
|
if node.getParent() and node.getParent().callDecoration("isGroup"):
|
||||||
|
continue # Grouped nodes don't need resetting as their parent (the group) is resetted)
|
||||||
|
if not node.callDecoration("isSliceable") and not node.callDecoration("isGroup"):
|
||||||
continue
|
continue
|
||||||
node_build_plate_number = node.callDecoration("getBuildPlateNumber")
|
node_build_plate_number = node.callDecoration("getBuildPlateNumber")
|
||||||
if filter_current_build_plate and node_build_plate_number != active_build_plate_number:
|
if filter_current_build_plate and node_build_plate_number != active_build_plate_number:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if not node.callDecoration("isGroup"):
|
||||||
|
name = node.getName()
|
||||||
|
else:
|
||||||
|
name = "Group #" + str(group_nr)
|
||||||
|
group_nr += 1
|
||||||
|
|
||||||
nodes.append({
|
nodes.append({
|
||||||
"name": node.getName(),
|
"name": name,
|
||||||
"isSelected": Selection.isSelected(node),
|
"isSelected": Selection.isSelected(node),
|
||||||
"isOutsideBuildArea": node.isOutsideBuildArea(),
|
"isOutsideBuildArea": node.isOutsideBuildArea(),
|
||||||
"buildPlateNumber": node_build_plate_number,
|
"buildPlateNumber": node_build_plate_number,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user