Merge remote-tracking branch 'origin/4.0' into CL-1165_missing_cloud_info

This commit is contained in:
Ian Paschal 2019-01-23 12:05:06 +01:00
commit 32072e3bfe
38 changed files with 243 additions and 233 deletions

View file

@ -1043,6 +1043,12 @@ class BuildVolume(SceneNode):
else: else:
raise Exception("Unknown bed adhesion type. Did you forget to update the build volume calculations for your new bed adhesion type?") raise Exception("Unknown bed adhesion type. Did you forget to update the build volume calculations for your new bed adhesion type?")
max_length_available = 0.5 * min(
self._global_container_stack.getProperty("machine_width", "value"),
self._global_container_stack.getProperty("machine_depth", "value")
)
bed_adhesion_size = min(bed_adhesion_size, max_length_available)
support_expansion = 0 support_expansion = 0
support_enabled = self._global_container_stack.getProperty("support_enable", "value") support_enabled = self._global_container_stack.getProperty("support_enable", "value")
support_offset = self._global_container_stack.getProperty("support_offset", "value") support_offset = self._global_container_stack.getProperty("support_offset", "value")

View file

@ -289,16 +289,21 @@ class ConvexHullDecorator(SceneNodeDecorator):
# Add extra margin depending on adhesion type # Add extra margin depending on adhesion type
adhesion_type = self._global_stack.getProperty("adhesion_type", "value") adhesion_type = self._global_stack.getProperty("adhesion_type", "value")
max_length_available = 0.5 * min(
self._getSettingProperty("machine_width", "value"),
self._getSettingProperty("machine_depth", "value")
)
if adhesion_type == "raft": if adhesion_type == "raft":
extra_margin = max(0, self._getSettingProperty("raft_margin", "value")) extra_margin = min(max_length_available, max(0, self._getSettingProperty("raft_margin", "value")))
elif adhesion_type == "brim": elif adhesion_type == "brim":
extra_margin = max(0, self._getSettingProperty("brim_line_count", "value") * self._getSettingProperty("skirt_brim_line_width", "value")) extra_margin = min(max_length_available, max(0, self._getSettingProperty("brim_line_count", "value") * self._getSettingProperty("skirt_brim_line_width", "value")))
elif adhesion_type == "none": elif adhesion_type == "none":
extra_margin = 0 extra_margin = 0
elif adhesion_type == "skirt": elif adhesion_type == "skirt":
extra_margin = max( extra_margin = min(max_length_available, max(
0, self._getSettingProperty("skirt_gap", "value") + 0, self._getSettingProperty("skirt_gap", "value") +
self._getSettingProperty("skirt_line_count", "value") * self._getSettingProperty("skirt_brim_line_width", "value")) self._getSettingProperty("skirt_line_count", "value") * self._getSettingProperty("skirt_brim_line_width", "value")))
else: else:
raise Exception("Unknown bed adhesion type. Did you forget to update the convex hull calculations for your new bed adhesion type?") raise Exception("Unknown bed adhesion type. Did you forget to update the convex hull calculations for your new bed adhesion type?")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -151,7 +151,7 @@ class CuraEngineBackend(QObject, Backend):
if self._multi_build_plate_model: if self._multi_build_plate_model:
self._multi_build_plate_model.activeBuildPlateChanged.connect(self._onActiveViewChanged) self._multi_build_plate_model.activeBuildPlateChanged.connect(self._onActiveViewChanged)
self._application.globalContainerStackChanged.connect(self._onGlobalStackChanged) self._application.getMachineManager().globalContainerChanged.connect(self._onGlobalStackChanged)
self._onGlobalStackChanged() self._onGlobalStackChanged()
# extruder enable / disable. Actually wanted to use machine manager here, but the initialization order causes it to crash # extruder enable / disable. Actually wanted to use machine manager here, but the initialization order causes it to crash
@ -821,7 +821,7 @@ class CuraEngineBackend(QObject, Backend):
extruder.propertyChanged.disconnect(self._onSettingChanged) extruder.propertyChanged.disconnect(self._onSettingChanged)
extruder.containersChanged.disconnect(self._onChanged) extruder.containersChanged.disconnect(self._onChanged)
self._global_container_stack = self._application.getGlobalContainerStack() self._global_container_stack = self._application.getMachineManager().activeMachine
if self._global_container_stack: if self._global_container_stack:
self._global_container_stack.propertyChanged.connect(self._onSettingChanged) # Note: Only starts slicing when the value changed. self._global_container_stack.propertyChanged.connect(self._onSettingChanged) # Note: Only starts slicing when the value changed.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

View file

@ -1 +0,0 @@
<svg width="200px" height="200px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="lds-rolling" style="animation-play-state: running; animation-delay: 0s; background-image: none; background-position: initial initial; background-repeat: initial initial;"><circle cx="50" cy="50" fill="none" ng-attr-stroke="{{config.color}}" ng-attr-stroke-width="{{config.width}}" ng-attr-r="{{config.radius}}" ng-attr-stroke-dasharray="{{config.dasharray}}" stroke="#0CA9E3" stroke-width="13" r="43" stroke-dasharray="202.63272615654165 69.54424205218055" style="animation-play-state: running; animation-delay: 0s;"><animateTransform attributeName="transform" type="rotate" calcMode="linear" values="0 50 50;360 50 50" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite" style="animation-play-state: running; animation-delay: 0s;"></animateTransform></circle></svg>

Before

Width:  |  Height:  |  Size: 903 B

View file

@ -62,17 +62,6 @@ Item
readyAction() readyAction()
} }
} }
} busy: active
AnimatedImage
{
id: loader
visible: active
source: visible ? "../images/loading.gif" : ""
width: UM.Theme.getSize("toolbox_loader").width
height: UM.Theme.getSize("toolbox_loader").height
anchors.right: button.left
anchors.rightMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: button.verticalCenter
} }
} }

View file

@ -13,7 +13,7 @@ Rectangle {
property var enabled: true property var enabled: true
property var iconSource: null; property var iconSource: null;
color: !enabled ? "#cccccc" : "#0a0850" // TODO: Theme! color: UM.Theme.getColor("monitor_icon_primary")
height: width; height: width;
radius: Math.round(0.5 * width); radius: Math.round(0.5 * width);
width: 24 * screenScaleFactor; width: 24 * screenScaleFactor;
@ -24,7 +24,7 @@ Rectangle {
horizontalCenter: parent.horizontalCenter; horizontalCenter: parent.horizontalCenter;
verticalCenter: parent.verticalCenter; verticalCenter: parent.verticalCenter;
} }
color: UM.Theme.getColor("primary_text"); color: UM.Theme.getColor("monitor_icon_accent");
height: width; height: width;
source: iconSource; source: iconSource;
width: Math.round(parent.width / 2); width: Math.round(parent.width / 2);

View file

