Grouping and per object settings now work correctly again

This commit is contained in:
Jaime van Kessel 2016-02-23 12:55:41 +01:00
parent ee1c16d1fc
commit c15709936b
3 changed files with 7 additions and 5 deletions

View File

@ -536,6 +536,7 @@ class CuraApplication(QtApplication):
group_decorator = GroupDecorator() group_decorator = GroupDecorator()
group_node.addDecorator(group_decorator) group_node.addDecorator(group_decorator)
group_node.setParent(self.getController().getScene().getRoot()) group_node.setParent(self.getController().getScene().getRoot())
group_node.setSelectable(True)
center = Selection.getSelectionCenter() center = Selection.getSelectionCenter()
group_node.setPosition(center) group_node.setPosition(center)
group_node.setCenterPosition(center) group_node.setCenterPosition(center)

View File

@ -79,14 +79,16 @@ class StartSliceJob(Job):
self._sendSettings(self._profile) self._sendSettings(self._profile)
slice_message = self._socket.createMessage("cura.proto.Slice"); slice_message = self._socket.createMessage("cura.proto.Slice")
for group in object_groups: for group in object_groups:
group_message = slice_message.addRepeatedMessage("object_lists"); group_message = slice_message.addRepeatedMessage("object_lists")
if group[0].getParent().callDecoration("isGroup"):
self._handlePerObjectSettings(group[0].getParent(), group_message)
for object in group: for object in group:
mesh_data = object.getMeshData().getTransformed(object.getWorldTransformation()) mesh_data = object.getMeshData().getTransformed(object.getWorldTransformation())
obj = group_message.addRepeatedMessage("objects"); obj = group_message.addRepeatedMessage("objects")
obj.id = id(object) obj.id = id(object)
verts = numpy.array(mesh_data.getVertices()) verts = numpy.array(mesh_data.getVertices())
@ -142,7 +144,6 @@ class StartSliceJob(Job):
object_settings = node.callDecoration("getAllSettingValues") object_settings = node.callDecoration("getAllSettingValues")
if not object_settings: if not object_settings:
return return
for key, value in object_settings.items(): for key, value in object_settings.items():
setting = message.addRepeatedMessage("settings") setting = message.addRepeatedMessage("settings")
setting.name = key setting.name = key

View File

@ -70,7 +70,7 @@ class PerObjectSettingsModel(ListModel):
def _updateModel(self): def _updateModel(self):
self.clear() self.clear()
for node in BreadthFirstIterator(self._root): for node in BreadthFirstIterator(self._root):
if type(node) is not SceneNode or not node.getMeshData() or not node.isSelectable(): if type(node) is not SceneNode or not node.isSelectable():
continue continue
node_profile = node.callDecoration("getProfile") node_profile = node.callDecoration("getProfile")
if not node_profile: if not node_profile: