Merge branch 'master' into feature_support_bottoms

This commit is contained in:
Tim Kuipers 2016-08-02 12:46:44 +02:00
commit 401e302ad5
43 changed files with 564 additions and 316 deletions

View file

@ -150,6 +150,8 @@
"label": "Number extruders",
"description": "Number of extruder trains. An extruder train is the combination of a feeder, bowden tube, and nozzle.",
"default_value": 1,
"minimum_value": "1",
"maximum_value": "16",
"type": "int",
"settable_per_mesh": false,
"settable_per_extruder": false,
@ -1064,6 +1066,7 @@
"unit": "[[mm³,°C]]",
"type": "str",
"default_value": "[[3.5,200],[7.0,240]]",
"enabled": "False",
"comments": "old enabled function: material_flow_dependent_temperature",
"settable_per_mesh": false,
"settable_per_extruder": true
@ -1236,30 +1239,28 @@
"default_value": false,
"enabled": "retraction_enable",
"settable_per_mesh": false,
"settable_per_extruder": true,
"children": {
"retraction_hop_only_when_collides": {
"label": "Z Hop Only Over Printed Parts",
"description": "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling.",
"type": "bool",
"default_value": false,
"enabled": "retraction_enable and retraction_hop_enabled and travel_avoid_other_parts",
"settable_per_mesh": false,
"settable_per_extruder": true
},
"retraction_hop": {
"label": "Z Hop Height",
"description": "The height difference when performing a Z Hop.",
"unit": "mm",
"type": "float",
"default_value": 1,
"minimum_value_warning": "-0.0001",
"maximum_value_warning": "10",
"enabled": "retraction_enable and retraction_hop_enabled",
"settable_per_mesh": false,
"settable_per_extruder": true
}
}
"settable_per_extruder": true
},
"retraction_hop_only_when_collides": {
"label": "Z Hop Only Over Printed Parts",
"description": "Only perform a Z Hop when moving over printed parts which cannot be avoided by horizontal motion by Avoid Printed Parts when Traveling.",
"type": "bool",
"default_value": false,
"enabled": "retraction_enable and retraction_hop_enabled and travel_avoid_other_parts",
"settable_per_mesh": false,
"settable_per_extruder": true
},
"retraction_hop": {
"label": "Z Hop Height",
"description": "The height difference when performing a Z Hop.",
"unit": "mm",
"type": "float",
"default_value": 1,
"minimum_value_warning": "-0.0001",
"maximum_value_warning": "10",
"enabled": "retraction_enable and retraction_hop_enabled",
"settable_per_mesh": false,
"settable_per_extruder": true
},
"material_standby_temperature":
{
@ -1511,14 +1512,44 @@
},
"speed_layer_0": {
"label": "Initial Layer Speed",
"description": "The print speed for the initial layer. A lower value is advised to improve adhesion to the build plate.",
"description": "The speed for the initial layer. A lower value is advised to improve adhesion to the build plate.",
"unit": "mm/s",
"type": "float",
"default_value": 30,
"minimum_value": "0.1",
"maximum_value": "299792458000",
"maximum_value_warning": "300",
"settable_per_mesh": true
"settable_per_mesh": true,
"children":
{
"speed_print_layer_0":
{
"label": "Initial Layer Print Speed",
"description": "The speed of printing for the initial layer. A lower value is advised to improve adhesion to the build plate.",
"unit": "mm/s",
"type": "float",
"default_value": 30,
"value": "speed_layer_0",
"minimum_value": "0.1",
"maximum_value": "299792458000",
"maximum_value_warning": "300",
"settable_per_mesh": true
},
"speed_travel_layer_0":
{
"label": "Initial Layer Travel Speed",
"description": "The speed of travel moves in the initial layer. A lower value is advised to prevent pulling previously printed parts away from the build plate.",
"unit": "mm/s",
"type": "float",
"default_value": 60,
"value": "speed_layer_0 * speed_travel / speed_print",
"minimum_value": "0.1",
"maximum_value": "299792458000",
"maximum_value_warning": "300",
"settable_per_extruder": true,
"settable_per_mesh": false
}
}
},
"skirt_brim_speed": {
"label": "Skirt/Brim Speed",
@ -1546,8 +1577,8 @@
"settable_per_mesh": false,
"settable_per_extruder": false
},
"acceleration_enabled": {
"label": "Enable Acceleration Control",
"description": "Enables adjusting the print head acceleration. Increasing the accelerations can reduce printing time at the cost of print quality.",
@ -1718,7 +1749,38 @@
"minimum_value_warning": "100",
"maximum_value_warning": "10000",
"enabled": "acceleration_enabled",
"settable_per_mesh": true
"settable_per_mesh": true,
"children": {
"acceleration_print_layer_0":
{
"label": "Initial Layer Print Acceleration",
"description": "The acceleration during the printing of the initial layer.",
"unit": "mm/s",
"type": "float",
"default_value": 3000,
"value": "acceleration_layer_0",
"minimum_value": "0.1",
"minimum_value_warning": "100",
"maximum_value_warning": "10000",
"enabled": "acceleration_enabled",
"settable_per_mesh": true
},
"acceleration_travel_layer_0":
{
"label": "Initial Layer Travel Acceleration",
"description": "The acceleration for travel moves in the initial layer.",
"unit": "mm/s",
"type": "float",
"default_value": 3000,
"value": "acceleration_layer_0 * acceleration_travel / acceleration_print",
"minimum_value": "0.1",
"minimum_value_warning": "100",
"maximum_value_warning": "10000",
"enabled": "acceleration_enabled",
"settable_per_extruder": true,
"settable_per_mesh": false
}
}
},
"acceleration_skirt_brim": {
"label": "Skirt/Brim Acceleration",
@ -1734,8 +1796,8 @@
"settable_per_mesh": false
},
"jerk_enabled": {
"label": "Enable Jerk Control",
"description": "Enables adjusting the jerk of print head when the velocity in the X or Y axis changes. Increasing the jerk can reduce printing time at the cost of print quality.",
@ -1906,7 +1968,38 @@
"minimum_value_warning": "5",
"maximum_value_warning": "50",
"enabled": "jerk_enabled",
"settable_per_mesh": true
"settable_per_mesh": true,
"children": {
"jerk_print_layer_0":
{
"label": "Initial Layer Print Jerk",
"description": "The maximum instantaneous velocity change during the printing of the initial layer.",
"unit": "mm/s",
"type": "float",
"default_value": 20,
"value": "jerk_layer_0",
"minimum_value": "0.1",
"minimum_value_warning": "5",
"maximum_value_warning": "50",
"enabled": "jerk_enabled",
"settable_per_mesh": true
},
"jerk_travel_layer_0":
{
"label": "Initial Layer Travel Jerk",
"description": "The acceleration for travel moves in the initial layer.",
"unit": "mm/s",
"type": "float",
"default_value": 20,
"value": "jerk_layer_0 * jerk_travel / jerk_print",
"minimum_value": "0.1",
"minimum_value_warning": "5",
"maximum_value_warning": "50",
"enabled": "jerk_enabled",
"settable_per_extruder": true,
"settable_per_mesh": false
}
}
},
"jerk_skirt_brim": {
"label": "Skirt/Brim Jerk",
@ -3378,8 +3471,8 @@
"type": "float",
"minimum_value": "0",
"maximum_value_warning": "9999",
"default_value": 0,
"value": "9999 if draft_shield_height_limitation == 'full' and draft_shield_enabled else 0.0",
"default_value": 10,
"value": "10",
"enabled": "draft_shield_enabled and draft_shield_height_limitation == \"limited\"",
"settable_per_mesh": false,
"settable_per_extruder": false

View file

@ -54,13 +54,13 @@
"speed_travel": { "default_value": 150 },
"speed_layer_0": {
"minimum_value": "0.1",
"default": 15.0
"default_value": 15.0
},
"infill_overlap": { "default": 10 },
"cool_fan_enabled": { "default": false },
"cool_fan_speed": { "default": 0 },
"skirt_line_count": { "default": 3 },
"skirt_gap": { "default": 4 },
"skirt_brim_minimal_length": { "default": 200 }
"infill_overlap": { "default_value": 10 },
"cool_fan_enabled": { "default_value": false },
"cool_fan_speed": { "default_value": 0 },
"skirt_line_count": { "default_value": 3 },
"skirt_gap": { "default_value": 4 },
"skirt_brim_minimal_length": { "default_value": 200 }
}
}