@ -6,10 +6,11 @@ import QtQuick.Controls 2.0
import UM 1.3 as UM import UM 1.3 as UM
import Cura 1.0 as Cura import Cura 1.0 as Cura
// TODO: Theme & documentation! /**
// The expandable component has 3 major sub components: * The expandable component has 3 major sub components:
// * The headerItem Always visible and should hold some info about what happens if the component is expanded * - The headerItem Always visible and should hold some info about what happens if the component is expanded
// * The popupItem The content that needs to be shown if the component is expanded. * - The popupItem The content that needs to be shown if the component is expanded.
*/
Item Item
{ {
id: base id: base
@ -17,10 +18,10 @@ Item
property bool expanded: false property bool expanded: false
property bool enabled: true property bool enabled: true
property var borderWidth: 1 property var borderWidth: 1
property color borderColor: "#CCCCCC" property color borderColor: UM.Theme.getColor("monitor_card_border")
property color headerBackgroundColor: "white" property color headerBackgroundColor: UM.Theme.getColor("monitor_icon_accent")
property color headerHoverColor: "#e8f2fc" property color headerHoverColor: UM.Theme.getColor("monitor_card_hover")
property color drawerBackgroundColor: "white" property color drawerBackgroundColor: UM.Theme.getColor("monitor_icon_accent")
property alias headerItem: header.children property alias headerItem: header.children
property alias drawerItem: drawer.children property alias drawerItem: drawer.children

View file

@ -41,7 +41,7 @@ Item
anchors.centerIn: parent anchors.centerIn: parent
height: parent.height height: parent.height
width: height width: height
color: buildplateIcon.visible > 0 ? "transparent" : "#eeeeee" // TODO: Theme! color: buildplateIcon.visible > 0 ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading")
radius: Math.floor(height / 2) radius: Math.floor(height / 2)
} }
@ -49,7 +49,7 @@ Item
{ {
id: buildplateIcon id: buildplateIcon
anchors.centerIn: parent anchors.centerIn: parent
color: "#0a0850" // TODO: Theme! (Standard purple) color: UM.Theme.getColor("monitor_icon_primary")
height: parent.height height: parent.height
source: "../svg/icons/buildplate.svg" source: "../svg/icons/buildplate.svg"
width: height width: height
@ -60,7 +60,7 @@ Item
Label Label
{ {
id: buildplateLabel id: buildplateLabel
color: "#191919" // TODO: Theme! color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("default") // 12pt, regular font: UM.Theme.getFont("default") // 12pt, regular
text: buildplate ? buildplate : "" text: buildplate ? buildplate : ""

View file

@ -49,12 +49,12 @@ Item
GradientStop GradientStop
{ {
position: 0.0 position: 0.0
color: "#fff6f6f6" // TODO: Theme! color: UM.Theme.getColor("monitor_stage_background")
} }
GradientStop GradientStop
{ {
position: 1.0 position: 1.0
color: "#66f6f6f6" // TODO: Theme! color: UM.Theme.getColor("monitor_stage_background_fade")
} }
} }
} }
@ -82,9 +82,9 @@ Item
onClicked: navigateTo(currentIndex - 1) onClicked: navigateTo(currentIndex - 1)
background: Rectangle background: Rectangle
{ {
color: leftButton.hovered ? "#e8f2fc" : "#ffffff" // TODO: Theme! color: leftButton.hovered ? UM.Theme.getColor("monitor_card_hover") : UM.Theme.getColor("monitor_card_background")
border.width: 1 * screenScaleFactor // TODO: Theme! border.width: 1 * screenScaleFactor // TODO: Theme!
border.color: "#cccccc" // TODO: Theme! border.color: UM.Theme.getColor("monitor_card_border")
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
} }
contentItem: Item contentItem: Item
@ -97,7 +97,7 @@ Item
height: width // TODO: Theme! height: width // TODO: Theme!
sourceSize.width: width // TODO: Theme! sourceSize.width: width // TODO: Theme!
sourceSize.height: width // TODO: Theme! sourceSize.height: width // TODO: Theme!
color: "#152950" // TODO: Theme! color: UM.Theme.getColor("monitor_text_primary")
source: UM.Theme.getIcon("arrow_left") source: UM.Theme.getIcon("arrow_left")
} }
} }
@ -161,9 +161,9 @@ Item
hoverEnabled: true hoverEnabled: true
background: Rectangle background: Rectangle
{ {
color: rightButton.hovered ? "#e8f2fc" : "#ffffff" // TODO: Theme! color: rightButton.hovered ? UM.Theme.getColor("monitor_card_hover") : UM.Theme.getColor("monitor_card_background")
border.width: 1 * screenScaleFactor // TODO: Theme! border.width: 1 * screenScaleFactor // TODO: Theme!
border.color: "#cccccc" // TODO: Theme! border.color: UM.Theme.getColor("monitor_card_border")
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
} }
contentItem: Item contentItem: Item
@ -176,7 +176,7 @@ Item
height: width // TODO: Theme! height: width // TODO: Theme!
sourceSize.width: width // TODO: Theme! sourceSize.width: width // TODO: Theme!
sourceSize.height: width // TODO: Theme! sourceSize.height: width // TODO: Theme!
color: "#152950" // TODO: Theme! color: UM.Theme.getColor("monitor_text_primary")
source: UM.Theme.getIcon("arrow_right") source: UM.Theme.getIcon("arrow_right")
} }
} }
@ -204,12 +204,12 @@ Item
GradientStop GradientStop
{ {
position: 0.0 position: 0.0
color: "#66f6f6f6" // TODO: Theme! color: UM.Theme.getColor("monitor_stage_background_fade")
} }
GradientStop GradientStop
{ {
position: 1.0 position: 1.0
color: "#fff6f6f6" // TODO: Theme! color: UM.Theme.getColor("monitor_stage_background")
} }
} }
} }
@ -238,7 +238,7 @@ Item
{ {
background: Rectangle background: Rectangle
{ {
color: model.index == currentIndex ? "#777777" : "#d8d8d8" // TODO: Theme! color: model.index == currentIndex ? UM.Theme.getColor("monitor_carousel_dot_current") : UM.Theme.getColor("monitor_carousel_dot")
radius: Math.floor(width / 2) radius: Math.floor(width / 2)
width: 12 * screenScaleFactor // TODO: Theme! width: 12 * screenScaleFactor // TODO: Theme!
height: width // TODO: Theme! height: width // TODO: Theme!

View file

@ -36,7 +36,7 @@ Item
MonitorIconExtruder MonitorIconExtruder
{ {
id: extruderIcon id: extruderIcon
color: "#eeeeee" // TODO: Theme! color: UM.Theme.getColor("monitor_skeleton_loading")
position: 0 position: 0
} }
@ -48,7 +48,7 @@ Item
left: extruderIcon.right left: extruderIcon.right
leftMargin: 12 * screenScaleFactor // TODO: Theme! leftMargin: 12 * screenScaleFactor // TODO: Theme!
} }
color: materialLabel.visible > 0 ? "transparent" : "#eeeeee" // TODO: Theme! color: materialLabel.visible > 0 ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading")
height: 18 * screenScaleFactor // TODO: Theme! height: 18 * screenScaleFactor // TODO: Theme!
width: Math.max(materialLabel.contentWidth, 60 * screenScaleFactor) // TODO: Theme! width: Math.max(materialLabel.contentWidth, 60 * screenScaleFactor) // TODO: Theme!
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
@ -57,7 +57,7 @@ Item
{ {
id: materialLabel id: materialLabel
color: "#191919" // TODO: Theme! color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("default") // 12pt, regular font: UM.Theme.getFont("default") // 12pt, regular
text: "" text: ""
@ -77,7 +77,7 @@ Item
left: materialLabelWrapper.left left: materialLabelWrapper.left
bottom: parent.bottom bottom: parent.bottom
} }
color: printCoreLabel.visible > 0 ? "transparent" : "#eeeeee" // TODO: Theme! color: printCoreLabel.visible > 0 ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading")
height: 18 * screenScaleFactor // TODO: Theme! height: 18 * screenScaleFactor // TODO: Theme!
width: Math.max(printCoreLabel.contentWidth, 36 * screenScaleFactor) // TODO: Theme! width: Math.max(printCoreLabel.contentWidth, 36 * screenScaleFactor) // TODO: Theme!
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
@ -86,7 +86,7 @@ Item
{ {
id: printCoreLabel id: printCoreLabel
color: "#191919" // TODO: Theme! color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("default_bold") // 12pt, bold font: UM.Theme.getFont("default_bold") // 12pt, bold
text: "" text: ""

View file

@ -19,7 +19,7 @@ Item
property int position: 0 property int position: 0
// The extruder icon size; NOTE: This shouldn't need to be changed // The extruder icon size; NOTE: This shouldn't need to be changed
property int size: 32 // TODO: Theme! property int size: 32 * screenScaleFactor // TODO: Theme!
// THe extruder icon source; NOTE: This shouldn't need to be changed // THe extruder icon source; NOTE: This shouldn't need to be changed
property string iconSource: "../svg/icons/extruder.svg" property string iconSource: "../svg/icons/extruder.svg"
@ -35,27 +35,18 @@ Item
width: size width: size
} }
/*
* The label uses some "fancy" math to ensure that if you change the overall
* icon size, the number scales with it. That is to say, the font properties
* are linked to the icon size, NOT the theme. And that's intentional.
*/
Label Label
{ {
id: positionLabel id: positionLabel
font font: UM.Theme.getFont("small")
{ color: UM.Theme.getColor("monitor_text_primary")
pointSize: Math.round(size * 0.3125) height: Math.round(size / 2)
weight: Font.Bold
}
height: Math.round(size / 2) * screenScaleFactor
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
text: position + 1 text: position + 1
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
width: Math.round(size / 2) * screenScaleFactor width: Math.round(size / 2)
x: Math.round(size * 0.25) * screenScaleFactor x: Math.round(size * 0.25)
y: Math.round(size * 0.15625) * screenScaleFactor y: Math.round(size * 0.15625)
// TODO: Once 'size' is themed, screenScaleFactor won't be needed
visible: position >= 0 visible: position >= 0
} }
} }

