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

This commit is contained in:
Jaime van Kessel 2017-09-21 15:19:35 +02:00
commit c6e589e7d9
2 changed files with 21 additions and 30 deletions

View File

@ -12,7 +12,6 @@ from UM.Mesh.MeshBuilder import MeshBuilder
from UM.Mesh.MeshReader import MeshReader
from UM.Scene.GroupDecorator import GroupDecorator
from cura.Settings.SettingOverrideDecorator import SettingOverrideDecorator
from cura.ZOffsetDecorator import ZOffsetDecorator
from UM.Application import Application
from cura.Settings.ExtruderManager import ExtruderManager
from cura.QualityManager import QualityManager
@ -47,7 +46,7 @@ class ThreeMFReader(MeshReader):
def _createMatrixFromTransformationString(self, transformation):
if transformation == "":
return Matrix()
splitted_transformation = transformation.split()
## Transformation is saved as:
## M00 M01 M02 0.0
@ -105,8 +104,8 @@ class ThreeMFReader(MeshReader):
# Add the setting override decorator, so we can add settings to this node.
if settings:
um_node.addDecorator(SettingOverrideDecorator())
global_container_stack = Application.getInstance().getGlobalContainerStack()
global_container_stack = Application.getInstance().getGlobalContainerStack()
# Ensure the correct next container for the SettingOverride decorator is set.
if global_container_stack:
multi_extrusion = global_container_stack.getProperty("machine_extruder_count", "value") > 1
@ -144,15 +143,12 @@ class ThreeMFReader(MeshReader):
if len(um_node.getChildren()) > 0:
group_decorator = GroupDecorator()
um_node.addDecorator(group_decorator)
um_node.setSelectable(True)
if um_node.getMeshData():
# Assuming that all nodes with mesh data are printable objects
# affects (auto) slicing
sliceable_decorator = SliceableObjectDecorator()
um_node.addDecorator(sliceable_decorator)
return um_node
def read(self, file_name):
@ -172,18 +168,10 @@ class ThreeMFReader(MeshReader):
transform_matrix = Matrix()
mesh_data = um_node.getMeshData()
if mesh_data is not None:
extents = mesh_data.getExtents()
center_vector = Vector(extents.center.x, extents.center.y, extents.center.z)
# If the object in a saved project is below the bed, keep it that way
if extents.minimum.z < 0.0:
um_node.addDecorator(ZOffsetDecorator())
um_node.callDecoration("setZOffset", extents.minimum.z)
transform_matrix.setByTranslation(center_vector)
transform_matrix.multiply(um_node.getLocalTransformation())
um_node.setTransformation(transform_matrix)
@ -207,7 +195,7 @@ class ThreeMFReader(MeshReader):
translation_matrix.setByTranslation(translation_vector)
transformation_matrix.multiply(translation_matrix)
# Third step: 3MF also defines a unit, whereas Cura always assumes mm.
# Third step: 3MF also defines a unit, wheras Cura always assumes mm.
scale_matrix = Matrix()
scale_matrix.setByScaleVector(self._getScaleFromUnit(self._unit))
transformation_matrix.multiply(scale_matrix)

View File

@ -509,21 +509,23 @@ Item
}
}
Item
Rectangle
{
id: infillIcon
width: (infillCellRight.width / 5) - (UM.Theme.getSize("sidebar_margin").width)
width: (parent.width / 5) - (UM.Theme.getSize("sidebar_margin").width)
height: width
anchors.right: infillCellRight.right
anchors.top: infillSlider.top
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: UM.Theme.getSize("sidebar_margin").height / 2
// we loop over all density icons and only show the one that has the current density and steps
Repeater
{
id: infillIconList
model: infillModel
anchors.fill: parent
property int activeIndex: {
for (var i = 0; i < infillModel.count; i++) {
@ -541,20 +543,21 @@ Item
return -1
}
Item {
Rectangle
{
anchors.fill: parent
visible: infillIconList.activeIndex == index
Rectangle {
border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("quality_slider_available")
UM.RecolorImage {
anchors.fill: parent
visible: infillIconList.activeIndex == index
UM.RecolorImage {
anchors.fill: parent
sourceSize.width: width
sourceSize.height: width
source: UM.Theme.getIcon(model.icon)
color: UM.Theme.getColor("quality_slider_available")
}
anchors.margins: 2
sourceSize.width: width
sourceSize.height: width
source: UM.Theme.getIcon(model.icon)
color: UM.Theme.getColor("quality_slider_unavailable")
}
}
}