View file

@ -7,6 +7,7 @@
"visible": true,
"author": "Calvindog717",
"manufacturer": "PrintrBot",
"category": "Other",
"file_formats": "text/x-gcode"
},

View file

@ -8,6 +8,7 @@
"author": "Ultimaker",
"manufacturer": "Ultimaker",
"category": "Ultimaker",
"weight": 3,
"file_formats": "text/x-gcode",
"icon": "icon_ultimaker2.png",
"platform": "ultimaker2_platform.obj",
@ -82,10 +83,10 @@
"default_value": 45
},
"material_print_temperature": {
"enabled": "False"
"enabled": "not (material_flow_dependent_temperature) and machine_gcode_flavor != \"UltiGCode\""
},
"material_bed_temperature": {
"enabled": "False"
"enabled": "machine_heated_bed and machine_gcode_flavor != \"UltiGCode\""
},
"machine_max_feedrate_x": {
"default_value": 300
@ -103,22 +104,22 @@
"default_value": 3000
},
"material_diameter": {
"enabled": "False"
"enabled": "machine_gcode_flavor != \"UltiGCode\""
},
"material_flow": {
"enabled": "False"
"enabled": "machine_gcode_flavor != \"UltiGCode\""
},
"retraction_amount": {
"enabled": "False"
"enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\""
},
"retraction_speed": {
"enabled": "False"
"enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\""
},
"retraction_retract_speed": {
"enabled": "False"
"enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\""
},
"retraction_prime_speed": {
"enabled": "False"
"enabled": "retraction_enable and machine_gcode_flavor != \"UltiGCode\""
}
}
}

