Browse Source

Merge branch '2.1' of https://github.com/Ultimaker/Cura into 2.1

Tim Kuipers 9 years ago
parent
commit
88ddf714c4

+ 1 - 0
cura/CuraApplication.py

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

+ 6 - 6
plugins/CuraEngineBackend/ProcessSlicedObjectListJob.py

@@ -24,7 +24,7 @@ class ProcessSlicedObjectListJob(Job):
         self._message = message
         self._scene = Application.getInstance().getController().getScene()
         self._progress = None
-        self._abortRequested = False
+        self._abort_requested = False
 
     ##  Aborts the processing of layers.
     #
@@ -33,14 +33,14 @@ class ProcessSlicedObjectListJob(Job):
     #   requested and then stop processing by itself. There is no guarantee
     #   that the abort will stop the job any time soon or even at all.
     def abort(self):
-        self._abortRequested = True
+        self._abort_requested = True
 
     def run(self):
         if Application.getInstance().getController().getActiveView().getPluginId() == "LayerView":
             self._progress = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, -1)
             self._progress.show()
             Job.yieldThread()
-            if self._abortRequested:
+            if self._abort_requested:
                 if self._progress:
                     self._progress.hide()
                 return
@@ -57,7 +57,7 @@ class ProcessSlicedObjectListJob(Job):
                 else:
                     object_id_map[id(node)] = node
             Job.yieldThread()
-            if self._abortRequested:
+            if self._abort_requested:
                 if self._progress:
                     self._progress.hide()
                 return
@@ -113,7 +113,7 @@ class ProcessSlicedObjectListJob(Job):
                 # TODO: Rebuild the layer data mesh once the layer has been processed.
                 # This needs some work in LayerData so we can add the new layers instead of recreating the entire mesh.
 
-                if self._abortRequested:
+                if self._abort_requested:
                     if self._progress:
                         self._progress.hide()
                     return
@@ -123,7 +123,7 @@ class ProcessSlicedObjectListJob(Job):
         # We are done processing all the layers we got from the engine, now create a mesh out of the data
         layer_data.build()
 
-        if self._abortRequested:
+        if self._abort_requested:
             if self._progress:
                 self._progress.hide()
             return

+ 5 - 4
plugins/CuraEngineBackend/StartSliceJob.py

@@ -79,14 +79,16 @@ class StartSliceJob(Job):
 
         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:
-            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:
                 mesh_data = object.getMeshData().getTransformed(object.getWorldTransformation())
 
-                obj = group_message.addRepeatedMessage("objects");
+                obj = group_message.addRepeatedMessage("objects")
                 obj.id = id(object)
 
                 verts = numpy.array(mesh_data.getVertices())
@@ -142,7 +144,6 @@ class StartSliceJob(Job):
         object_settings = node.callDecoration("getAllSettingValues")
         if not object_settings:
             return
-
         for key, value in object_settings.items():
             setting = message.addRepeatedMessage("settings")
             setting.name = key

+ 10 - 10
plugins/LayerView/LayerView.qml