View file

@ -32,7 +32,7 @@ Item
ExpandableCard ExpandableCard
{ {
enabled: printJob != null enabled: printJob != null
borderColor: printJob && printJob.configurationChanges.length !== 0 ? "#f5a623" : "#CCCCCC" // TODO: Theme! borderColor: printJob && printJob.configurationChanges.length !== 0 ? UM.Theme.getColor("warning") : UM.Theme.getColor("monitor_card_border")
headerItem: Row headerItem: Row
{ {
height: 48 * screenScaleFactor // TODO: Theme! height: 48 * screenScaleFactor // TODO: Theme!
@ -54,7 +54,7 @@ Item
width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) width: 216 * screenScaleFactor // TODO: Theme! (Should match column size)
Rectangle Rectangle
{ {
color: "#eeeeee" color: UM.Theme.getColor("monitor_skeleton_loading")
width: Math.round(parent.width / 2) width: Math.round(parent.width / 2)
height: parent.height height: parent.height
visible: !printJob visible: !printJob
@ -62,7 +62,7 @@ Item
Label Label
{ {
text: printJob && printJob.name ? printJob.name : "" text: printJob && printJob.name ? printJob.name : ""
color: "#374355" color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
visible: printJob visible: printJob
@ -80,7 +80,7 @@ Item
width: 216 * screenScaleFactor // TODO: Theme! (Should match column size) width: 216 * screenScaleFactor // TODO: Theme! (Should match column size)
Rectangle Rectangle
{ {
color: "#eeeeee" color: UM.Theme.getColor("monitor_skeleton_loading")
width: Math.round(parent.width / 3) width: Math.round(parent.width / 3)
height: parent.height height: parent.height
visible: !printJob visible: !printJob
@ -88,7 +88,7 @@ Item
Label Label
{ {
text: printJob ? OutputDevice.formatDuration(printJob.timeTotal) : "" text: printJob ? OutputDevice.formatDuration(printJob.timeTotal) : ""
color: "#374355" color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
visible: printJob visible: printJob
@ -107,7 +107,7 @@ Item
Rectangle Rectangle
{ {
color: "#eeeeee" color: UM.Theme.getColor("monitor_skeleton_loading")
width: 72 * screenScaleFactor // TODO: Theme! width: 72 * screenScaleFactor // TODO: Theme!
height: parent.height height: parent.height
visible: !printJob visible: !printJob
@ -117,7 +117,7 @@ Item
{ {
id: printerAssignmentLabel id: printerAssignmentLabel
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
color: "#374355" color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
text: { text: {
@ -181,8 +181,9 @@ Item
{ {
id: printerConfiguration id: printerConfiguration
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
buildplate: "Glass" buildplate: catalog.i18nc("@label", "Glass")
configurations: !base.printJob ? [null, null] : [ configurations:
[
base.printJob.configuration.extruderConfigurations[0], base.printJob.configuration.extruderConfigurations[0],
base.printJob.configuration.extruderConfigurations[1] base.printJob.configuration.extruderConfigurations[1]
] ]
@ -190,7 +191,7 @@ Item
} }
Label { Label {
text: printJob && printJob.owner ? printJob.owner : "" text: printJob && printJob.owner ? printJob.owner : ""
color: "#374355" // TODO: Theme! color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
anchors.top: printerConfiguration.top anchors.top: printerConfiguration.top

View file

@ -19,7 +19,7 @@ Item
Rectangle Rectangle
{ {
anchors.fill: parent anchors.fill: parent
color: printJob ? "transparent" : "#eeeeee" // TODO: Theme! color: printJob ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading")
radius: 8 // TODO: Theme! radius: 8 // TODO: Theme!
Image Image
{ {

View file

@ -34,15 +34,15 @@ Item
{ {
background: Rectangle background: Rectangle
{ {
color: "#f5f5f5" // TODO: Theme! color: UM.Theme.getColor("monitor_progress_bar_empty")
implicitHeight: visible ? 8 * screenScaleFactor : 0 // TODO: Theme! implicitHeight: visible ? 12 * screenScaleFactor : 0 // TODO: Theme!
implicitWidth: 180 * screenScaleFactor // TODO: Theme! implicitWidth: 180 * screenScaleFactor // TODO: Theme!
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
} }
progress: Rectangle progress: Rectangle
{ {
id: progressItem; id: progressItem;
color: printJob && printJob.isActive ? "#3282ff" : "#CCCCCC" // TODO: Theme! color: printJob && printJob.isActive ? UM.Theme.getColor("monitor_progress_bar_fill") : UM.Theme.getColor("monitor_progress_bar_deactive")
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
} }
} }
@ -56,7 +56,7 @@ Item
leftMargin: 18 * screenScaleFactor // TODO: Theme! leftMargin: 18 * screenScaleFactor // TODO: Theme!
} }
text: printJob ? Math.round(printJob.progress * 100) + "%" : "0%" text: printJob ? Math.round(printJob.progress * 100) + "%" : "0%"
color: printJob && printJob.isActive ? "#374355" : "#babac1" // TODO: Theme! color: printJob && printJob.isActive ? UM.Theme.getColor("monitor_text_primary") : UM.Theme.getColor("monitor_text_disabled")
width: contentWidth width: contentWidth
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
@ -72,7 +72,7 @@ Item
left: percentLabel.right left: percentLabel.right
leftMargin: 18 * screenScaleFactor // TODO: Theme! leftMargin: 18 * screenScaleFactor // TODO: Theme!
} }
color: "#374355" // TODO: Theme! color: UM.Theme.getColor("monitor_text_primary")
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
text: text:
{ {

View file

@ -39,10 +39,10 @@ Item
{ {
id: background id: background
anchors.fill: parent anchors.fill: parent
color: "#FFFFFF" // TODO: Theme! color: UM.Theme.getColor("monitor_card_background")
border border
{ {
color: "#CCCCCC" // TODO: Theme! color: UM.Theme.getColor("monitor_card_border")
width: borderSize // TODO: Remove once themed width: borderSize // TODO: Remove once themed
} }
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
@ -71,7 +71,7 @@ Item
id: printerImage id: printerImage
width: 108 * screenScaleFactor // TODO: Theme! width: 108 * screenScaleFactor // TODO: Theme!
height: 108 * screenScaleFactor // TODO: Theme! height: 108 * screenScaleFactor // TODO: Theme!
color: printer ? "transparent" : "#eeeeee" // TODO: Theme! color: printer ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading")
radius: 8 // TODO: Theme! radius: 8 // TODO: Theme!
Image Image
{ {
@ -95,8 +95,7 @@ Item
Rectangle Rectangle
{ {
id: printerNameLabel id: printerNameLabel
// color: "#414054" // TODO: Theme! color: printer ? "transparent" : UM.Theme.getColor("monitor_skeleton_loading")
color: printer ? "transparent" : "#eeeeee" // TODO: Theme!
height: 18 * screenScaleFactor // TODO: Theme! height: 18 * screenScaleFactor // TODO: Theme!
width: parent.width width: parent.width
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
@ -104,7 +103,7 @@ Item
Label Label
{ {
text: printer && printer.name ? printer.name : "" text: printer && printer.name ? printer.name : ""
color: "#414054" // TODO: Theme! color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("large") // 16pt, bold font: UM.Theme.getFont("large") // 16pt, bold
width: parent.width width: parent.width
@ -118,7 +117,7 @@ Item
Rectangle Rectangle
{ {
color: "#eeeeee" // TODO: Theme! color: UM.Theme.getColor("monitor_skeleton_loading")
height: 18 * screenScaleFactor // TODO: Theme! height: 18 * screenScaleFactor // TODO: Theme!
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
visible: !printer visible: !printer
@ -269,8 +268,7 @@ Item
} }
border border
{ {
// TODO: Fix line length color: printer && printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 ? UM.Theme.getColor("warning") : "transparent" // TODO: Theme!
color: printer && printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 ? "#f5a623" : "transparent" // TODO: Theme!
width: borderSize // TODO: Remove once themed width: borderSize // TODO: Remove once themed
} }
color: "transparent" // TODO: Theme! color: "transparent" // TODO: Theme!
@ -296,7 +294,7 @@ Item
{ {
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
color: printer ? "#414054" : "#aaaaaa" // TODO: Theme! color: printer ? UM.Theme.getColor("monitor_text_primary") : UM.Theme.getColor("monitor_text_disabled")
font: UM.Theme.getFont("large_bold") // 16pt, bold font: UM.Theme.getFont("large_bold") // 16pt, bold
text: { text: {
if (!printer) { if (!printer) {
@ -349,10 +347,10 @@ Item
Label Label
{ {
id: printerJobNameLabel id: printerJobNameLabel
color: printer && printer.activePrintJob && printer.activePrintJob.isActive ? "#414054" : "#babac1" // TODO: Theme! color: printer && printer.activePrintJob && printer.activePrintJob.isActive ? UM.Theme.getColor("monitor_text_primary") : UM.Theme.getColor("monitor_text_disabled")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("large") // 16pt, bold font: UM.Theme.getFont("large") // 16pt, bold
text: printer && printer.activePrintJob ? printer.activePrintJob.name : "Untitled" // TODO: I18N text: printer && printer.activePrintJob ? printer.activePrintJob.name : catalog.i18nc("@label", "Untitled")
width: parent.width width: parent.width
// FIXED-LINE-HEIGHT: // FIXED-LINE-HEIGHT:
@ -369,10 +367,10 @@ Item
topMargin: 6 * screenScaleFactor // TODO: Theme! topMargin: 6 * screenScaleFactor // TODO: Theme!
left: printerJobNameLabel.left left: printerJobNameLabel.left
} }
color: printer && printer.activePrintJob && printer.activePrintJob.isActive ? "#53657d" : "#babac1" // TODO: Theme! color: printer && printer.activePrintJob && printer.activePrintJob.isActive ? UM.Theme.getColor("monitor_text_primary") : UM.Theme.getColor("monitor_text_disabled")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("default") // 12pt, regular font: UM.Theme.getFont("default") // 12pt, regular
text: printer && printer.activePrintJob ? printer.activePrintJob.owner : "Anonymous" // TODO: I18N text: printer && printer.activePrintJob ? printer.activePrintJob.owner : catalog.i18nc("@label", "Anonymous")
width: parent.width width: parent.width
// FIXED-LINE-HEIGHT: // FIXED-LINE-HEIGHT:
@ -398,7 +396,7 @@ Item
verticalCenter: parent.verticalCenter verticalCenter: parent.verticalCenter
} }
font: UM.Theme.getFont("default") font: UM.Theme.getFont("default")
text: "Requires configuration changes" text: catalog.i18nc("@label:status", "Requires configuration changes")
visible: printer && printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 && !printerStatus.visible visible: printer && printer.activePrintJob && printer.activePrintJob.configurationChanges.length > 0 && !printerStatus.visible
// FIXED-LINE-HEIGHT: // FIXED-LINE-HEIGHT:
@ -418,13 +416,13 @@ Item
} }
background: Rectangle background: Rectangle
{ {
color: "#d8d8d8" // TODO: Theme! color: UM.Theme.getColor("monitor_secondary_button_shadow")
radius: 2 * screenScaleFactor // Todo: Theme! radius: 2 * screenScaleFactor // Todo: Theme!
Rectangle Rectangle
{ {
anchors.fill: parent anchors.fill: parent
anchors.bottomMargin: 2 * screenScaleFactor // TODO: Theme! anchors.bottomMargin: 2 * screenScaleFactor // TODO: Theme!
color: detailsButton.hovered ? "#e4e4e4" : "#f0f0f0" // TODO: Theme! color: detailsButton.hovered ? UM.Theme.getColor("monitor_secondary_button_hover") : UM.Theme.getColor("monitor_secondary_button")
radius: 2 * screenScaleFactor // Todo: Theme! radius: 2 * screenScaleFactor // Todo: Theme!
} }
} }
@ -432,9 +430,9 @@ Item
{ {
anchors.fill: parent anchors.fill: parent
anchors.bottomMargin: 2 * screenScaleFactor // TODO: Theme! anchors.bottomMargin: 2 * screenScaleFactor // TODO: Theme!
color: "#1e66d7" // TODO: Theme! color: UM.Theme.getColor("monitor_secondary_button_text")
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
text: "Details" // TODO: I18NC! text: catalog.i18nc("@action:button","Details");
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
height: 18 * screenScaleFactor // TODO: Theme! height: 18 * screenScaleFactor // TODO: Theme!

View file

@ -37,7 +37,7 @@ Item
MonitorExtruderConfiguration MonitorExtruderConfiguration
{ {
color: modelData && modelData.activeMaterial ? modelData.activeMaterial.color : "#eeeeee" // TODO: Theme! color: modelData && modelData.activeMaterial ? modelData.activeMaterial.color : UM.Theme.getColor("monitor_skeleton_loading")
material: modelData && modelData.activeMaterial ? modelData.activeMaterial.name : "" material: modelData && modelData.activeMaterial ? modelData.activeMaterial.name : ""
position: modelData && typeof(modelData.position) === "number" ? modelData.position : -1 // Use negative one to create empty extruder number position: modelData && typeof(modelData.position) === "number" ? modelData.position : -1 // Use negative one to create empty extruder number
printCore: modelData ? modelData.hotendID : "" printCore: modelData ? modelData.hotendID : ""

View file

@ -32,14 +32,14 @@ Item
Rectangle { Rectangle {
id: background id: background
anchors.fill: parent anchors.fill: parent
color: printerNameLabel.visible ? "#e4e4f2" : "#eeeeee"// TODO: Theme! color: printerNameLabel.visible ? UM.Theme.getColor("monitor_printer_family_tag") : UM.Theme.getColor("monitor_skeleton_loading")
radius: 2 * screenScaleFactor // TODO: Theme! radius: 2 * screenScaleFactor // TODO: Theme!
} }
Label { Label {
id: printerNameLabel id: printerNameLabel
anchors.centerIn: parent anchors.centerIn: parent
color: "#535369" // TODO: Theme! color: UM.Theme.getColor("monitor_text_primary")
text: tagText text: tagText
font.pointSize: 10 // TODO: Theme! font.pointSize: 10 // TODO: Theme!
visible: text !== "" visible: text !== ""

View file

@ -22,7 +22,7 @@ Item
left: queuedPrintJobs.left left: queuedPrintJobs.left
top: parent.top top: parent.top
} }
color: UM.Theme.getColor("text") color: UM.Theme.getColor("monitor_text_primary")
font: UM.Theme.getFont("large") font: UM.Theme.getFont("large")
text: catalog.i18nc("@label", "Queued") text: catalog.i18nc("@label", "Queued")
} }
@ -42,7 +42,7 @@ Item
{ {
id: externalLinkIcon id: externalLinkIcon
anchors.verticalCenter: manageQueueLabel.verticalCenter anchors.verticalCenter: manageQueueLabel.verticalCenter
color: UM.Theme.getColor("text_link") color: UM.Theme.getColor("monitor_text_link")
source: UM.Theme.getIcon("external_link") source: UM.Theme.getIcon("external_link")
width: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!) width: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!)
height: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!) height: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!)
@ -56,9 +56,9 @@ Item
leftMargin: 6 * screenScaleFactor // TODO: Theme! leftMargin: 6 * screenScaleFactor // TODO: Theme!
verticalCenter: externalLinkIcon.verticalCenter verticalCenter: externalLinkIcon.verticalCenter
} }
color: UM.Theme.getColor("text_link") color: UM.Theme.getColor("monitor_text_link")
font: UM.Theme.getFont("default") // 12pt, regular font: UM.Theme.getFont("default") // 12pt, regular
linkColor: UM.Theme.getColor("text_link") linkColor: UM.Theme.getColor("monitor_text_link")
text: catalog.i18nc("@label link to connect manager", "Manage queue in Cura Connect") text: catalog.i18nc("@label link to connect manager", "Manage queue in Cura Connect")
renderType: Text.NativeRendering renderType: Text.NativeRendering
} }
@ -94,7 +94,7 @@ Item
Label Label
{ {
text: catalog.i18nc("@label", "Print jobs") text: catalog.i18nc("@label", "Print jobs")
color: "#666666" color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@ -108,7 +108,7 @@ Item
Label Label
{ {
text: catalog.i18nc("@label", "Total print time") text: catalog.i18nc("@label", "Total print time")
color: "#666666" color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
@ -122,7 +122,7 @@ Item
Label Label
{ {
text: catalog.i18nc("@label", "Waiting for") text: catalog.i18nc("@label", "Waiting for")
color: "#666666" color: UM.Theme.getColor("monitor_text_primary")
elide: Text.ElideRight elide: Text.ElideRight
font: UM.Theme.getFont("medium") // 14pt, regular font: UM.Theme.getFont("medium") // 14pt, regular
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter

View file

@ -11,7 +11,7 @@ import QtGraphicalEffects 1.0
// This is the root component for the monitor stage. // This is the root component for the monitor stage.
Component Component
{ {
Item Rectangle
{ {
id: monitorFrame id: monitorFrame
@ -24,6 +24,7 @@ Component
} }
} }
width: maximumWidth width: maximumWidth
color: UM.Theme.getColor("monitor_stage_background")
// Enable keyboard navigation. NOTE: This is done here so that we can also potentially // Enable keyboard navigation. NOTE: This is done here so that we can also potentially
// forward to the queue items in the future. (Deleting selected print job, etc.) // forward to the queue items in the future. (Deleting selected print job, etc.)
@ -36,24 +37,6 @@ Component
name: "cura" name: "cura"
} }
LinearGradient
{
anchors.fill: parent
gradient: Gradient
{
GradientStop
{
position: 0.0
color: "#f6f6f6" // TODO: Theme!
}
GradientStop
{
position: 1.0
color: "#ffffff" // TODO: Theme!
}
}
}
Item Item
{ {
id: printers id: printers

View file

@ -18,14 +18,14 @@ Item {
Button { Button {
id: button; id: button;
background: Rectangle { background: Rectangle {
color: UM.Theme.getColor("viewport_background"); // TODO: Theme! color: UM.Theme.getColor("monitor_card_hover")
height: button.height; height: button.height;
opacity: button.down || button.hovered ? 1 : 0; opacity: button.down || button.hovered ? 1 : 0;
radius: Math.round(0.5 * width); radius: Math.round(0.5 * width);
width: button.width; width: button.width;
} }
contentItem: Label { contentItem: Label {
color: UM.Theme.getColor("monitor_context_menu_dots"); color: UM.Theme.getColor("monitor_text_primary")
font.pixelSize: 32 * screenScaleFactor; font.pixelSize: 32 * screenScaleFactor;
horizontalAlignment: Text.AlignHCenter; horizontalAlignment: Text.AlignHCenter;
text: button.text; text: button.text;
@ -74,7 +74,7 @@ Item {
right: bloop.right; right: bloop.right;
rightMargin: 24 * screenScaleFactor; rightMargin: 24 * screenScaleFactor;
} }
color: UM.Theme.getColor("monitor_context_menu_background"); color: UM.Theme.getColor("monitor_context_menu")
height: 14 * screenScaleFactor; height: 14 * screenScaleFactor;
transform: Rotation { transform: Rotation {
angle: 45; angle: 45;
@ -91,7 +91,7 @@ Item {
top: parent.top; top: parent.top;
topMargin: 8 * screenScaleFactor; // Because of the shadow + point topMargin: 8 * screenScaleFactor; // Because of the shadow + point
} }
color: UM.Theme.getColor("monitor_context_menu_background"); color: UM.Theme.getColor("monitor_context_menu");
width: parent.width; width: parent.width;
} }
} }

View file

@ -9,10 +9,10 @@ import UM 1.3 as UM
Button { Button {
background: Rectangle { background: Rectangle {
opacity: parent.down || parent.hovered ? 1 : 0; opacity: parent.down || parent.hovered ? 1 : 0;
color: UM.Theme.getColor("monitor_context_menu_highlight"); color: UM.Theme.getColor("monitor_context_menu_hover")
} }
contentItem: Label { contentItem: Label {
color: enabled ? UM.Theme.getColor("text") : UM.Theme.getColor("text_inactive"); color: enabled ? UM.Theme.getColor("monitor_text_primary") : UM.Theme.getColor("monitor_text_disabled");
text: parent.text text: parent.text
horizontalAlignment: Text.AlignLeft; horizontalAlignment: Text.AlignLeft;
verticalAlignment: Text.AlignVCenter; verticalAlignment: Text.AlignVCenter;

View file

@ -119,7 +119,7 @@ class CloudApiClient:
except (UnicodeDecodeError, JSONDecodeError, ValueError) as err: except (UnicodeDecodeError, JSONDecodeError, ValueError) as err:
error = CloudError(code=type(err).__name__, title=str(err), http_code=str(status_code), error = CloudError(code=type(err).__name__, title=str(err), http_code=str(status_code),
id=str(time()), http_status="500") id=str(time()), http_status="500")
Logger.logException("e", "Could not parse the stardust response: %s", error) Logger.logException("e", "Could not parse the stardust response: %s", error.toDict())
return status_code, {"errors": [error.toDict()]} return status_code, {"errors": [error.toDict()]}
## Parses the given models and calls the correct callback depending on the result. ## Parses the given models and calls the correct callback depending on the result.

View file

@ -138,10 +138,10 @@ class CloudOutputDeviceManager:
## Handles an API error received from the cloud. ## Handles an API error received from the cloud.
# \param errors: The errors received # \param errors: The errors received
def _onApiError(self, errors: List[CloudError]) -> None: def _onApiError(self, errors: List[CloudError] = None) -> None:
text = ". ".join(e.title for e in errors) # TODO: translate errors Logger.log("w", str(errors))
message = Message( message = Message(
text = text, text = self.I18N_CATALOG.i18nc("@info:description", "There was an error connecting to the cloud."),
title = self.I18N_CATALOG.i18nc("@info:title", "Error"), title = self.I18N_CATALOG.i18nc("@info:title", "Error"),
lifetime = 10 lifetime = 10
) )

View file

@ -4690,6 +4690,7 @@
"default_value": 8.0, "default_value": 8.0,
"minimum_value": "0.0", "minimum_value": "0.0",
"maximum_value_warning": "50.0", "maximum_value_warning": "50.0",
"maximum_value": "0.5 * min(machine_width, machine_depth)",
"enabled": "resolveOrValue('adhesion_type') == 'brim'", "enabled": "resolveOrValue('adhesion_type') == 'brim'",
"settable_per_mesh": false, "settable_per_mesh": false,
"settable_per_extruder": true, "settable_per_extruder": true,
@ -4704,6 +4705,7 @@
"default_value": 20, "default_value": 20,
"minimum_value": "0", "minimum_value": "0",
"maximum_value_warning": "50 / skirt_brim_line_width", "maximum_value_warning": "50 / skirt_brim_line_width",
"maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width",
"value": "math.ceil(brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))", "value": "math.ceil(brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))",
"enabled": "resolveOrValue('adhesion_type') == 'brim'", "enabled": "resolveOrValue('adhesion_type') == 'brim'",
"settable_per_mesh": false, "settable_per_mesh": false,

View file

@ -130,5 +130,15 @@ Button
height: parent.height height: parent.height
visible: false visible: false
RotationAnimator
{
target: busyIndicator.contentItem
running: busyIndicator.visible && busyIndicator.running
from: 0
to: 360
loops: Animation.Infinite
duration: 2500
}
} }
} }

View file

@ -58,6 +58,7 @@ Item
property alias showProfileFolder: showProfileFolderAction; property alias showProfileFolder: showProfileFolderAction;
property alias documentation: documentationAction; property alias documentation: documentationAction;
property alias showTroubleshooting: showTroubleShootingAction
property alias reportBug: reportBugAction; property alias reportBug: reportBugAction;
property alias about: aboutAction; property alias about: aboutAction;
@ -69,18 +70,26 @@ Item
UM.I18nCatalog{id: catalog; name: "cura"} UM.I18nCatalog{id: catalog; name: "cura"}
Action
{
id: showTroubleShootingAction
onTriggered: Qt.openUrlExternally("https://ultimaker.com/en/troubleshooting")
text: catalog.i18nc("@action:inmenu", "Show Online Troubleshooting Guide");
}
Action Action
{ {
id:toggleFullScreenAction id:toggleFullScreenAction
shortcut: StandardKey.FullScreen; shortcut: StandardKey.FullScreen;
text: catalog.i18nc("@action:inmenu","Toggle Full Screen"); text: catalog.i18nc("@action:inmenu", "Toggle Full Screen");
iconName: "view-fullscreen"; iconName: "view-fullscreen";
} }
Action Action
{ {
id: undoAction; id: undoAction;
text: catalog.i18nc("@action:inmenu menubar:edit","&Undo"); text: catalog.i18nc("@action:inmenu menubar:edit", "&Undo");
iconName: "edit-undo"; iconName: "edit-undo";
shortcut: StandardKey.Undo; shortcut: StandardKey.Undo;
onTriggered: UM.OperationStack.undo(); onTriggered: UM.OperationStack.undo();

View file

@ -97,6 +97,7 @@ Item
title: catalog.i18nc("@title:menu menubar:toplevel", "&Help") title: catalog.i18nc("@title:menu menubar:toplevel", "&Help")
MenuItem { action: Cura.Actions.showProfileFolder } MenuItem { action: Cura.Actions.showProfileFolder }
MenuItem { action: Cura.Actions.showTroubleshooting}
MenuItem { action: Cura.Actions.documentation } MenuItem { action: Cura.Actions.documentation }
MenuItem { action: Cura.Actions.reportBug } MenuItem { action: Cura.Actions.reportBug }
MenuSeparator { } MenuSeparator { }

View file

@ -218,7 +218,8 @@ Button
{ {
if(isValidMaterial) if(isValidMaterial)
{ {
Cura.MachineManager.applyRemoteConfiguration(configuration); toggleContent()
Cura.MachineManager.applyRemoteConfiguration(configuration)
} }
} }
} }

View file

@ -97,6 +97,7 @@ Item
spacing: UM.Theme.getSize("narrow_margin").height spacing: UM.Theme.getSize("narrow_margin").height
width: container.width - ((height > container.maximumHeight) ? container.ScrollBar.vertical.background.width : 0) //Make room for scroll bar if there is any. width: container.width - ((height > container.maximumHeight) ? container.ScrollBar.vertical.background.width : 0) //Make room for scroll bar if there is any.
height: childrenRect.height height: childrenRect.height
interactive: false // let the ScrollView process scroll events.
section.property: "modelData.printerType" section.property: "modelData.printerType"
section.criteria: ViewSection.FullString section.criteria: ViewSection.FullString

View file

@ -109,7 +109,7 @@ Item
{ {
id: buttonRow id: buttonRow
property real padding: UM.Theme.getSize("default_margin").width property real padding: UM.Theme.getSize("default_margin").width
height: childrenRect.height + 2 * padding height: recommendedButton.height + 2 * padding + (draggableArea.visible ? draggableArea.height : 0)
anchors anchors
{ {
@ -149,14 +149,14 @@ Item
//Invisible area at the bottom with which you can resize the panel. //Invisible area at the bottom with which you can resize the panel.
MouseArea MouseArea
{ {
id: draggableArea
anchors anchors
{ {
left: parent.left left: parent.left
right: parent.right right: parent.right
bottom: parent.bottom bottom: parent.bottom
top: recommendedButton.bottom
topMargin: UM.Theme.getSize("default_lining").height
} }
height: childrenRect.height
cursorShape: Qt.SplitVCursor cursorShape: Qt.SplitVCursor
visible: currentModeIndex == PrintSetupSelectorContents.Mode.Custom visible: currentModeIndex == PrintSetupSelectorContents.Mode.Custom
drag drag
@ -187,15 +187,29 @@ Item
} }
} }
UM.RecolorImage Rectangle
{ {
width: parent.width * 0.05 width: parent.width
height: parent.height * 0.3 height: UM.Theme.getSize("narrow_margin").height
color: UM.Theme.getColor("secondary")
anchors.centerIn: parent Rectangle
{
anchors.bottom: parent.top
width: parent.width
height: UM.Theme.getSize("default_lining").height
color: UM.Theme.getColor("lining")
}
source: UM.Theme.getIcon("grip_lines") UM.RecolorImage
color: UM.Theme.getColor("lining") {
width: UM.Theme.getSize("drag_icon").width
height: UM.Theme.getSize("drag_icon").height
anchors.centerIn: parent
source: UM.Theme.getIcon("resize")
color: UM.Theme.getColor("small_button_text")
}
} }
} }
} }

View file

@ -68,11 +68,6 @@ Item
// TODO Create a reusable component with these properties to not define them separately for each component // TODO Create a reusable component with these properties to not define them separately for each component
labelColumnWidth: parent.firstColumnWidth labelColumnWidth: parent.firstColumnWidth
} }
RecommendedTroubleshootingGuides
{
width: parent.width
}
} }
UM.SettingPropertyProvider UM.SettingPropertyProvider

View file

@ -1,36 +0,0 @@
// Copyright (c) 2019 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import UM 1.2 as UM
import Cura 1.0 as Cura
Item
{
id: tipsCell
anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom)
anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height * 2)
anchors.left: parent.left
width: parent.width
height: tipsText.contentHeight * tipsText.lineCount
Label
{
id: tipsText
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("sidebar_margin").width
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("sidebar_margin").width
anchors.top: parent.top
wrapMode: Text.WordWrap
text: catalog.i18nc("@label", "Need help improving your prints?<br>Read the <a href='%1'>Ultimaker Troubleshooting Guides</a>").arg("https://ultimaker.com/en/troubleshooting")
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
linkColor: UM.Theme.getColor("text_link")
onLinkActivated: Qt.openUrlExternally(link)
}
}

View file

@ -215,24 +215,39 @@
"toolbox_header_button_text_inactive": [128, 128, 128, 255], "toolbox_header_button_text_inactive": [128, 128, 128, 255],
"toolbox_header_button_text_hovered": [255, 255, 255, 255], "toolbox_header_button_text_hovered": [255, 255, 255, 255],
"monitor_card_background_inactive": [43, 48, 52, 255], "monitor_printer_family_tag": [86, 86, 106, 255],
"monitor_card_background": [43, 48, 52, 255], "monitor_text_primary": [229, 229, 229, 255],
"monitor_context_menu_background": [80, 84, 87, 255], "monitor_text_disabled": [102, 102, 102, 255],
"monitor_context_menu_dots": [0, 167, 233, 255], "monitor_text_link": [103, 160, 252, 255],
"monitor_context_menu_highlight": [0, 167, 233, 255], "monitor_icon_primary": [229, 229, 229, 255],
"monitor_image_overlay": [255, 255, 255, 255], "monitor_icon_accent": [51, 53, 54, 255],
"monitor_lining_heavy": [255, 255, 255, 255],
"monitor_lining_light": [102, 102, 102, 255], "monitor_secondary_button_hover": [80, 80, 80, 255],
"monitor_pill_background": [102, 102, 102, 255], "monitor_secondary_button": [92, 92, 92, 255],
"monitor_secondary_button_text": [250, 250, 250, 255],
"monitor_secondary_button_shadow": [74, 74, 74, 255],
"monitor_card_border": [102, 102, 102, 255],
"monitor_card_background": [51, 53, 54, 255],
"monitor_card_hover": [84, 89, 95, 255],
"monitor_stage_background": [30, 36, 39, 255],
"monitor_stage_background_fade": [30, 36, 39, 102],
"monitor_progress_bar_fill": [50, 130, 255, 255],
"monitor_progress_bar_deactive": [102, 102, 102, 255],
"monitor_progress_bar_empty": [67, 67, 67, 255],
"monitor_tooltips": [25, 25, 25, 255],
"monitor_context_menu": [67, 67, 67, 255],
"monitor_context_menu_hover": [30, 102, 215, 255],
"monitor_skeleton_loading": [102, 102, 102, 255],
"monitor_placeholder_image": [102, 102, 102, 255], "monitor_placeholder_image": [102, 102, 102, 255],
"monitor_printer_icon": [255, 255, 255, 255], "monitor_image_overlay": [0, 0, 0, 255],
"monitor_progress_background_text": [102, 102, 102, 255], "monitor_shadow": [4, 10, 13, 255],
"monitor_progress_background": [80, 84, 87, 255],
"monitor_progress_fill_inactive": [216, 216, 216, 255], "monitor_carousel_dot": [119, 119, 119, 255],
"monitor_progress_fill_text": [0, 0, 0, 255], "monitor_carousel_dot_current": [216, 216, 216, 255]
"monitor_progress_fill": [216, 216, 216, 255],
"monotir_printer_icon_inactive": [154, 154, 154, 255],
"monitor_skeleton_fill": [31, 36, 39, 255],
"monitor_skeleton_fill_dark": [31, 36, 39, 255]
} }
} }

View file

@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 6">
<rect width="30" height="2" rx="1" ry="1" />
<rect width="30" height="2" rx="1" ry="1" y="4" />
</svg>

Before

Width:  |  Height:  |  Size: 170 B

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="17px" height="3px" viewBox="0 0 17 3" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 52.2 (67145) - http://www.bohemiancoding.com/sketch -->
<title>Group</title>
<desc>Created with Sketch.</desc>
<g id="Print-settings" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="1024_custom--1-ex-copy" transform="translate(-773.000000, -643.000000)" fill="#999999">
<g id="Group" transform="translate(773.000000, 643.000000)">
<circle id="Oval" cx="1.5" cy="1.5" r="1.5"></circle>
<circle id="Oval-Copy" cx="8.5" cy="1.5" r="1.5"></circle>
<circle id="Oval-Copy-2" cx="15.5" cy="1.5" r="1.5"></circle>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 863 B

View file

@ -399,27 +399,40 @@
"favorites_header_text_hover": [31, 36, 39, 255], "favorites_header_text_hover": [31, 36, 39, 255],
"favorites_row_selected": [196, 239, 255, 255], "favorites_row_selected": [196, 239, 255, 255],
"monitor_card_background_inactive": [240, 240, 240, 255], "monitor_printer_family_tag": [228, 228, 242, 255],
"monitor_text_primary": [65, 64, 84, 255],
"monitor_text_disabled": [238, 238, 238, 255],
"monitor_text_link": [50, 130, 255, 255],
"monitor_icon_primary": [10, 8, 80, 255],
"monitor_icon_accent": [255, 255, 255, 255],
"monitor_secondary_button_hover": [228, 228, 228, 255],
"monitor_secondary_button": [240, 240, 240, 255],
"monitor_secondary_button_text": [30, 102, 215, 255],
"monitor_secondary_button_shadow": [216, 216, 216, 255],
"monitor_card_border": [192, 193, 194, 255],
"monitor_card_background": [255, 255, 255, 255], "monitor_card_background": [255, 255, 255, 255],
"monitor_context_menu_background": [255, 255, 255, 255], "monitor_card_hover": [232, 242, 252, 255],
"monitor_context_menu_dots": [154, 154, 154, 255],
"monitor_context_menu_highlight": [245, 245, 245, 255], "monitor_stage_background": [246, 246, 246, 255],
"monitor_image_overlay": [0, 0, 0, 255], "monitor_stage_background_fade": [246, 246, 246, 102],
"monitor_lining_heavy": [0, 0, 0, 255],
"monitor_lining_light": [230, 230, 230, 255], "monitor_progress_bar_fill": [50, 130, 255, 255],
"monitor_pill_background": [245, 245, 245, 255], "monitor_progress_bar_deactive": [192, 193, 194, 255],
"monitor_progress_bar_empty": [245, 245, 245, 255],
"monitor_tooltips": [25, 25, 25, 255],
"monitor_context_menu": [255, 255, 255, 255],
"monitor_context_menu_hover": [245, 245, 245, 255],
"monitor_skeleton_loading": [238, 238, 238, 255],
"monitor_placeholder_image": [230, 230, 230, 255], "monitor_placeholder_image": [230, 230, 230, 255],
"monitor_printer_icon_inactive": [154, 154, 154, 255], "monitor_image_overlay": [0, 0, 0, 255],
"monitor_printer_icon": [50, 130, 255, 255], "monitor_shadow": [220, 220, 220, 255],
"monitor_progress_background_text": [0,0,0,255],
"monitor_progress_background": [245, 245, 245, 255], "monitor_carousel_dot": [216, 216, 216, 255],
"monitor_progress_fill_inactive": [154, 154, 154, 255], "monitor_carousel_dot_current": [119, 119, 119, 255]
"monitor_progress_fill_text": [255,255,255,255],
"monitor_progress_fill": [50, 130, 255, 255],
"monitor_shadow": [0, 0, 0, 63],
"monitor_skeleton_fill": [245, 245, 245, 255],
"monitor_skeleton_fill_dark": [216, 216, 216, 255],
"monitor_text_inactive": [154, 154, 154, 255]
}, },
"sizes": { "sizes": {
@ -442,11 +455,12 @@
"print_setup_slider_tickmarks": [0.32, 0.32], "print_setup_slider_tickmarks": [0.32, 0.32],
"print_setup_big_item": [28, 2.5], "print_setup_big_item": [28, 2.5],
"print_setup_icon": [1.2, 1.2], "print_setup_icon": [1.2, 1.2],
"drag_icon": [1.416, 0.25],
"expandable_component_content_header": [0.0, 3.0], "expandable_component_content_header": [0.0, 3.0],
"configuration_selector": [35.0, 4.0], "configuration_selector": [35.0, 4.0],
"configuration_selector_mode_tabs": [0.0, 3.0], "configuration_selector_mode_tabs": [1.0, 3.0],
"action_panel_widget": [26.0, 0.0], "action_panel_widget": [26.0, 0.0],
"action_panel_information_widget": [20.0, 0.0], "action_panel_information_widget": [20.0, 0.0],