View file

@ -7,6 +7,7 @@
"author": "Ultimaker",
"manufacturer": "Ultimaker",
"category": "Ultimaker",
"weight": 3,
"file_formats": "text/x-gcode",
"icon": "icon_ultimaker2.png",
"platform": "ultimaker2_platform.obj",

View file

@ -7,6 +7,7 @@
"author": "Ultimaker",
"manufacturer": "Ultimaker",
"category": "Ultimaker",
"weight": 2,
"file_formats": "text/x-gcode",
"platform": "ultimaker2_platform.obj",
"platform_texture": "Ultimaker2ExtendedPlusbackplate.png",

View file

@ -7,6 +7,7 @@
"author": "Ultimaker",
"manufacturer": "Ultimaker",
"category": "Ultimaker",
"weight": 3,
"file_formats": "text/x-gcode",
"icon": "icon_ultimaker2.png",
"platform": "ultimaker2go_platform.obj",

View file

@ -7,6 +7,7 @@
"author": "Ultimaker",
"manufacturer": "Ultimaker",
"category": "Ultimaker",
"weight": 1,
"file_formats": "text/x-gcode",
"platform": "ultimaker2_platform.obj",
"platform_texture": "Ultimaker2Plusbackplate.png",

View file

@ -8,6 +8,7 @@
"author": "Ultimaker",
"manufacturer": "Ultimaker",
"category": "Ultimaker",
"weight": 4,
"file_formats": "text/x-gcode",
"icon": "icon_ultimaker.png",
"platform": "ultimaker_platform.stl",
@ -15,7 +16,7 @@
"preferred_material": "*pla*",
"preferred_quality": "*normal*",
"first_start_actions": ["UMOUpgradeSelection", "UMOCheckup", "BedLevel"],
"supported_actions": ["UMOCheckup", "UpgradeFirmware", "BedLevel", "UMOUpgradeSelection"]
"supported_actions": ["UMOUpgradeSelection", "UMOCheckup", "BedLevel", "UpgradeFirmware"]
},
"overrides": {

View file

@ -7,6 +7,7 @@
"author": "Ultimaker",
"manufacturer": "Ultimaker",
"category": "Ultimaker",
"weight": 4,
"file_formats": "text/x-gcode",
"icon": "icon_ultimaker.png",
"platform": "ultimaker2_platform.obj",

View file

@ -27,6 +27,7 @@ Item
property alias multiplyObject: multiplyObjectAction;
property alias selectAll: selectAllAction;
property alias deleteAll: deleteAllAction;
property alias reloadAll: reloadAllAction;
property alias resetAllTranslation: resetAllTranslationAction;
@ -119,7 +120,7 @@ Item
Action
{
id: updateProfileAction;
enabled: Cura.MachineManager.isGlobalStackValid && Cura.MachineManager.hasUserSettings && !Cura.MachineManager.isReadOnly(Cura.MachineManager.activeQualityId)
enabled: Cura.MachineManager.isActiveStackValid && Cura.MachineManager.hasUserSettings && !Cura.MachineManager.isReadOnly(Cura.MachineManager.activeQualityId)
text: catalog.i18nc("@action:inmenu menubar:profile","&Update profile with current settings");
onTriggered: Cura.MachineManager.updateQualityContainerFromUserContainer()
}
@ -135,7 +136,7 @@ Item
Action
{
id: addProfileAction;
enabled: Cura.MachineManager.isGlobalStackValid && Cura.MachineManager.hasUserSettings
enabled: Cura.MachineManager.isActiveStackValid && Cura.MachineManager.hasUserSettings
text: catalog.i18nc("@action:inmenu menubar:profile","&Create profile from current settings...");
}
@ -230,6 +231,16 @@ Item
iconName: "edit-duplicate"
}
Action
{
id: selectAllAction;
text: catalog.i18nc("@action:inmenu menubar:edit","&Select All Objects");
enabled: UM.Controller.toolsEnabled;
iconName: "edit-select-all";
shortcut: "Ctrl+A";
onTriggered: Printer.selectAll();
}
Action
{
id: deleteAllAction;

View file

@ -16,12 +16,24 @@ UM.Dialog
{
id: base
title: catalog.i18nc("@title:window", "Add Printer")
property string activeManufacturer: "Ultimaker";
property bool firstRun: false
property string preferredCategory: "Ultimaker"
property string activeCategory: preferredCategory
onVisibilityChanged:
{
// Reset selection and machine name
if (visible) {
activeCategory = preferredCategory;
machineList.currentIndex = 0;
machineName.text = getMachineName();
}
}
signal machineAdded(string id)
function getMachineName()
{
var name = machineList.model.getItem(machineList.currentIndex).name
var name = machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).name : ""
return name
}
@ -36,6 +48,7 @@ UM.Dialog
right: parent.right;
bottom: parent.bottom;
}
ListView
{
id: machineList
@ -43,9 +56,12 @@ UM.Dialog
model: UM.DefinitionContainersModel
{
id: machineDefinitionsModel
filter: {"visible":true}
filter: { "visible": true }
sectionProperty: "category"
preferredSectionValue: preferredCategory
}
section.property: "manufacturer"
section.property: "section"
section.delegate: Button
{
text: section
@ -76,16 +92,25 @@ UM.Dialog
sourceSize.width: width
sourceSize.height: width
color: palette.windowText
source: base.activeManufacturer == section ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_right")
source: base.activeCategory == section ? UM.Theme.getIcon("arrow_bottom") : UM.Theme.getIcon("arrow_right")
}
}
}
onClicked:
{
base.activeManufacturer = section;
machineList.currentIndex = machineList.model.find("manufacturer", section)
machineName.text = getMachineName()
base.activeCategory = section;
if (machineList.model.getItem(machineList.currentIndex).section != section) {
// Find the first machine from this section
for(var i = 0; i < sortedMachineDefinitionsModel.count; i++) {
var item = sortedMachineDefinitionsModel.getItem(i);
if (item.section == section) {
machineList.currentIndex = i;
break;
}
}
}
machineName.text = getMachineName();
}
}
@ -114,7 +139,7 @@ UM.Dialog
states: State
{
name: "collapsed";
when: base.activeManufacturer != model.manufacturer;
when: base.activeCategory != model.section;
PropertyChanges { target: machineButton; opacity: 0; height: 0; }
}