@@ -10,16 +10,16 @@ import UM 1.0 as UM
 
 Item 
 {
-    width: UM.Theme.sizes.button.width
-    height: UM.Theme.sizes.slider_layerview_size.height
+    width: UM.Theme.getSize("button").width
+    height: UM.Theme.getSize("slider_layerview_size").height
 
     Slider 
     {
         id: slider
-        width: UM.Theme.sizes.slider_layerview_size.width
-        height: UM.Theme.sizes.slider_layerview_size.height
+        width: UM.Theme.getSize("slider_layerview_size").width
+        height: UM.Theme.getSize("slider_layerview_size").height
         anchors.left: parent.left
-        anchors.leftMargin: UM.Theme.sizes.slider_layerview_margin.width/2
+        anchors.leftMargin: UM.Theme.getSize("slider_layerview_margin").width/2
         orientation: Qt.Vertical
         minimumValue: 0;
         maximumValue: UM.LayerView.numLayers;
@@ -34,11 +34,11 @@ Item
         anchors.left: parent.left
         anchors.verticalCenter: parent.verticalCenter
         z: slider.z - 1
-        width: UM.Theme.sizes.slider_layerview_background.width
-        height: slider.height + UM.Theme.sizes.default_margin.height * 2
-        color: UM.Theme.colors.tool_panel_background;
-        border.width: UM.Theme.sizes.default_lining.width
-        border.color: UM.Theme.colors.lining
+        width: UM.Theme.getSize("slider_layerview_background").width
+        height: slider.height + UM.Theme.getSize("default_margin").height * 2
+        color: UM.Theme.getColor("tool_panel_background");
+        border.width: UM.Theme.getSize("default_lining").width
+        border.color: UM.Theme.getColor("lining")
 
         MouseArea {
             id: sliderMouseArea

+ 1 - 1
plugins/PerObjectSettingsTool/PerObjectSettingsModel.py

@@ -70,7 +70,7 @@ class PerObjectSettingsModel(ListModel):
     def _updateModel(self):
         self.clear()
         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
             node_profile = node.callDecoration("getProfile")
             if not node_profile:

+ 22 - 22
plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml

@@ -22,13 +22,13 @@ Item {
         anchors.top: parent.top;
         anchors.left: parent.left;
 
-        spacing: UM.Theme.sizes.default_margin.height;
+        spacing: UM.Theme.getSize("default_margin").height;
 
         UM.SettingItem {
             id: profileSelection
 
-            width: UM.Theme.sizes.setting.width;
-            height: UM.Theme.sizes.setting.height;
+            width: UM.Theme.getSize("setting").width;
+            height: UM.Theme.getSize("setting").height;
 
             name: catalog.i18nc("@label", "Object profile")
             type: "enum"
@@ -48,8 +48,8 @@ Item {
 
         Column {
             id: customisedSettings
-            spacing: UM.Theme.sizes.default_lining.height;
-            width: UM.Theme.sizes.setting.width + UM.Theme.sizes.setting.height/2;
+            spacing: UM.Theme.getSize("default_lining").height;
+            width: UM.Theme.getSize("setting").width + UM.Theme.getSize("setting").height/2;
 
             Repeater {
                 id: settings;
@@ -57,8 +57,8 @@ Item {
                 model: UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).settings
 
                 UM.SettingItem {
-                    width: UM.Theme.sizes.setting.width;
-                    height: UM.Theme.sizes.setting.height;
+                    width: UM.Theme.getSize("setting").width;
+                    height: UM.Theme.getSize("setting").height;
 
                     name: model.label;
                     type: model.type;
@@ -80,8 +80,8 @@ Item {
                     {
                         anchors.left: parent.right;
 
-                        width: UM.Theme.sizes.setting.height;
-                        height: UM.Theme.sizes.setting.height;
+                        width: UM.Theme.getSize("setting").height;
+                        height: UM.Theme.getSize("setting").height;
 
                         onClicked: UM.ActiveTool.properties.getValue("Model").removeSettingOverride(UM.ActiveTool.properties.getValue("Model").getItem(base.currentIndex).id, model.key)
 
@@ -98,8 +98,8 @@ Item {
                                     height: parent.height/2
                                     sourceSize.width: width
                                     sourceSize.height: width
-                                    color: control.hovered ? UM.Theme.colors.setting_control_button_hover : UM.Theme.colors.setting_control_button
-                                    source: UM.Theme.icons.cross1
+                                    color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button")
+                                    source: UM.Theme.getIcon("cross1")
                                 }
                             }
                         }
@@ -112,7 +112,7 @@ Item {
         {
             id: customise_settings_button;
             anchors.right: profileSelection.right;
-            height: UM.Theme.sizes.setting.height;
+            height: UM.Theme.getSize("setting").height;
             visible: parseInt(UM.Preferences.getValue("cura/active_mode")) == 1
 
             text: catalog.i18nc("@action:button", "Add Setting");
@@ -123,16 +123,16 @@ Item {
                 {
                     width: control.width;
                     height: control.height;
-                    border.width: UM.Theme.sizes.default_lining.width;
-                    border.color: control.pressed ? UM.Theme.colors.action_button_active_border :
-                                  control.hovered ? UM.Theme.colors.action_button_hovered_border : UM.Theme.colors.action_button_border
-                    color: control.pressed ? UM.Theme.colors.action_button_active :
-                           control.hovered ? UM.Theme.colors.action_button_hovered : UM.Theme.colors.action_button
+                    border.width: UM.Theme.getSize("default_lining").width;
+                    border.color: control.pressed ? UM.Theme.getColor("action_button_active_border") :
+                                  control.hovered ? UM.Theme.getColor("action_button_hovered_border") : UM.Theme.getColor("action_button_border")
+                    color: control.pressed ? UM.Theme.getColor("action_button_active") :
+                           control.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
                 }
                 label: Label
                 {
                     text: control.text;
-                    color: UM.Theme.colors.setting_control_text;
+                    color: UM.Theme.getColor("setting_control_text");
                     anchors.centerIn: parent
                 }
             }
@@ -181,7 +181,7 @@ Item {
             }
 
             Column {
-                width: view.width - UM.Theme.sizes.default_margin.width * 2;
+                width: view.width - UM.Theme.getSize("default_margin").width * 2;
                 height: childrenRect.height;
 
                 Repeater {
@@ -212,11 +212,11 @@ Item {
                                 }
                                 label: Row
                                 {
-                                    spacing: UM.Theme.sizes.default_margin.width;
+                                    spacing: UM.Theme.getSize("default_margin").width;
                                     Image
                                     {
                                         anchors.verticalCenter: parent.verticalCenter;
-                                        source: control.checked ? UM.Theme.icons.arrow_right : UM.Theme.icons.arrow_bottom;
+                                        source: control.checked ? UM.Theme.getIcon("arrow_right") : UM.Theme.getIcon("arrow_bottom");
                                     }
                                     Label
                                     {
@@ -260,7 +260,7 @@ Item {
 
                                 delegate: ToolButton {
                                     id: button;
-                                    x: model.depth * UM.Theme.sizes.default_margin.width;
+                                    x: model.depth * UM.Theme.getSize("default_margin").width;
                                     text: model.name;
                                     tooltip: model.description;
                                     visible: !model.global_only

+ 7 - 1
plugins/PerObjectSettingsTool/PerObjectSettingsTool.py

@@ -27,6 +27,12 @@ class PerObjectSettingsTool(Tool):
         return PerObjectSettingsModel.PerObjectSettingsModel(self._model)
 
     def getSelectedIndex(self):
-        selected_object_id = id(Selection.getSelectedObject(0))
+        try:
+            selected_object = Selection.getSelectedObject(0)
+            if selected_object.getParent().callDecoration("isGroup"):
+                selected_object = selected_object.getParent()
+        except:
+            selected_object = None
+        selected_object_id = id(selected_object)
         index = self.getModel().find("id", selected_object_id)
         return index

+ 1 - 1
plugins/USBPrinting/ControlWindow.qml

@@ -21,7 +21,7 @@ UM.Dialog
         anchors.fill: parent;
         Row
         {
-            spacing: UM.Theme.sizes.default_margin.width;
+            spacing: UM.Theme.getSize("default_margin").width;
             Text
             {
                 //: USB Printing dialog label, %1 is head temperature

+ 2 - 2
resources/machines/fdmprinter.json

@@ -1221,7 +1221,7 @@
                         "buildplate": "Touching Buildplate",
                         "everywhere": "Everywhere"
                     },
-                    "default": "everywhere",
+                    "default": "buildplate",
                     "enabled": "support_enable"
                 },
                 "support_angle": {
@@ -1231,7 +1231,7 @@
                     "type": "float",
                     "min_value": "0",
                     "max_value": "90",
-                    "default": 60,
+                    "default": 50,
                     "visible": false,
                     "enabled": "support_enable"
                 },

+ 0 - 10
resources/machines/ultimaker2plus_025.json

@@ -13,16 +13,6 @@
 
     "overrides": {
         "machine_nozzle_size": { "default": 0.25 },
-
-        "layer_height": { "default": 0.06 },
-        "layer_height_0": { "default": 0.15 },
-
-        "infill_sparse_density": { "default": 12 },
-        "speed_print": { "default": 30 },
-        "speed_wall": { "inherit_function": "parent_value / 30 * 20" },
-        "speed_wall_x": { "inherit_function": "speed_print / 30 * 25" },
-        "speed_topbottom": { "inherit_function": "parent_value / 30 * 20" },
-
         "coasting_volume": { "default": 0.1 },
         "coasting_min_volume": { "default": 0.17 }
     }

Some files were not shown because too many files changed in this diff