View file

@ -1,32 +0,0 @@
// Copyright (c) 2015 Ultimaker B.V.
// Cura is released under the terms of the AGPLv3 or higher.
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Layouts 1.1
import QtQuick.Window 2.1
import UM 1.1 as UM
import Cura 1.0 as Cura
import "WizardPages"
UM.Wizard
{
id: base;
title: catalog.i18nc("@title:window", "Add Printer")
// This part is optional
// This part checks whether there is a printer -> if not: some of the functions (delete for example) are disabled
firstRun: false
Component.onCompleted: {
base.appendPage(Qt.resolvedUrl("WizardPages/AddMachine.qml"), catalog.i18nc("@title", "Add Printer"));
base.currentPage = 0;
}
Item {
UM.I18nCatalog { id: catalog; name: "cura"; }
}
}

View file

@ -54,10 +54,7 @@ UM.MainWindow
Keys.onPressed: {
if (event.key == Qt.Key_Backspace)
{
if(objectContextMenu.objectId != 0)
{
Printer.deleteObject(objectContextMenu.objectId);
}
Cura.Actions.deleteSelection.trigger()
}
}
@ -121,6 +118,7 @@ UM.MainWindow
MenuItem { action: Cura.Actions.undo; }
MenuItem { action: Cura.Actions.redo; }
MenuSeparator { }
MenuItem { action: Cura.Actions.selectAll; }
MenuItem { action: Cura.Actions.deleteSelection; }
MenuItem { action: Cura.Actions.deleteAll; }
MenuItem { action: Cura.Actions.resetAllTranslation; }
@ -540,6 +538,7 @@ UM.MainWindow
MenuItem { action: Cura.Actions.deleteObject; }
MenuItem { action: Cura.Actions.multiplyObject; }
MenuSeparator { }
MenuItem { action: Cura.Actions.selectAll; }
MenuItem { action: Cura.Actions.deleteAll; }
MenuItem { action: Cura.Actions.reloadAll; }
MenuItem { action: Cura.Actions.resetAllTranslation; }
@ -592,6 +591,7 @@ UM.MainWindow
Menu
{
id: contextMenu;
MenuItem { action: Cura.Actions.selectAll; }
MenuItem { action: Cura.Actions.deleteAll; }
MenuItem { action: Cura.Actions.reloadAll; }
MenuItem { action: Cura.Actions.resetAllTranslation; }
@ -677,6 +677,7 @@ UM.MainWindow
id: addMachineDialog
onMachineAdded:
{
machineActionsWizard.firstRun = addMachineDialog.firstRun
machineActionsWizard.start(id)
}
}

View file

@ -3,6 +3,10 @@ import QtQuick 2.2
Item
{
id: contentItem
// Point to the dialog containing the displayItem
property var dialog
// Connect the finished property change to completed signal.
property var finished: manager.finished
onFinishedChanged: if(manager.finished) {completed()}

View file

@ -30,6 +30,8 @@ Rectangle
return UM.Theme.getColor("status_paused")
else if (Cura.MachineManager.printerOutputDevices[0].jobState == "error")
return UM.Theme.getColor("status_stopped")
else if (Cura.MachineManager.printerOutputDevices[0].jobState == "offline")
return UM.Theme.getColor("status_offline")
else
return UM.Theme.getColor("text")
}
@ -41,7 +43,10 @@ Rectangle
{
if(!printerConnected)
{
return catalog.i18nc("@label:", "Please check your printer connections")
return catalog.i18nc("@label:", "Not connected to a printer")
} else if(Cura.MachineManager.printerOutputDevices[0].jobState == "offline")
{
return catalog.i18nc("@label:", "Lost connection with the printer")
} else if(Cura.MachineManager.printerOutputDevices[0].jobState == "printing")
{
return catalog.i18nc("@label:", "Printing...")

View file

@ -192,6 +192,7 @@ UM.PreferencesPage
}
}
UM.TooltipArea {
width: childrenRect.width;
height: childrenRect.height;
@ -215,6 +216,19 @@ UM.PreferencesPage
}
}
}
UM.TooltipArea {
width: childrenRect.width
height: childrenRect.height
text: catalog.i18nc("@info:tooltip", "Should only the top layers be displayed in layerview?")
CheckBox
{
id: topLayersOnlyCheckbox
text: catalog.i18nc("@option:check", "Only display top layer(s) in layer view")
checked: boolCheck(UM.Preferences.getValue("view/only_show_top_layers"))
onCheckedChanged: UM.Preferences.setValue("view/only_show_top_layers", checked)
}
}
Item
{

View file

@ -83,16 +83,17 @@ UM.ManagementPage
Repeater
{
id: machineActionRepeater
model: Cura.MachineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id))
model: base.currentItem ? Cura.MachineActionManager.getSupportedActions(Cura.MachineManager.getDefinitionByMachineId(base.currentItem.id)) : null
Button
{
text: machineActionRepeater.model[index].label;
text: machineActionRepeater.model[index].label
onClicked:
{
actionDialog.content = machineActionRepeater.model[index].displayItem
machineActionRepeater.model[index].displayItem.reset()
actionDialog.show()
actionDialog.content = machineActionRepeater.model[index].displayItem;
machineActionRepeater.model[index].displayItem.reset();
actionDialog.title = machineActionRepeater.model[index].label;
actionDialog.show();
}
}
}
@ -106,6 +107,13 @@ UM.ManagementPage
{
contents = content;
content.onCompleted.connect(hide)
content.dialog = actionDialog
}
rightButtons: Button
{
text: catalog.i18nc("@action:button", "Close")
iconName: "dialog-close"
onClicked: actionDialog.reject()
}
}
@ -118,8 +126,14 @@ UM.ManagementPage
spacing: UM.Theme.getSize("default_margin").height
Label { text: catalog.i18nc("@label", "Type") }
Label { text: base.currentItem ? base.currentItem.metadata.definition_name : "" }
Label
{
text: catalog.i18nc("@label", "Type")
visible: base.currentItem && base.currentItem.metadata
}
Label {
text: (base.currentItem && base.currentItem.metadata) ? base.currentItem.metadata.definition_name : ""
}
}
UM.I18nCatalog { id: catalog; name: "uranium"; }

View file

@ -255,7 +255,7 @@ UM.ManagementPage
else if(result.status == "success")
{
messageDialog.icon = StandardIcon.Information
messageDialog.text = catalog.i18nc("@info:status", "Successfully exported material to <filename>%1</filename>").arg(fileUrl)
messageDialog.text = catalog.i18nc("@info:status", "Successfully exported material to <filename>%1</filename>").arg(result.path)
messageDialog.open()
}
CuraApplication.setDefaultPath("dialog_material_path", folder)

View file

@ -86,18 +86,18 @@ SettingItem
}
}
onActivated: { forceActiveFocus(); provider.setPropertyValue("value", definition.options[index].key) }
onActivated: { forceActiveFocus(); propertyProvider.setPropertyValue("value", definition.options[index].key) }
onModelChanged: updateCurrentIndex();
Connections
{
target: provider
target: propertyProvider
onPropertiesChanged: control.updateCurrentIndex()
}
function updateCurrentIndex() {
for(var i = 0; i < definition.options.length; ++i) {
if(definition.options[i].key == provider.properties.value) {
if(definition.options[i].key == propertyProvider.properties.value) {
currentIndex = i;
return;
}

View file

@ -105,13 +105,13 @@ SettingItem
onActivated:
{
forceActiveFocus();
provider.setPropertyValue("value", extruders_model.getItem(index).index)
propertyProvider.setPropertyValue("value", extruders_model.getItem(index).index)
}
onModelChanged: updateCurrentIndex();
Connections
{
target: provider
target: propertyProvider
onPropertiesChanged: control.updateCurrentIndex();
}
@ -119,7 +119,7 @@ SettingItem
{
for(var i = 0; i < extruders_model.rowCount(); ++i)
{
if(extruders_model.getItem(i).index == provider.properties.value)
if(extruders_model.getItem(i).index == propertyProvider.properties.value)
{
currentIndex = i;
return;

View file

@ -138,7 +138,7 @@ Item {
{
id: linkedSettingIcon;
visible: base.settablePerExtruder != "True" && base.showLinkedSettingIcon
visible: Cura.MachineManager.activeStackId != Cura.MachineManager.activeMachineId && base.settablePerExtruder != "True" && base.showLinkedSettingIcon
height: parent.height;
width: height;

View file

@ -116,6 +116,8 @@ Rectangle
return UM.Theme.getIcon("tab_monitor_paused")
else if (Cura.MachineManager.printerOutputDevices[0].jobState == "error")
return UM.Theme.getIcon("tab_monitor_stopped")
else if (Cura.MachineManager.printerOutputDevices[0].jobState == "offline")
return UM.Theme.getIcon("tab_monitor_offline")
else
return UM.Theme.getIcon("tab_monitor")
}