mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-10 15:25:09 -06:00
Merge branch 'master' into feature_accelerations_and_jerk_per_feature_settigns_rework
This commit is contained in:
commit
149af8af28
119 changed files with 3484 additions and 1784 deletions
|
@ -22,9 +22,13 @@
|
|||
{
|
||||
"label": "Extruder",
|
||||
"description": "The extruder train used for printing. This is used in multi-extrusion.",
|
||||
"type": "int",
|
||||
"type": "extruder",
|
||||
"default_value": 0,
|
||||
"minimum_value": "0"
|
||||
"minimum_value": "0",
|
||||
"settable_per_mesh": true,
|
||||
"settable_per_extruder": false,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_nozzle_offset_x":
|
||||
{
|
||||
|
@ -33,7 +37,10 @@
|
|||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 0,
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_nozzle_offset_y":
|
||||
{
|
||||
|
@ -42,7 +49,10 @@
|
|||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 0,
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_extruder_start_code":
|
||||
{
|
||||
|
@ -50,7 +60,10 @@
|
|||
"description": "Start g-code to execute whenever turning the extruder on.",
|
||||
"type": "str",
|
||||
"default_value": "",
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_extruder_start_pos_abs":
|
||||
{
|
||||
|
@ -58,7 +71,10 @@
|
|||
"description": "Make the extruder starting position absolute rather than relative to the last-known location of the head.",
|
||||
"type": "bool",
|
||||
"default_value": false,
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_extruder_start_pos_x":
|
||||
{
|
||||
|
@ -67,7 +83,10 @@
|
|||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 0,
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_extruder_start_pos_y":
|
||||
{
|
||||
|
@ -76,7 +95,10 @@
|
|||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 0,
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_extruder_end_code":
|
||||
{
|
||||
|
@ -84,7 +106,10 @@
|
|||
"description": "End g-code to execute whenever turning the extruder off.",
|
||||
"type": "str",
|
||||
"default_value": "",
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_extruder_end_pos_abs":
|
||||
{
|
||||
|
@ -92,7 +117,10 @@
|
|||
"description": "Make the extruder ending position absolute rather than relative to the last-known location of the head.",
|
||||
"type": "bool",
|
||||
"default_value": false,
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_extruder_end_pos_x":
|
||||
{
|
||||
|
@ -101,7 +129,10 @@
|
|||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 0,
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
},
|
||||
"machine_extruder_end_pos_y":
|
||||
{
|
||||
|
@ -110,7 +141,10 @@
|
|||
"type": "float",
|
||||
"unit": "mm",
|
||||
"default_value": 0,
|
||||
"global_only": "True"
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
"settable_per_meshgroup": false,
|
||||
"settable_globally": false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -5,10 +5,7 @@
|
|||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"author": "Ultimaker",
|
||||
"manufacturer": "Ultimaker",
|
||||
"manufacturer": "Ultimaker"
|
||||
"visible": false,
|
||||
"preferred_profile": "Normal Quality",
|
||||
"preferred_nozzle": "0.4 mm",
|
||||
"preferred_material": "PLA"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,8 +12,12 @@
|
|||
"platform": "ultimaker2_platform.obj",
|
||||
"platform_texture": "Ultimaker2Plusbackplate.png",
|
||||
"preferred_variant": "ultimaker2_plus_0.4",
|
||||
"preferred_material": "pla",
|
||||
"preferred_quality": "high"
|
||||
"preferred_material": "*pla*",
|
||||
"preferred_quality": "*normal*",
|
||||
"has_variants": true,
|
||||
"has_materials": true,
|
||||
"has_machine_materials": true,
|
||||
"has_machine_quality": true
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
|
|
|
@ -11,6 +11,9 @@
|
|||
"file_formats": "text/x-gcode",
|
||||
"icon": "icon_ultimaker.png",
|
||||
"platform": "ultimaker_platform.stl",
|
||||
"has_materials": true,
|
||||
"preferred_material": "*pla*",
|
||||
"preferred_quality": "*normal*",
|
||||
"pages": [
|
||||
"SelectUpgradedParts",
|
||||
"UpgradeFirmware",
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = high
|
||||
definition = fdmprinter
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
|
||||
[values]
|
|
@ -1,9 +0,0 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = normal
|
||||
definition = fdmprinter
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
|
||||
[values]
|
|
@ -1,12 +0,0 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = ABS
|
||||
definition = fdmprinter
|
||||
|
||||
[metadata]
|
||||
type = material
|
||||
|
||||
[values]
|
||||
material_print_temperature = 250
|
||||
material_bed_temperature = 80
|
||||
material_flow = 107
|
|
@ -1,11 +0,0 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = CPE
|
||||
definition = fdmprinter
|
||||
|
||||
[metadata]
|
||||
type = material
|
||||
|
||||
[values]
|
||||
material_print_temperature = 250
|
||||
material_bed_temperature = 70
|
34
resources/materials/generic_abs.xml.fdm_material
Normal file
34
resources/materials/generic_abs.xml.fdm_material
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Generic PLA profile. Serves as an example file, data in this file is not correct.
|
||||
-->
|
||||
<fdmmaterial xmlns="http://www.ultimaker.com/material">
|
||||
<metadata>
|
||||
<name>
|
||||
<brand>Generic</brand>
|
||||
<material>ABS</material>
|
||||
<color>Generic</color>
|
||||
</name>
|
||||
<GUID>506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9</GUID>
|
||||
<version>0</version>
|
||||
<color_code>#FF0000</color_code>
|
||||
</metadata>
|
||||
<properties>
|
||||
<density>1.07</density>
|
||||
<diameter>2.85</diameter>
|
||||
</properties>
|
||||
<settings>
|
||||
<setting key="print temperature">250</setting>
|
||||
<setting key="heated bed temperature">80</setting>
|
||||
|
||||
<machine>
|
||||
<machine_identifier manufacturer="Ultimaker" product="Ultimaker2+"/>
|
||||
<machine_identifier manufacturer="Ultimaker" product="Ultimaker2extended+"/>
|
||||
|
||||
<hotend id="0.25 mm" />
|
||||
<hotend id="0.4 mm" />
|
||||
<hotend id="0.6 mm" />
|
||||
<hotend id="0.8 mm" />
|
||||
</machine>
|
||||
</settings>
|
||||
</fdmmaterial>
|
34
resources/materials/generic_cpe.xml.fdm_material
Normal file
34
resources/materials/generic_cpe.xml.fdm_material
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Generic PLA profile. Serves as an example file, data in this file is not correct.
|
||||
-->
|
||||
<fdmmaterial xmlns="http://www.ultimaker.com/material">
|
||||
<metadata>
|
||||
<name>
|
||||
<brand>Generic</brand>
|
||||
<material>CPE</material>
|
||||
<color>Generic</color>
|
||||
</name>
|
||||
<GUID>506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9</GUID>
|
||||
<version>0</version>
|
||||
<color_code>#0000FF</color_code>
|
||||
</metadata>
|
||||
<properties>
|
||||
<density>0.94</density>
|
||||
<diameter>2.85</diameter>
|
||||
</properties>
|
||||
<settings>
|
||||
<setting key="print temperature">250</setting>
|
||||
<setting key="heated bed temperature">70</setting>
|
||||
|
||||
<machine>
|
||||
<machine_identifier manufacturer="Ultimaker" product="Ultimaker2+"/>
|
||||
<machine_identifier manufacturer="Ultimaker" product="Ultimaker2extended+"/>
|
||||
|
||||
<hotend id="0.25 mm" />
|
||||
<hotend id="0.4 mm" />
|
||||
<hotend id="0.6 mm" />
|
||||
<hotend id="0.8 mm" />
|
||||
</machine>
|
||||
</settings>
|
||||
</fdmmaterial>
|
|
@ -11,7 +11,7 @@ Generic PLA profile. Serves as an example file, data in this file is not correct
|
|||
</name>
|
||||
<GUID>506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9</GUID>
|
||||
<version>0</version>
|
||||
<color_code>#FFFFFF</color_code>
|
||||
<color_code>#00FF00</color_code>
|
||||
</metadata>
|
||||
<properties>
|
||||
<density>1.3</density>
|
||||
|
@ -20,28 +20,15 @@ Generic PLA profile. Serves as an example file, data in this file is not correct
|
|||
<settings>
|
||||
<setting key="print temperature">210</setting>
|
||||
<setting key="heated bed temperature">60</setting>
|
||||
<setting key="standby temperature">175</setting>
|
||||
|
||||
<machine>
|
||||
<machine_identifier manufacturer="Ultimaker" product="Ultimaker2+"/>
|
||||
<machine_identifier manufacturer="Ultimaker" product="Ultimaker2extended+"/>
|
||||
<setting key="standby temperature">150</setting>
|
||||
<setting key="processing temperature graph">
|
||||
<point flow="2" temperature="180"/>
|
||||
<point flow="10" temperature="230"/>
|
||||
</setting>
|
||||
</machine>
|
||||
|
||||
<machine>
|
||||
<machine_identifier manufacturer="Ultimaker" product="Ultimaker Original"/>
|
||||
<machine_identifier manufacturer="Ultimaker" product="Ultimaker Original+"/>
|
||||
<setting key="standby temperature">150</setting>
|
||||
<hotend id="0.8mm">
|
||||
<setting key="standby temperature">80</setting>
|
||||
</hotend>
|
||||
<hotend id="0.6mm">
|
||||
<setting key="standby temperature">100</setting>
|
||||
</hotend>
|
||||
<hotend id="0.25 mm" />
|
||||
<hotend id="0.4 mm" />
|
||||
<hotend id="0.6 mm" />
|
||||
<hotend id="0.8 mm" />
|
||||
</machine>
|
||||
</settings>
|
||||
</fdmmaterial>
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = PLA
|
||||
definition = fdmprinter
|
||||
|
||||
[metadata]
|
||||
type = material
|
||||
|
||||
[values]
|
||||
material_bed_temperature = 60
|
|
@ -1,10 +0,0 @@
|
|||
[general]
|
||||
version = 1
|
||||
name = High Quality
|
||||
weight = -3
|
||||
|
||||
[settings]
|
||||
layer_height = 0.06
|
||||
speed_topbottom = 15
|
||||
speed_infill = 80
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
[general]
|
||||
version = 1
|
||||
name = Normal Quality
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
speed_topbottom = 15
|
||||
speed_infill = 80
|
|
@ -1,9 +0,0 @@
|
|||
[general]
|
||||
version = 1
|
||||
name = Ulti Quality
|
||||
weight = -4
|
||||
|
||||
[settings]
|
||||
layer_height = 0.04
|
||||
speed_topbottom = 15
|
||||
speed_infill = 80
|
|
@ -1,9 +0,0 @@
|
|||
[general]
|
||||
version = 1
|
||||
type = material
|
||||
name = ABS
|
||||
|
||||
[settings]
|
||||
material_print_temperature = 250
|
||||
material_bed_temperature = 80
|
||||
material_flow = 107
|
|
@ -1,8 +0,0 @@
|
|||
[general]
|
||||
version = 1
|
||||
type = material
|
||||
name = CPE
|
||||
|
||||
[settings]
|
||||
material_print_temperature = 250
|
||||
material_bed_temperature = 70
|
|
@ -1,7 +0,0 @@
|
|||
[general]
|
||||
version = 1
|
||||
type = material
|
||||
name = PLA
|
||||
|
||||
[settings]
|
||||
material_bed_temperature = 60
|
|
@ -1,21 +0,0 @@
|
|||
[general]
|
||||
version = 1
|
||||
name = Ulti Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = PLA
|
||||
weight = -4
|
||||
|
||||
[settings]
|
||||
line_width = 0.35
|
||||
layer_height = 0.04
|
||||
layer_height_0 = 0.26
|
||||
wall_thickness = 1.4
|
||||
top_bottom_thickness = 1.12
|
||||
infill_sparse_density = 25
|
||||
speed_print = 30
|
||||
speed_infill = 50
|
||||
speed_wall_x = 40
|
||||
speed_topbottom = 20
|
||||
speed_layer_0 = 25
|
||||
cool_min_layer_time_fan_speed_max = 15
|
|
@ -6,6 +6,7 @@ pragma Singleton
|
|||
import QtQuick 2.2
|
||||
import QtQuick.Controls 1.1
|
||||
import UM 1.1 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
Item
|
||||
{
|
||||
|
@ -109,24 +110,24 @@ Item
|
|||
Action
|
||||
{
|
||||
id: updateProfileAction;
|
||||
enabled: UM.ActiveProfile.valid && !UM.ActiveProfile.readOnly && UM.ActiveProfile.hasCustomisedValues
|
||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Update Current Profile");
|
||||
onTriggered: UM.ActiveProfile.updateProfile();
|
||||
enabled: Cura.MachineManager.isGlobalStackValid && 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()
|
||||
}
|
||||
|
||||
Action
|
||||
{
|
||||
id: resetProfileAction;
|
||||
enabled: UM.ActiveProfile.valid && UM.ActiveProfile.hasCustomisedValues
|
||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Reload Current Profile");
|
||||
onTriggered: UM.ActiveProfile.discardChanges();
|
||||
enabled: Cura.MachineManager.hasUserSettings
|
||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Discard current settings");
|
||||
onTriggered: Cura.MachineManager.clearUserSettings();
|
||||
}
|
||||
|
||||
Action
|
||||
{
|
||||
id: addProfileAction;
|
||||
enabled: UM.ActiveProfile.valid
|
||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Create New Profile...");
|
||||
enabled: Cura.MachineManager.isGlobalStackValid && Cura.MachineManager.hasUserSettings
|
||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Create profile from current settings...");
|
||||
}
|
||||
|
||||
Action
|
||||
|
|
|
@ -10,8 +10,6 @@ import QtQuick.Dialogs 1.1
|
|||
import UM 1.2 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
import "."
|
||||
|
||||
UM.MainWindow
|
||||
{
|
||||
id: base
|
||||
|
@ -56,7 +54,7 @@ UM.MainWindow
|
|||
title: catalog.i18nc("@title:menu menubar:toplevel","&File");
|
||||
|
||||
MenuItem {
|
||||
action: Actions.open;
|
||||
action: Cura.Actions.open;
|
||||
}
|
||||
|
||||
Menu
|
||||
|
@ -95,7 +93,7 @@ UM.MainWindow
|
|||
text: catalog.i18nc("@action:inmenu menubar:file", "&Save Selection to File");
|
||||
enabled: UM.Selection.hasSelection;
|
||||
iconName: "document-save-as";
|
||||
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", Printer.jobName, { "filter_by_machine": false });
|
||||
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false });
|
||||
}
|
||||
Menu
|
||||
{
|
||||
|
@ -111,18 +109,18 @@ UM.MainWindow
|
|||
MenuItem
|
||||
{
|
||||
text: model.description;
|
||||
onTriggered: UM.OutputDeviceManager.requestWriteToDevice(model.id, Printer.jobName, { "filter_by_machine": false });
|
||||
onTriggered: UM.OutputDeviceManager.requestWriteToDevice(model.id, PrintInformation.jobName, { "filter_by_machine": false });
|
||||
}
|
||||
onObjectAdded: saveAllMenu.insertItem(index, object)
|
||||
onObjectRemoved: saveAllMenu.removeItem(object)
|
||||
}
|
||||
}
|
||||
|
||||
MenuItem { action: Actions.reloadAll; }
|
||||
MenuItem { action: Cura.Actions.reloadAll; }
|
||||
|
||||
MenuSeparator { }
|
||||
|
||||
MenuItem { action: Actions.quit; }
|
||||
MenuItem { action: Cura.Actions.quit; }
|
||||
}
|
||||
|
||||
Menu
|
||||
|
@ -130,17 +128,17 @@ UM.MainWindow
|
|||
//: Edit menu
|
||||
title: catalog.i18nc("@title:menu menubar:toplevel","&Edit");
|
||||
|
||||
MenuItem { action: Actions.undo; }
|
||||
MenuItem { action: Actions.redo; }
|
||||
MenuItem { action: Cura.Actions.undo; }
|
||||
MenuItem { action: Cura.Actions.redo; }
|
||||
MenuSeparator { }
|
||||
MenuItem { action: Actions.deleteSelection; }
|
||||
MenuItem { action: Actions.deleteAll; }
|
||||
MenuItem { action: Actions.resetAllTranslation; }
|
||||
MenuItem { action: Actions.resetAll; }
|
||||
MenuItem { action: Cura.Actions.deleteSelection; }
|
||||
MenuItem { action: Cura.Actions.deleteAll; }
|
||||
MenuItem { action: Cura.Actions.resetAllTranslation; }
|
||||
MenuItem { action: Cura.Actions.resetAll; }
|
||||
MenuSeparator { }
|
||||
MenuItem { action: Actions.groupObjects;}
|
||||
MenuItem { action: Actions.mergeObjects;}
|
||||
MenuItem { action: Actions.unGroupObjects;}
|
||||
MenuItem { action: Cura.Actions.groupObjects;}
|
||||
MenuItem { action: Cura.Actions.mergeObjects;}
|
||||
MenuItem { action: Cura.Actions.unGroupObjects;}
|
||||
}
|
||||
|
||||
Menu
|
||||
|
@ -180,7 +178,7 @@ UM.MainWindow
|
|||
text: model.name;
|
||||
checkable: true;
|
||||
checked: Cura.MachineManager.activeMachineId == model.id
|
||||
exclusiveGroup: machineSelectionMenuGroup;
|
||||
exclusiveGroup: machineMenuGroup;
|
||||
onTriggered: Cura.MachineManager.setActiveMachine(model.id);
|
||||
}
|
||||
onObjectAdded: machineMenu.insertItem(index, object)
|
||||
|
@ -216,8 +214,8 @@ UM.MainWindow
|
|||
|
||||
MenuSeparator { visible: Cura.MachineManager.hasVariants; }
|
||||
|
||||
MenuItem { action: Actions.addMachine; }
|
||||
MenuItem { action: Actions.configureMachines; }
|
||||
MenuItem { action: Cura.Actions.addMachine; }
|
||||
MenuItem { action: Cura.Actions.configureMachines; }
|
||||
}
|
||||
|
||||
Menu
|
||||
|
@ -228,7 +226,26 @@ UM.MainWindow
|
|||
Instantiator
|
||||
{
|
||||
id: profileMenuInstantiator
|
||||
// model: UM.ProfilesModel {}
|
||||
model: UM.InstanceContainersModel
|
||||
{
|
||||
filter:
|
||||
{
|
||||
var result = { "type": "quality" };
|
||||
if(Cura.MachineManager.filterQualityByMachine)
|
||||
{
|
||||
result.definition = Cura.MachineManager.activeDefinitionId;
|
||||
if(Cura.MachineManager.hasMaterials)
|
||||
{
|
||||
result.material = Cura.MachineManager.activeMaterialId;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result.definition = "fdmprinter"
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
property int separatorIndex: -1
|
||||
|
||||
Loader {
|
||||
|
@ -271,30 +288,20 @@ UM.MainWindow
|
|||
{
|
||||
id: item
|
||||
text: model_data ? model_data.name : ""
|
||||
checkable: true;
|
||||
checked: model_data ? model_data.active : false;
|
||||
exclusiveGroup: profileMenuGroup;
|
||||
onTriggered:
|
||||
{
|
||||
UM.MachineManager.setActiveProfile(model_data.name);
|
||||
if (!model_data.active) {
|
||||
//Selecting a profile was canceled; undo menu selection
|
||||
profileMenuInstantiator.model.setProperty(model_index, "active", false);
|
||||
var activeProfileName = UM.MachineManager.activeProfile;
|
||||
var activeProfileIndex = profileMenuInstantiator.model.find("name", activeProfileName);
|
||||
profileMenuInstantiator.model.setProperty(activeProfileIndex, "active", true);
|
||||
}
|
||||
}
|
||||
checkable: true
|
||||
checked: Cura.MachineManager.activeQualityId == model_data.id
|
||||
exclusiveGroup: profileMenuGroup
|
||||
onTriggered: Cura.MachineManager.setActiveQuality(model_data.id)
|
||||
}
|
||||
}
|
||||
|
||||
MenuSeparator { id: profileMenuSeparator }
|
||||
|
||||
MenuItem { action: Actions.updateProfile; }
|
||||
MenuItem { action: Actions.resetProfile; }
|
||||
MenuItem { action: Actions.addProfile; }
|
||||
MenuItem { action: Cura.Actions.addProfile }
|
||||
MenuItem { action: Cura.Actions.updateProfile }
|
||||
MenuItem { action: Cura.Actions.resetProfile }
|
||||
MenuSeparator { }
|
||||
MenuItem { action: Actions.manageProfiles; }
|
||||
MenuItem { action: Cura.Actions.manageProfiles }
|
||||
}
|
||||
|
||||
Menu
|
||||
|
@ -305,7 +312,7 @@ UM.MainWindow
|
|||
|
||||
Instantiator
|
||||
{
|
||||
id: extenions
|
||||
id: extensions
|
||||
model: UM.ExtensionModel { }
|
||||
|
||||
Menu
|
||||
|
@ -320,7 +327,7 @@ UM.MainWindow
|
|||
MenuItem
|
||||
{
|
||||
text: model.text
|
||||
onTriggered: extenions.model.subMenuTriggered(name, model.text)
|
||||
onTriggered: extensions.model.subMenuTriggered(name, model.text)
|
||||
}
|
||||
onObjectAdded: sub_menu.insertItem(index, object)
|
||||
onObjectRemoved: sub_menu.removeItem(object)
|
||||
|
@ -337,7 +344,7 @@ UM.MainWindow
|
|||
//: Settings menu
|
||||
title: catalog.i18nc("@title:menu menubar:toplevel","&Settings");
|
||||
|
||||
MenuItem { action: Actions.preferences; }
|
||||
MenuItem { action: Cura.Actions.preferences; }
|
||||
}
|
||||
|
||||
Menu
|
||||
|
@ -345,11 +352,11 @@ UM.MainWindow
|
|||
//: Help menu
|
||||
title: catalog.i18nc("@title:menu menubar:toplevel","&Help");
|
||||
|
||||
MenuItem { action: Actions.showEngineLog; }
|
||||
MenuItem { action: Actions.documentation; }
|
||||
MenuItem { action: Actions.reportBug; }
|
||||
MenuItem { action: Cura.Actions.showEngineLog; }
|
||||
MenuItem { action: Cura.Actions.documentation; }
|
||||
MenuItem { action: Cura.Actions.reportBug; }
|
||||
MenuSeparator { }
|
||||
MenuItem { action: Actions.about; }
|
||||
MenuItem { action: Cura.Actions.about; }
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -439,7 +446,7 @@ UM.MainWindow
|
|||
left: parent.left;
|
||||
//leftMargin: UM.Theme.getSize("loadfile_margin").width
|
||||
}
|
||||
action: Actions.open;
|
||||
action: Cura.Actions.open;
|
||||
}
|
||||
|
||||
Image
|
||||
|
@ -526,13 +533,6 @@ UM.MainWindow
|
|||
}
|
||||
|
||||
width: UM.Theme.getSize("sidebar").width;
|
||||
|
||||
addMachineAction: Actions.addMachine;
|
||||
configureMachinesAction: Actions.configureMachines;
|
||||
addProfileAction: Actions.addProfile;
|
||||
updateProfileAction: Actions.updateProfile;
|
||||
resetProfileAction: Actions.resetProfile;
|
||||
manageProfilesAction: Actions.manageProfiles;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -573,16 +573,16 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.preferences
|
||||
target: Cura.Actions.preferences
|
||||
onTriggered: preferences.visible = true
|
||||
}
|
||||
|
||||
Connections
|
||||
{
|
||||
target: Actions.addProfile
|
||||
target: Cura.Actions.addProfile
|
||||
onTriggered:
|
||||
{
|
||||
UM.MachineManager.createProfile();
|
||||
Cura.MachineManager.newQualityContainerFromQualityAndUser();
|
||||
preferences.setPage(5);
|
||||
preferences.show();
|
||||
|
||||
|
@ -593,7 +593,7 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.configureMachines
|
||||
target: Cura.Actions.configureMachines
|
||||
onTriggered:
|
||||
{
|
||||
preferences.visible = true;
|
||||
|
@ -603,7 +603,7 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.manageProfiles
|
||||
target: Cura.Actions.manageProfiles
|
||||
onTriggered:
|
||||
{
|
||||
preferences.visible = true;
|
||||
|
@ -613,7 +613,7 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.configureSettingVisibility
|
||||
target: Cura.Actions.configureSettingVisibility
|
||||
onTriggered:
|
||||
{
|
||||
preferences.visible = true;
|
||||
|
@ -636,22 +636,22 @@ UM.MainWindow
|
|||
id: objectContextMenu;
|
||||
|
||||
property variant objectId: -1;
|
||||
MenuItem { action: Actions.centerObject; }
|
||||
MenuItem { action: Actions.deleteObject; }
|
||||
MenuItem { action: Actions.multiplyObject; }
|
||||
MenuItem { action: Cura.Actions.centerObject; }
|
||||
MenuItem { action: Cura.Actions.deleteObject; }
|
||||
MenuItem { action: Cura.Actions.multiplyObject; }
|
||||
MenuSeparator { }
|
||||
MenuItem { action: Actions.deleteAll; }
|
||||
MenuItem { action: Actions.reloadAll; }
|
||||
MenuItem { action: Actions.resetAllTranslation; }
|
||||
MenuItem { action: Actions.resetAll; }
|
||||
MenuItem { action: Cura.Actions.deleteAll; }
|
||||
MenuItem { action: Cura.Actions.reloadAll; }
|
||||
MenuItem { action: Cura.Actions.resetAllTranslation; }
|
||||
MenuItem { action: Cura.Actions.resetAll; }
|
||||
MenuSeparator { }
|
||||
MenuItem { action: Actions.groupObjects; }
|
||||
MenuItem { action: Actions.mergeObjects; }
|
||||
MenuItem { action: Actions.unGroupObjects; }
|
||||
MenuItem { action: Cura.Actions.groupObjects; }
|
||||
MenuItem { action: Cura.Actions.mergeObjects; }
|
||||
MenuItem { action: Cura.Actions.unGroupObjects; }
|
||||
|
||||
Connections
|
||||
{
|
||||
target: Actions.deleteObject
|
||||
target: Cura.Actions.deleteObject
|
||||
onTriggered:
|
||||
{
|
||||
if(objectContextMenu.objectId != 0)
|
||||
|
@ -664,7 +664,7 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.multiplyObject
|
||||
target: Cura.Actions.multiplyObject
|
||||
onTriggered:
|
||||
{
|
||||
if(objectContextMenu.objectId != 0)
|
||||
|
@ -677,7 +677,7 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.centerObject
|
||||
target: Cura.Actions.centerObject
|
||||
onTriggered:
|
||||
{
|
||||
if(objectContextMenu.objectId != 0)
|
||||
|
@ -692,14 +692,14 @@ UM.MainWindow
|
|||
Menu
|
||||
{
|
||||
id: contextMenu;
|
||||
MenuItem { action: Actions.deleteAll; }
|
||||
MenuItem { action: Actions.reloadAll; }
|
||||
MenuItem { action: Actions.resetAllTranslation; }
|
||||
MenuItem { action: Actions.resetAll; }
|
||||
MenuItem { action: Cura.Actions.deleteAll; }
|
||||
MenuItem { action: Cura.Actions.reloadAll; }
|
||||
MenuItem { action: Cura.Actions.resetAllTranslation; }
|
||||
MenuItem { action: Cura.Actions.resetAll; }
|
||||
MenuSeparator { }
|
||||
MenuItem { action: Actions.groupObjects; }
|
||||
MenuItem { action: Actions.mergeObjects; }
|
||||
MenuItem { action: Actions.unGroupObjects; }
|
||||
MenuItem { action: Cura.Actions.groupObjects; }
|
||||
MenuItem { action: Cura.Actions.mergeObjects; }
|
||||
MenuItem { action: Cura.Actions.unGroupObjects; }
|
||||
}
|
||||
|
||||
Connections
|
||||
|
@ -720,13 +720,13 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.quit
|
||||
target: Cura.Actions.quit
|
||||
onTriggered: base.visible = false;
|
||||
}
|
||||
|
||||
Connections
|
||||
{
|
||||
target: Actions.toggleFullScreen
|
||||
target: Cura.Actions.toggleFullScreen
|
||||
onTriggered: base.toggleFullscreen();
|
||||
}
|
||||
|
||||
|
@ -756,7 +756,7 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.open
|
||||
target: Cura.Actions.open
|
||||
onTriggered: openDialog.open()
|
||||
}
|
||||
|
||||
|
@ -767,7 +767,7 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.showEngineLog
|
||||
target: Cura.Actions.showEngineLog
|
||||
onTriggered: engineLog.visible = true;
|
||||
}
|
||||
|
||||
|
@ -778,7 +778,7 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.addMachine
|
||||
target: Cura.Actions.addMachine
|
||||
onTriggered: addMachineDialog.visible = true;
|
||||
}
|
||||
|
||||
|
@ -789,7 +789,7 @@ UM.MainWindow
|
|||
|
||||
Connections
|
||||
{
|
||||
target: Actions.about
|
||||
target: Cura.Actions.about
|
||||
onTriggered: aboutDialog.visible = true;
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ import QtQuick 2.1
|
|||
import QtQuick.Controls 1.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Controls.Styles 1.1
|
||||
import QtQml.Models 2.2
|
||||
|
||||
import UM 1.1 as UM
|
||||
|
||||
|
@ -207,10 +206,11 @@ UM.PreferencesPage
|
|||
}
|
||||
}
|
||||
|
||||
DelegateModel
|
||||
ListView
|
||||
{
|
||||
id: plugins
|
||||
model: UM.PluginsModel { }
|
||||
visible: false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -10,62 +10,25 @@ import UM 1.1 as UM
|
|||
import Cura 1.0 as Cura
|
||||
|
||||
Rectangle {
|
||||
id: base;
|
||||
id: base
|
||||
|
||||
property bool activity: Printer.getPlatformActivity;
|
||||
property bool activity: Printer.getPlatformActivity
|
||||
property string fileBaseName
|
||||
property variant activeMachineName: Cura.MachineManager.activeMachineName
|
||||
|
||||
onActiveMachineNameChanged:
|
||||
{
|
||||
base.createFileName()
|
||||
printJobTextfield.text = PrintInformation.createJobName(base.fileBaseName);
|
||||
}
|
||||
|
||||
UM.I18nCatalog { id: catalog; name:"cura"}
|
||||
|
||||
property variant printDuration: PrintInformation.currentPrintTime;
|
||||
property real printMaterialAmount: PrintInformation.materialAmount;
|
||||
property variant printDuration: PrintInformation.currentPrintTime
|
||||
property real printMaterialAmount: PrintInformation.materialAmount
|
||||
|
||||
height: childrenRect.height
|
||||
color: "transparent"
|
||||
|
||||
function createFileName()
|
||||
{
|
||||
var splitMachineName = Cura.MachineManager.activeMachineName.split(" ")
|
||||
var abbrMachine = "";
|
||||
if ((UM.Preferences.getValue("cura/jobname_prefix")))
|
||||
{
|
||||
for (var i = 0; i < splitMachineName.length; i++)
|
||||
{
|
||||
if (splitMachineName[i].search(/ultimaker/i) != -1)
|
||||
{
|
||||
abbrMachine += "UM";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (splitMachineName[i].charAt(0).search(/[0-9]/g) == -1)
|
||||
{
|
||||
abbrMachine += splitMachineName[i].charAt(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
var regExpAdditives = /[0-9\+]/g;
|
||||
var resultAdditives = splitMachineName[i].match(regExpAdditives);
|
||||
if (resultAdditives != null)
|
||||
{
|
||||
for (var j = 0; j < resultAdditives.length; j++)
|
||||
{
|
||||
abbrMachine += resultAdditives[j];
|
||||
}
|
||||
}
|
||||
printJobTextfield.text = abbrMachine + "_" + base.fileBaseName;
|
||||
}
|
||||
else
|
||||
{
|
||||
printJobTextfield.text = base.fileBaseName;
|
||||
}
|
||||
}
|
||||
|
||||
Connections
|
||||
{
|
||||
target: backgroundItem
|
||||
|
@ -78,20 +41,20 @@ Rectangle {
|
|||
onActivityChanged: {
|
||||
if (activity == true && base.fileBaseName == ''){
|
||||
//this only runs when you open a file from the terminal (or something that works the same way; for example when you drag a file on the icon in MacOS or use 'open with' on Windows)
|
||||
base.fileBaseName = Printer.jobName //it gets the fileBaseName from CuraApplication.py because this saves the filebase when the file is opened using the terminal (or something alike)
|
||||
base.createFileName()
|
||||
base.fileBaseName = PrintInformation.jobName; //get the fileBaseName from PrintInformation.py because this saves the filebase when the file is opened using the terminal (or something alike)
|
||||
printJobTextfield.text = PrintInformation.createJobName(base.fileBaseName);
|
||||
}
|
||||
if (activity == true && base.fileBaseName != ''){
|
||||
//this runs in all other cases where there is a mesh on the buildplate (activity == true). It uses the fileBaseName from the hasMesh signal
|
||||
base.createFileName()
|
||||
printJobTextfield.text = PrintInformation.createJobName(base.fileBaseName);
|
||||
}
|
||||
if (activity == false){
|
||||
//When there is no mesh in the buildplate; the printJobTextField is set to an empty string so it doesn't set an empty string as a jobName (which is later used for saving the file)
|
||||
printJobTextfield.text = ''
|
||||
printJobTextfield.text = '';
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle
|
||||
Rectangle
|
||||
{
|
||||
id: jobNameRow
|
||||
anchors.top: parent.top
|
||||
|
@ -112,22 +75,22 @@ Rectangle {
|
|||
width: UM.Theme.getSize("save_button_specs_icons").width
|
||||
height: UM.Theme.getSize("save_button_specs_icons").height
|
||||
|
||||
onClicked:
|
||||
onClicked:
|
||||
{
|
||||
printJobTextfield.selectAll()
|
||||
printJobTextfield.focus = true
|
||||
printJobTextfield.selectAll();
|
||||
printJobTextfield.focus = true;
|
||||
}
|
||||
style: ButtonStyle
|
||||
{
|
||||
background: Rectangle
|
||||
{
|
||||
color: "transparent"
|
||||
UM.RecolorImage
|
||||
UM.RecolorImage
|
||||
{
|
||||
width: UM.Theme.getSize("save_button_specs_icons").width
|
||||
height: UM.Theme.getSize("save_button_specs_icons").height
|
||||
sourceSize.width: width
|
||||
sourceSize.height: width
|
||||
width: UM.Theme.getSize("save_button_specs_icons").width;
|
||||
height: UM.Theme.getSize("save_button_specs_icons").height;
|
||||
sourceSize.width: width;
|
||||
sourceSize.height: width;
|
||||
color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("text");
|
||||
source: UM.Theme.getIcon("pencil");
|
||||
}
|
||||
|
@ -147,15 +110,15 @@ Rectangle {
|
|||
text: ''
|
||||
horizontalAlignment: TextInput.AlignRight
|
||||
onTextChanged: {
|
||||
Printer.setJobName(text)
|
||||
PrintInformation.setJobName(text);
|
||||
}
|
||||
onEditingFinished: {
|
||||
if (printJobTextfield.text != ''){
|
||||
printJobTextfield.focus = false
|
||||
printJobTextfield.focus = false;
|
||||
}
|
||||
}
|
||||
validator: RegExpValidator {
|
||||
regExp: /^[^\\ \/ \.]*$/
|
||||
regExp: /^[^\\ \/ \*\?\|\[\]]*$/
|
||||
}
|
||||
style: TextFieldStyle{
|
||||
textColor: UM.Theme.getColor("setting_control_text");
|
||||
|
@ -200,7 +163,7 @@ Rectangle {
|
|||
sourceSize.width: width
|
||||
sourceSize.height: width
|
||||
color: UM.Theme.getColor("text_subtext")
|
||||
source: UM.Theme.getIcon("print_time");
|
||||
source: UM.Theme.getIcon("print_time")
|
||||
}
|
||||
Label{
|
||||
id: timeSpec
|
||||
|
@ -221,7 +184,7 @@ Rectangle {
|
|||
sourceSize.width: width
|
||||
sourceSize.height: width
|
||||
color: UM.Theme.getColor("text_subtext")
|
||||
source: UM.Theme.getIcon("category_material");
|
||||
source: UM.Theme.getIcon("category_material")
|
||||
}
|
||||
Label{
|
||||
id: lengthSpec
|
||||
|
@ -229,7 +192,7 @@ Rectangle {
|
|||
anchors.verticalCenter: parent.verticalCenter
|
||||
font: UM.Theme.getFont("small")
|
||||
color: UM.Theme.getColor("text_subtext")
|
||||
text: base.printMaterialAmount <= 0 ? catalog.i18nc("@label", "0.0 m") : catalog.i18nc("@label", "%1 m").arg(base.printMaterialAmount)
|
||||
text: catalog.i18nc("@label", "%1 m").arg(base.printMaterialAmount > 0 ? base.printMaterialAmount : 0)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,11 +12,19 @@ UM.ManagementPage
|
|||
id: base;
|
||||
|
||||
title: catalog.i18nc("@title:tab", "Printers");
|
||||
property int numInstances: model.rowCount();
|
||||
model: UM.ContainerStacksModel
|
||||
{
|
||||
filter: {"type": "machine"}
|
||||
onDataChanged: numInstances = model.rowCount()
|
||||
}
|
||||
|
||||
activeId: Cura.MachineManager.activeMachineId
|
||||
activeIndex: {
|
||||
for(var i = 0; i < model.rowCount(); i++) {
|
||||
if (model.getItem(i).id == Cura.MachineManager.activeMachineId) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
onAddObject: Printer.requestAddPrinter()
|
||||
|
@ -24,9 +32,9 @@ UM.ManagementPage
|
|||
onRenameObject: renameDialog.open();
|
||||
onActivateObject: Cura.MachineManager.setActiveMachine(base.currentItem.id)
|
||||
|
||||
removeEnabled: base.currentItem != null && numInstances > 1
|
||||
renameEnabled: base.currentItem != null && numInstances > 0
|
||||
activateEnabled: base.currentItem != null
|
||||
removeEnabled: base.currentItem != null && model.rowCount() > 1
|
||||
renameEnabled: base.currentItem != null
|
||||
activateEnabled: base.currentItem != null && base.currentItem.id != Cura.MachineManager.activeMachineId
|
||||
|
||||
Flow
|
||||
{
|
||||
|
|
|
@ -14,13 +14,37 @@ UM.ManagementPage
|
|||
|
||||
title: catalog.i18nc("@title:tab", "Materials");
|
||||
|
||||
model: UM.InstanceContainersModel { filter: { "type": "material", "definition": Cura.MachineManager.activeDefinitionId } }
|
||||
/*
|
||||
onAddObject: { var selectedMaterial = UM.MaterialManager.createProfile(); base.selectMaterial(selectedMaterial); }
|
||||
onRemoveObject: confirmDialog.open();
|
||||
onRenameObject: { renameDialog.open(); renameDialog.selectText(); }
|
||||
*/
|
||||
// activateEnabled: false
|
||||
model: UM.InstanceContainersModel
|
||||
{
|
||||
filter:
|
||||
{
|
||||
var result = { "type": "material" }
|
||||
if(Cura.MachineManager.filterMaterialsByMachine)
|
||||
{
|
||||
result.definition = Cura.MachineManager.activeDefinitionId
|
||||
if(Cura.MachineManager.hasVariants)
|
||||
{
|
||||
result.variant = Cura.MachineManager.activeVariantId
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result.definition = "fdmprinter"
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
activeId: Cura.MachineManager.activeMaterialId
|
||||
activeIndex: {
|
||||
for(var i = 0; i < model.rowCount(); i++) {
|
||||
if (model.getItem(i).id == Cura.MachineManager.activeMaterialId) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
addEnabled: false
|
||||
removeEnabled: false
|
||||
renameEnabled: false
|
||||
|
@ -185,7 +209,7 @@ UM.ManagementPage
|
|||
|
||||
onCurrentItemChanged:
|
||||
{
|
||||
if(!currentItem == null)
|
||||
if(currentItem == null)
|
||||
{
|
||||
return
|
||||
}
|
||||
|
|
|
@ -6,25 +6,70 @@ import QtQuick.Controls 1.1
|
|||
import QtQuick.Dialogs 1.2
|
||||
|
||||
import UM 1.2 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
UM.ManagementPage
|
||||
{
|
||||
id: base;
|
||||
|
||||
title: catalog.i18nc("@title:tab", "Profiles");
|
||||
addText: catalog.i18nc("@label", "Duplicate")
|
||||
addText: base.currentItem && (base.currentItem.id == Cura.MachineManager.activeQualityId) ? catalog.i18nc("@label", "Create") : catalog.i18nc("@label", "Duplicate")
|
||||
|
||||
model: UM.InstanceContainersModel { filter: { "type": "quality" } }
|
||||
|
||||
onAddObject: {
|
||||
var selectedProfile;
|
||||
if (objectList.currentIndex == 0) {
|
||||
// Current settings
|
||||
selectedProfile = UM.MachineManager.createProfile();
|
||||
} else {
|
||||
selectedProfile = UM.MachineManager.duplicateProfile(currentItem.name);
|
||||
model: UM.InstanceContainersModel
|
||||
{
|
||||
filter:
|
||||
{
|
||||
var result = { "type": "quality" };
|
||||
if(Cura.MachineManager.filterQualityByMachine)
|
||||
{
|
||||
result.definition = Cura.MachineManager.activeDefinitionId;
|
||||
if(Cura.MachineManager.hasMaterials)
|
||||
{
|
||||
result.material = Cura.MachineManager.activeMaterialId;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result.definition = "fdmprinter"
|
||||
}
|
||||
return result
|
||||
}
|
||||
base.selectProfile(selectedProfile);
|
||||
}
|
||||
|
||||
section.property: "readOnly"
|
||||
section.delegate: Rectangle
|
||||
{
|
||||
width: objectListContainer.viewport.width;
|
||||
height: childrenRect.height;
|
||||
|
||||
Label
|
||||
{
|
||||
anchors.left: parent.left;
|
||||
anchors.leftMargin: UM.Theme.getSize("default_lining").width;
|
||||
text: section == "true" ? catalog.i18nc("@label", "Protected profiles") : catalog.i18nc("@label", "Custom profiles")
|
||||
font.bold: true
|
||||
}
|
||||
}
|
||||
|
||||
activeId: Cura.MachineManager.activeQualityId
|
||||
activeIndex: {
|
||||
for(var i = 0; i < model.rowCount(); i++) {
|
||||
if (model.getItem(i).id == Cura.MachineManager.activeQualityId) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
onActivateObject: Cura.MachineManager.setActiveQuality(currentItem.id)
|
||||
onAddObject: {
|
||||
var selectedContainer;
|
||||
if (objectList.currentItem.id == Cura.MachineManager.activeQualityId) {
|
||||
selectedContainer = Cura.MachineManager.newQualityContainerFromQualityAndUser();
|
||||
} else {
|
||||
selectedContainer = Cura.MachineManager.duplicateContainer(base.currentItem.id);
|
||||
}
|
||||
base.selectContainer(selectedContainer);
|
||||
|
||||
renameDialog.removeWhenRejected = true;
|
||||
renameDialog.open();
|
||||
|
@ -33,15 +78,19 @@ UM.ManagementPage
|
|||
onRemoveObject: confirmDialog.open();
|
||||
onRenameObject: { renameDialog.removeWhenRejected = false; renameDialog.open(); renameDialog.selectText(); }
|
||||
|
||||
activateEnabled: currentItem != null ? currentItem.id != Cura.MachineManager.activeQualityId : false;
|
||||
addEnabled: currentItem != null;
|
||||
removeEnabled: currentItem != null ? !currentItem.readOnly : false;
|
||||
renameEnabled: currentItem != null ? !currentItem.readOnly : false;
|
||||
|
||||
scrollviewCaption: catalog.i18nc("@label %1 is printer name","Printer: %1").arg(UM.MachineManager.activeMachineInstance)
|
||||
scrollviewCaption: catalog.i18nc("@label %1 is printer name","Printer: %1").arg(Cura.MachineManager.activeMachineName)
|
||||
|
||||
signal selectProfile(string name)
|
||||
onSelectProfile: {
|
||||
objectList.currentIndex = objectList.model.find("name", name);
|
||||
signal showProfileNameDialog()
|
||||
onShowProfileNameDialog: { renameDialog.removeWhenRejected = true; renameDialog.open(); renameDialog.selectText(); }
|
||||
|
||||
signal selectContainer(string id)
|
||||
onSelectContainer: {
|
||||
objectList.currentIndex = objectList.model.find("id", id);
|
||||
}
|
||||
|
||||
Item {
|
||||
|
@ -56,71 +105,109 @@ UM.ManagementPage
|
|||
elide: Text.ElideRight
|
||||
}
|
||||
|
||||
ScrollView {
|
||||
Row {
|
||||
id: currentSettingsActions
|
||||
visible: currentItem.id == Cura.MachineManager.activeQualityId
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.top: profileName.bottom
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
|
||||
Button
|
||||
{
|
||||
text: {
|
||||
return catalog.i18nc("@action:button", "Update profile with current settings");
|
||||
}
|
||||
enabled: Cura.MachineManager.hasUserSettings && !Cura.MachineManager.isReadOnly(Cura.MachineManager.activeQualityId)
|
||||
onClicked: Cura.MachineManager.updateQualityContainerFromUserContainer()
|
||||
}
|
||||
|
||||
Button
|
||||
{
|
||||
text: catalog.i18nc("@action:button", "Discard current settings");
|
||||
enabled: Cura.MachineManager.hasUserSettings
|
||||
onClicked: Cura.MachineManager.clearUserSettings();
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
id: profileNotices
|
||||
anchors.top: currentSettingsActions.visible ? currentSettingsActions.bottom : currentSettingsActions.anchors.top
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
spacing: UM.Theme.getSize("default_margin").height
|
||||
|
||||
Label {
|
||||
id: defaultsMessage
|
||||
visible: !currentItem.metadata.has_settings
|
||||
text: catalog.i18nc("@action:label", "This profile has no settings and uses the defaults specified by the printer.")
|
||||
wrapMode: Text.WordWrap
|
||||
width: parent.width
|
||||
}
|
||||
Label {
|
||||
id: noCurrentSettingsMessage
|
||||
visible: currentItem.id == Cura.MachineManager.activeQualityId && !Cura.MachineManager.hasUserSettings
|
||||
text: catalog.i18nc("@action:label", "Your current settings match the selected profile.")
|
||||
wrapMode: Text.WordWrap
|
||||
width: parent.width
|
||||
}
|
||||
}
|
||||
|
||||
ScrollView {
|
||||
id: scrollView
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.top: profileNotices.visible ? profileNotices.bottom : profileNotices.anchors.top
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
|
||||
Column
|
||||
{
|
||||
spacing: UM.Theme.getSize("default_margin").height
|
||||
|
||||
Row
|
||||
{
|
||||
visible: base.currentItem.id == -1 || base.currentItem.active
|
||||
Button
|
||||
{
|
||||
text: {
|
||||
var profileName = UM.MachineManager.activeProfile;
|
||||
profileName = (profileName.length > 20) ? profileName.substring(0, 20) + '...' : profileName;
|
||||
return catalog.i18nc("@action:button", "Update \"%1\"".arg(profileName));
|
||||
}
|
||||
enabled: UM.ActiveProfile.hasCustomisedValues && !UM.ActiveProfile.readOnly
|
||||
onClicked: UM.ActiveProfile.updateProfile()
|
||||
ListView {
|
||||
model: Cura.ContainerSettingsModel{ containers: (currentItem.id == Cura.MachineManager.activeQualityId) ? [base.currentItem.id, Cura.MachineManager.activeUserProfileId] : [base.currentItem.id] }
|
||||
delegate: Row {
|
||||
property variant setting: model
|
||||
spacing: UM.Theme.getSize("default_margin").width/2
|
||||
Label {
|
||||
text: model.label
|
||||
elide: Text.ElideMiddle
|
||||
width: scrollView.width / 100 * 40
|
||||
}
|
||||
|
||||
Button
|
||||
{
|
||||
text: catalog.i18nc("@action:button", "Discard changes");
|
||||
enabled: UM.ActiveProfile.hasCustomisedValues
|
||||
onClicked: UM.ActiveProfile.discardChanges()
|
||||
Repeater {
|
||||
model: setting.values.length
|
||||
Label {
|
||||
text: setting.values[index].toString()
|
||||
width: scrollView.width / 100 * 15
|
||||
elide: Text.ElideRight
|
||||
font.strikeout: index < setting.values.length - 1 && setting.values[index + 1] != ""
|
||||
opacity: font.strikeout ? 0.5 : 1
|
||||
}
|
||||
}
|
||||
Label {
|
||||
text: model.unit
|
||||
}
|
||||
}
|
||||
|
||||
Grid
|
||||
{
|
||||
id: containerGrid
|
||||
columns: 2
|
||||
header: Row {
|
||||
visible: currentItem.id == Cura.MachineManager.activeQualityId
|
||||
spacing: UM.Theme.getSize("default_margin").width
|
||||
|
||||
Label {
|
||||
text: base.currentItem == null ? "" :
|
||||
base.currentItem.id == -1 ? catalog.i18nc("@label", "Based on") : catalog.i18nc("@label", "Profile type")
|
||||
text: catalog.i18nc("@action:label", "Profile:")
|
||||
width: scrollView.width / 100 * 55
|
||||
horizontalAlignment: Text.AlignRight
|
||||
font.bold: true
|
||||
}
|
||||
Label {
|
||||
text: base.currentItem == null ? "" :
|
||||
base.currentItem.id == -1 ? UM.MachineManager.activeProfile :
|
||||
base.currentItem.readOnly ? catalog.i18nc("@label", "Protected profile") : catalog.i18nc("@label", "Custom profile")
|
||||
}
|
||||
|
||||
Column {
|
||||
Repeater {
|
||||
model: base.currentItem ? base.currentItem.settings : null
|
||||
Label {
|
||||
text: modelData.name.toString();
|
||||
elide: Text.ElideMiddle;
|
||||
}
|
||||
}
|
||||
}
|
||||
Column {
|
||||
Repeater {
|
||||
model: base.currentItem ? base.currentItem.settings : null
|
||||
Label { text: modelData.value.toString(); }
|
||||
}
|
||||
text: catalog.i18nc("@action:label", "Current:")
|
||||
visible: currentItem.id == Cura.MachineManager.activeQualityId
|
||||
font.bold: true
|
||||
}
|
||||
}
|
||||
section.property: "category"
|
||||
section.criteria: ViewSection.FullString
|
||||
section.delegate: Label {
|
||||
text: section
|
||||
font.bold: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -136,9 +223,10 @@ UM.ManagementPage
|
|||
|
||||
Button
|
||||
{
|
||||
text: catalog.i18nc("@action:button", "Export");
|
||||
iconName: "document-export";
|
||||
onClicked: exportDialog.open();
|
||||
text: catalog.i18nc("@action:button", "Export")
|
||||
iconName: "document-export"
|
||||
onClicked: exportDialog.open()
|
||||
enabled: currentItem != null
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -148,19 +236,19 @@ UM.ManagementPage
|
|||
|
||||
UM.ConfirmRemoveDialog
|
||||
{
|
||||
id: confirmDialog;
|
||||
object: base.currentItem != null ? base.currentItem.name : "";
|
||||
onYes: base.model.removeProfile(base.currentItem.name);
|
||||
id: confirmDialog
|
||||
object: base.currentItem != null ? base.currentItem.name : ""
|
||||
onYes: Cura.MachineManager.removeQualityContainer(base.currentItem.id)
|
||||
}
|
||||
UM.RenameDialog
|
||||
{
|
||||
id: renameDialog;
|
||||
object: base.currentItem != null ? base.currentItem.name : "";
|
||||
property bool removeWhenRejected: false;
|
||||
onAccepted: base.model.renameProfile(base.currentItem.name, newName.trim());
|
||||
object: base.currentItem != null ? base.currentItem.name : ""
|
||||
property bool removeWhenRejected: false
|
||||
onAccepted: Cura.MachineManager.renameQualityContainer(base.currentItem.id, newName)
|
||||
onRejected: {
|
||||
if(removeWhenRejected) {
|
||||
base.model.removeProfile(base.currentItem.name)
|
||||
Cura.MachineManager.removeQualityContainer(base.currentItem.id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -208,7 +296,7 @@ UM.ManagementPage
|
|||
folder: base.model.getDefaultPath()
|
||||
onAccepted:
|
||||
{
|
||||
var result = base.model.exportProfile(base.currentItem.id, base.currentItem.name, fileUrl, selectedNameFilter)
|
||||
var result = base.model.exportProfile(base.currentItem.id, fileUrl, selectedNameFilter)
|
||||
if(result && result.status == "error")
|
||||
{
|
||||
messageDialog.icon = StandardIcon.Critical
|
||||
|
|
|
@ -1,160 +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.Controls.Styles 1.1
|
||||
import QtQuick.Layouts 1.1
|
||||
|
||||
import UM 1.2 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
Item{
|
||||
id: base;
|
||||
UM.I18nCatalog { id: catalog; name:"cura"}
|
||||
property int totalHeightProfileSetup: childrenRect.height
|
||||
property Action manageProfilesAction
|
||||
property Action addProfileAction
|
||||
property Action updateProfileAction
|
||||
property Action resetProfileAction
|
||||
|
||||
signal showTooltip(Item item, point location, string text)
|
||||
signal hideTooltip()
|
||||
|
||||
Rectangle{
|
||||
id: globalProfileRow
|
||||
anchors.top: base.top
|
||||
height: UM.Theme.getSize("sidebar_setup").height
|
||||
width: base.width
|
||||
|
||||
Label{
|
||||
id: globalProfileLabel
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width;
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
text: catalog.i18nc("@label","Profile:");
|
||||
width: parent.width/100*45
|
||||
font: UM.Theme.getFont("default");
|
||||
color: UM.Theme.getColor("text");
|
||||
}
|
||||
|
||||
ToolButton {
|
||||
property int rightMargin: customisedSettings.visible ? customisedSettings.width + UM.Theme.getSize("default_margin").width / 2 : 0
|
||||
|
||||
id: globalProfileSelection
|
||||
text: Cura.MachineManager.activeQualityName
|
||||
width: parent.width/100*55
|
||||
height: UM.Theme.getSize("setting_control").height
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
tooltip: Cura.MachineManager.activeQualityName
|
||||
style: UM.Theme.styles.sidebar_header_button
|
||||
|
||||
menu: Menu
|
||||
{
|
||||
id: profileSelectionMenu
|
||||
Instantiator
|
||||
{
|
||||
id: profileSelectionInstantiator
|
||||
model: UM.InstanceContainersModel
|
||||
{
|
||||
filter: {"type": "quality"}
|
||||
}
|
||||
property int separatorIndex: -1
|
||||
|
||||
Loader {
|
||||
property QtObject model_data: model
|
||||
property int model_index: index
|
||||
sourceComponent: menuItemDelegate
|
||||
}
|
||||
onObjectAdded:
|
||||
{
|
||||
//Insert a separator between readonly and custom profiles
|
||||
if(separatorIndex < 0 && index > 0) {
|
||||
if(model.getItem(index-1).readOnly != model.getItem(index).readOnly) {
|
||||
profileSelectionMenu.insertSeparator(index);
|
||||
separatorIndex = index;
|
||||
}
|
||||
}
|
||||
//Because of the separator, custom profiles move one index lower
|
||||
profileSelectionMenu.insertItem((model.getItem(index).readOnly) ? index : index + 1, object.item);
|
||||
}
|
||||
onObjectRemoved:
|
||||
{
|
||||
//When adding a profile, the menu is rebuild by removing all items.
|
||||
//If a separator was added, we need to remove that too.
|
||||
if(separatorIndex >= 0)
|
||||
{
|
||||
profileSelectionMenu.removeItem(profileSelectionMenu.items[separatorIndex])
|
||||
separatorIndex = -1;
|
||||
}
|
||||
profileSelectionMenu.removeItem(object.item);
|
||||
}
|
||||
}
|
||||
ExclusiveGroup { id: profileSelectionMenuGroup; }
|
||||
|
||||
Component
|
||||
{
|
||||
id: menuItemDelegate
|
||||
MenuItem
|
||||
{
|
||||
id: item
|
||||
text: model_data ? model_data.name : ""
|
||||
checkable: true;
|
||||
checked: Cura.MachineManager.activeQualityId == model_data.id
|
||||
exclusiveGroup: profileSelectionMenuGroup;
|
||||
onTriggered:
|
||||
{
|
||||
Cura.MachineManager.setActiveQuality(model_data.id);
|
||||
/*if (!model_data.active) {
|
||||
//Selecting a profile was canceled; undo menu selection
|
||||
profileSelectionInstantiator.model.setProperty(model_index, "active", false);
|
||||
var activeProfileName = UM.MachineManager.activeProfile;
|
||||
var activeProfileIndex = profileSelectionInstantiator.model.find("name", activeProfileName);
|
||||
profileSelectionInstantiator.model.setProperty(activeProfileIndex, "active", true);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MenuSeparator { }
|
||||
MenuItem {
|
||||
action: base.updateProfileAction;
|
||||
}
|
||||
MenuItem {
|
||||
action: base.resetProfileAction;
|
||||
}
|
||||
MenuItem {
|
||||
action: base.addProfileAction;
|
||||
}
|
||||
MenuSeparator { }
|
||||
MenuItem {
|
||||
action: base.manageProfilesAction;
|
||||
}
|
||||
}
|
||||
}
|
||||
UM.SimpleButton {
|
||||
id: customisedSettings
|
||||
|
||||
visible: UM.ActiveProfile.hasCustomisedValues
|
||||
height: parent.height * 0.6
|
||||
width: parent.height * 0.6
|
||||
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width
|
||||
|
||||
color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button");
|
||||
iconSource: UM.Theme.getIcon("star");
|
||||
|
||||
onClicked: base.manageProfilesAction.trigger()
|
||||
onEntered:
|
||||
{
|
||||
var content = catalog.i18nc("@tooltip","Some setting values are different from the values stored in the profile.\n\nClick to open the profile manager.")
|
||||
base.showTooltip(globalProfileRow, Qt.point(0, globalProfileRow.height / 2), content)
|
||||
}
|
||||
onExited: base.hideTooltip()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -98,7 +98,7 @@ Rectangle {
|
|||
text: UM.OutputDeviceManager.activeDeviceShortDescription
|
||||
onClicked:
|
||||
{
|
||||
UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, Printer.jobName, { "filter_by_machine": true })
|
||||
UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, PrintInformation.jobName, { "filter_by_machine": true })
|
||||
}
|
||||
|
||||
style: ButtonStyle {
|
||||
|
|
|
@ -7,8 +7,7 @@ import QtQuick.Controls.Styles 1.1
|
|||
import QtQuick.Layouts 1.1
|
||||
|
||||
import UM 1.1 as UM
|
||||
|
||||
import ".."
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
Button {
|
||||
id: base;
|
||||
|
@ -45,7 +44,7 @@ Button {
|
|||
iconSource: UM.Theme.getIcon("settings");
|
||||
|
||||
onClicked: {
|
||||
Actions.configureSettingVisibility.trigger(definition)
|
||||
Cura.Actions.configureSettingVisibility.trigger(definition)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,9 +56,9 @@ Button {
|
|||
anchors.right: parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width
|
||||
|
||||
visible: hiddenValuesCount > 0
|
||||
height: parent.height / 2;
|
||||
width: height;
|
||||
visible: false //hiddenValuesCount > 0
|
||||
height: parent.height / 2
|
||||
width: height
|
||||
|
||||
onClicked: {
|
||||
base.showAllHiddenInheritedSettings()
|
||||
|
|
|
@ -16,6 +16,7 @@ SettingItem
|
|||
{
|
||||
id: control
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
|
||||
property bool checked:
|
||||
{
|
||||
|
|
114
resources/qml/Settings/SettingExtruder.qml
Normal file
114
resources/qml/Settings/SettingExtruder.qml
Normal file
|
@ -0,0 +1,114 @@
|
|||
// Copyright (c) 2016 Ultimaker B.V.
|
||||
// Uranium is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Controls 1.1
|
||||
import QtQuick.Controls.Styles 1.1
|
||||
|
||||
import UM 1.1 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
SettingItem
|
||||
{
|
||||
id: base
|
||||
|
||||
contents: ComboBox
|
||||
{
|
||||
id: control
|
||||
|
||||
model: Cura.ExtrudersModel
|
||||
{
|
||||
id: extruders_model
|
||||
}
|
||||
textRole: "name"
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: parent
|
||||
acceptedButtons: Qt.NoButton
|
||||
onWheel: wheel.accepted = true;
|
||||
}
|
||||
|
||||
style: ComboBoxStyle
|
||||
{
|
||||
background: Rectangle
|
||||
{
|
||||
color:
|
||||
{
|
||||
if (!enabled)
|
||||
{
|
||||
return UM.Theme.getColor("setting_control_disabled");
|
||||
}
|
||||
if(control.hovered || base.activeFocus)
|
||||
{
|
||||
return UM.Theme.getColor("setting_control_highlight");
|
||||
}
|
||||
else
|
||||
{
|
||||
return extruders_model.getItem(index).colour;
|
||||
}
|
||||
}
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : control.hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border")
|
||||
}
|
||||
label: Item
|
||||
{
|
||||
Label
|
||||
{
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: UM.Theme.getSize("default_lining").width
|
||||
anchors.right: downArrow.left
|
||||
anchors.rightMargin: UM.Theme.getSize("default_lining").width
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
text: control.currentText
|
||||
font: UM.Theme.getFont("default")
|
||||
color: !enabled ? UM.Theme.getColor("setting_control_disabled_text") : extruders_model.getItem(index).colour
|
||||
|
||||
elide: Text.ElideRight
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
|
||||
UM.RecolorImage
|
||||
{
|
||||
id: downArrow
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("default_lining").width * 2
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
source: UM.Theme.getIcon("arrow_bottom")
|
||||
width: UM.Theme.getSize("standard_arrow").width
|
||||
height: UM.Theme.getSize("standard_arrow").height
|
||||
sourceSize.width: width + 5
|
||||
sourceSize.height: width + 5
|
||||
|
||||
color: UM.Theme.getColor("setting_control_text")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onActivated: provider.setPropertyValue("value", extruders_model.getItem(index).index);
|
||||
onModelChanged: updateCurrentIndex();
|
||||
|
||||
Connections
|
||||
{
|
||||
target: provider
|
||||
onPropertiesChanged: control.updateCurrentIndex();
|
||||
}
|
||||
|
||||
function updateCurrentIndex()
|
||||
{
|
||||
for(var i = 0; i < extruders_model.rowCount(); ++i)
|
||||
{
|
||||
if(extruders_model.getItem(i).index == provider.properties.value)
|
||||
{
|
||||
currentIndex = i;
|
||||
return;
|
||||
}
|
||||
}
|
||||
currentIndex = -1;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -18,10 +18,51 @@ Item {
|
|||
property alias contents: controlContainer.children;
|
||||
property alias hovered: mouse.containsMouse
|
||||
|
||||
property var showRevertButton: true
|
||||
property var showInheritButton: true
|
||||
property var doDepthIndentation: true
|
||||
|
||||
// Create properties to put property provider stuff in (bindings break in qt 5.5.1 otherwise)
|
||||
property var state: propertyProvider.properties.state
|
||||
property var stackLevels: propertyProvider.stackLevels
|
||||
property var stackLevel: stackLevels[0]
|
||||
|
||||
signal contextMenuRequested()
|
||||
signal showTooltip(string text);
|
||||
signal hideTooltip();
|
||||
|
||||
property string tooltipText:
|
||||
{
|
||||
var affects = settingDefinitionsModel.getRequiredBy(definition.key, "value")
|
||||
var affected_by = settingDefinitionsModel.getRequires(definition.key, "value")
|
||||
|
||||
var affected_by_list = ""
|
||||
for(var i in affected_by)
|
||||
{
|
||||
affected_by_list += "<li>%1</li>\n".arg(affected_by[i].label)
|
||||
}
|
||||
|
||||
var affects_list = ""
|
||||
for(var i in affects)
|
||||
{
|
||||
affects_list += "<li>%1</li>\n".arg(affects[i].label)
|
||||
}
|
||||
|
||||
var tooltip = "<b>%1</b>\n<p>%2</p>".arg(definition.label).arg(definition.description)
|
||||
|
||||
if(affects_list != "")
|
||||
{
|
||||
tooltip += "<br/><b>%1</b>\n<ul>\n%2</ul>".arg(catalog.i18nc("@label", "Affects")).arg(affects_list)
|
||||
}
|
||||
|
||||
if(affected_by_list != "")
|
||||
{
|
||||
tooltip += "<br/><b>%1</b>\n<ul>\n%2</ul>".arg(catalog.i18nc("@label", "Affected By")).arg(affected_by_list)
|
||||
}
|
||||
|
||||
return tooltip
|
||||
}
|
||||
|
||||
MouseArea
|
||||
{
|
||||
id: mouse;
|
||||
|
@ -50,7 +91,10 @@ Item {
|
|||
interval: 500;
|
||||
repeat: false;
|
||||
|
||||
onTriggered: base.showTooltip(definition.description);
|
||||
onTriggered:
|
||||
{
|
||||
base.showTooltip(base.tooltipText);
|
||||
}
|
||||
}
|
||||
|
||||
Label
|
||||
|
@ -58,7 +102,7 @@ Item {
|
|||
id: label;
|
||||
|
||||
anchors.left: parent.left;
|
||||
anchors.leftMargin: (UM.Theme.getSize("section_icon_column").width + 5) + ((definition.depth - 1) * UM.Theme.getSize("setting_control_depth_margin").width)
|
||||
anchors.leftMargin: doDepthIndentation ? (UM.Theme.getSize("section_icon_column").width + 5) + ((definition.depth - 1) * UM.Theme.getSize("setting_control_depth_margin").width) : 0
|
||||
anchors.right: settingControls.left;
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
|
@ -89,7 +133,7 @@ Item {
|
|||
{
|
||||
id: revertButton;
|
||||
|
||||
visible: propertyProvider.stackLevel == 0
|
||||
visible: base.stackLevel == 0 && base.showRevertButton
|
||||
|
||||
height: parent.height;
|
||||
width: height;
|
||||
|
@ -106,24 +150,72 @@ Item {
|
|||
propertyProvider.removeFromContainer(0)
|
||||
}
|
||||
|
||||
onEntered: base.showTooltip(catalog.i18nc("@label", "This setting has a value that is different from the profile.\n\nClick to restore the value of the profile."))
|
||||
onExited: base.showTooltip(definition.description);
|
||||
onEntered: { hoverTimer.stop(); base.showTooltip(catalog.i18nc("@label", "This setting has a value that is different from the profile.\n\nClick to restore the value of the profile.")) }
|
||||
onExited: base.showTooltip(base.tooltipText);
|
||||
}
|
||||
|
||||
UM.SimpleButton
|
||||
{
|
||||
// This button shows when the setting has an inherited function, but is overriden by profile.
|
||||
id: inheritButton;
|
||||
|
||||
//visible: has_profile_value && base.has_inherit_function && base.is_enabled
|
||||
visible: propertyProvider.properties.state == "InstanceState.User" && propertyProvider.stackLevel > 0
|
||||
// Inherit button needs to be visible if;
|
||||
// - User made changes that override any loaded settings
|
||||
// - This setting item uses inherit button at all
|
||||
// - The type of the value of any deeper container is an "object" (eg; is a function)
|
||||
visible:
|
||||
{
|
||||
var state = base.state == "InstanceState.User";
|
||||
var has_setting_function = false;
|
||||
for (var i = 1; i < base.stackLevels.length; i++)
|
||||
{
|
||||
has_setting_function = typeof(propertyProvider.getPropertyValue("value", base.stackLevels[i])) == "object";
|
||||
if(has_setting_function)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return state && base.showInheritButton && has_setting_function && typeof(propertyProvider.getPropertyValue("value", base.stackLevels[0])) != "object"
|
||||
}
|
||||
|
||||
height: parent.height;
|
||||
width: height;
|
||||
|
||||
onClicked: {
|
||||
focus = true;
|
||||
propertyProvider.removeFromContainer(propertyProvider.stackLevel)
|
||||
|
||||
// Get the most shallow function value (eg not a number) that we can find.
|
||||
var last_entry = propertyProvider.stackLevels[propertyProvider.stackLevels.length]
|
||||
for (var i = 1; i < base.stackLevels.length; i++)
|
||||
{
|
||||
var has_setting_function = typeof(propertyProvider.getPropertyValue("value", base.stackLevels[i])) == "object";
|
||||
if(has_setting_function)
|
||||
{
|
||||
last_entry = propertyProvider.stackLevels[i]
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(last_entry == 4 && base.stackLevel == 0 && base.stackLevels.length == 2)
|
||||
{
|
||||
// Special case of the inherit reset. If only the definition (4th container) and the first
|
||||
// entry (user container) are set, we can simply remove the container.
|
||||
propertyProvider.removeFromContainer(0)
|
||||
}
|
||||
else if(last_entry - 1 == base.stackLevel)
|
||||
{
|
||||
// Another special case. The setting that is overriden is only 1 instance container deeper,
|
||||
// so we can remove it.
|
||||
propertyProvider.removeFromContainer(0)
|
||||
}
|
||||
else
|
||||
{
|
||||
// Put that entry into the "top" instance container.
|
||||
// This ensures that the value in any of the deeper containers need not be removed, which is
|
||||
// needed for the reset button (which deletes the top value) to correctly go back to profile
|
||||
// defaults.
|
||||
propertyProvider.setPropertyValue("value", propertyProvider.getPropertyValue("value", last_entry))
|
||||
propertyProvider.setPropertyValue("state", "InstanceState.Calculated")
|
||||
}
|
||||
}
|
||||
|
||||
backgroundColor: UM.Theme.getColor("setting_control");
|
||||
|
@ -133,8 +225,8 @@ Item {
|
|||
|
||||
iconSource: UM.Theme.getIcon("notice");
|
||||
|
||||
onEntered: base.showTooltip(catalog.i18nc("@label", "This setting is normally calculated, but it currently has an absolute value set.\n\nClick to restore the calculated value."))
|
||||
onExited: base.showTooltip(definition.description);
|
||||
onEntered: { hoverTimer.stop(); base.showTooltip(catalog.i18nc("@label", "This setting is normally calculated, but it currently has an absolute value set.\n\nClick to restore the calculated value.")) }
|
||||
onExited: base.showTooltip(base.tooltipText);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -143,6 +235,8 @@ Item {
|
|||
{
|
||||
id: controlContainer;
|
||||
|
||||
enabled: provider.isValueUsed
|
||||
|
||||
anchors.right: parent.right;
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
anchors.verticalCenter: parent.verticalCenter;
|
||||
|
|
|
@ -16,8 +16,6 @@ SettingItem
|
|||
|
||||
anchors.fill: parent
|
||||
|
||||
property alias hovered: mouseArea.containsMouse;
|
||||
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: !enabled ? UM.Theme.getColor("setting_control_disabled_border") : hovered ? UM.Theme.getColor("setting_control_border_highlight") : UM.Theme.getColor("setting_control_border")
|
||||
|
||||
|
@ -74,7 +72,7 @@ SettingItem
|
|||
{
|
||||
id: mouseArea
|
||||
anchors.fill: parent;
|
||||
hoverEnabled: true;
|
||||
//hoverEnabled: true;
|
||||
cursorShape: Qt.IBeamCursor
|
||||
}
|
||||
|
||||
|
@ -92,21 +90,11 @@ SettingItem
|
|||
|
||||
Keys.onReleased:
|
||||
{
|
||||
// text = text.replace(",", ".") // User convenience. We use dots for decimal values
|
||||
// if(parseFloat(text) != base.parentValue)
|
||||
// {
|
||||
// base.valueChanged(parseFloat(text));
|
||||
// }
|
||||
|
||||
propertyProvider.setPropertyValue("value", text)
|
||||
}
|
||||
|
||||
onEditingFinished:
|
||||
{
|
||||
// if(parseFloat(text) != base.parentValue)
|
||||
// {
|
||||
// base.valueChanged(parseFloat(text));
|
||||
// }
|
||||
propertyProvider.setPropertyValue("value", text)
|
||||
}
|
||||
|
||||
|
@ -123,33 +111,9 @@ SettingItem
|
|||
{
|
||||
target: input
|
||||
property: "text"
|
||||
value: control.format(propertyProvider.properties.value)
|
||||
value: propertyProvider.properties.value
|
||||
when: !input.activeFocus
|
||||
}
|
||||
}
|
||||
|
||||
//Rounds a floating point number to 4 decimals. This prevents floating
|
||||
//point rounding errors.
|
||||
//
|
||||
//input: The number to round.
|
||||
//decimals: The number of decimals (digits after the radix) to round to.
|
||||
//return: The rounded number.
|
||||
function roundFloat(input, decimals)
|
||||
{
|
||||
//First convert to fixed-point notation to round the number to 4 decimals and not introduce new floating point errors.
|
||||
//Then convert to a string (is implicit). The fixed-point notation will be something like "3.200".
|
||||
//Then remove any trailing zeroes and the radix.
|
||||
return input.toFixed(decimals).replace(/\.?0*$/, ""); //Match on periods, if any ( \.? ), followed by any number of zeros ( 0* ), then the end of string ( $ ).
|
||||
}
|
||||
|
||||
//Formats a value for display in the text field.
|
||||
//
|
||||
//This correctly handles formatting of float values.
|
||||
//
|
||||
//input: The string value to format.
|
||||
//return: The formatted string.
|
||||
function format(inputValue) {
|
||||
return parseFloat(inputValue) ? roundFloat(parseFloat(inputValue), 4) : inputValue //If it's a float, round to four decimals.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,8 +9,6 @@ import QtQuick.Layouts 1.1
|
|||
import UM 1.2 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
import ".."
|
||||
|
||||
ScrollView
|
||||
{
|
||||
id: base;
|
||||
|
@ -26,11 +24,22 @@ ScrollView
|
|||
{
|
||||
id: contents
|
||||
spacing: UM.Theme.getSize("default_lining").height;
|
||||
cacheBuffer: 1000000; // Set a large cache to effectively just cache every list item.
|
||||
|
||||
model: UM.SettingDefinitionsModel {
|
||||
id: definitionsModel;
|
||||
containerId: Cura.MachineManager.activeDefinitionId
|
||||
visibilityHandler: UM.SettingPreferenceVisibilityHandler {}
|
||||
exclude: ["machine_settings"]
|
||||
visibilityHandler: UM.SettingPreferenceVisibilityHandler { }
|
||||
|
||||
filter:
|
||||
{
|
||||
if(ExtruderManager.activeExtruderStackId)
|
||||
{
|
||||
return { "settable_per_extruder": true }
|
||||
}
|
||||
return { }
|
||||
}
|
||||
}
|
||||
|
||||
delegate: Loader
|
||||
|
@ -50,8 +59,9 @@ ScrollView
|
|||
|
||||
//Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
|
||||
//In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes,
|
||||
//causing nasty issues when selecting differnt options. So disable asynchronous loading of enum type completely.
|
||||
asynchronous: model.type != "enum"
|
||||
//causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely.
|
||||
asynchronous: model.type != "enum" && model.type != "extruder"
|
||||
active: model.type != undefined
|
||||
|
||||
source:
|
||||
{
|
||||
|
@ -63,6 +73,8 @@ ScrollView
|
|||
return "SettingTextField.qml"
|
||||
case "enum":
|
||||
return "SettingComboBox.qml"
|
||||
case "extruder":
|
||||
return "SettingExtruder.qml"
|
||||
case "bool":
|
||||
return "SettingCheckBox.qml"
|
||||
case "str":
|
||||
|
@ -78,8 +90,8 @@ ScrollView
|
|||
{
|
||||
id: provider
|
||||
|
||||
containerStackId: Cura.MachineManager.activeMachineId
|
||||
key: model.key
|
||||
containerStackId: ExtruderManager.activeExtruderStackId ? ExtruderManager.activeExtruderStackId : Cura.MachineManager.activeMachineId
|
||||
key: model.key ? model.key : ""
|
||||
watchedProperties: [ "value", "enabled", "state", "validationState" ]
|
||||
storeIndex: 0
|
||||
}
|
||||
|
@ -134,7 +146,7 @@ ScrollView
|
|||
//: Settings context menu action
|
||||
text: catalog.i18nc("@action:menu", "Configure setting visiblity...");
|
||||
|
||||
onTriggered: Actions.configureSettingVisibility.trigger(contextMenu);
|
||||
onTriggered: Cura.Actions.configureSettingVisibility.trigger(contextMenu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,119 +0,0 @@
|
|||
// Copyright (c) 2015 Ultimaker B.V.
|
||||
// Uranium is released under the terms of the AGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.1
|
||||
import QtQuick.Controls 1.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Dialogs 1.1
|
||||
import QtQuick.Controls.Styles 1.1
|
||||
import QtQml 2.2
|
||||
|
||||
import UM 1.1 as UM
|
||||
|
||||
import "../Preferences"
|
||||
|
||||
PreferencesPage
|
||||
{
|
||||
//: Machine configuration page title.
|
||||
title: catalog.i18nc("@title:tab","Machine");
|
||||
id: base
|
||||
|
||||
contents: ColumnLayout
|
||||
{
|
||||
z: base.z
|
||||
anchors.fill: parent;
|
||||
UM.I18nCatalog { id: catalog; name:"uranium"}
|
||||
RowLayout
|
||||
{
|
||||
//: Active machine combo box label
|
||||
Label { text: catalog.i18nc("@label:listbox","Active Machine:"); }
|
||||
ComboBox
|
||||
{
|
||||
id: machineCombo;
|
||||
Layout.fillWidth: true;
|
||||
model: UM.Models.machinesModel;
|
||||
textRole: "name";
|
||||
onActivated:
|
||||
{
|
||||
if(index != -1)
|
||||
UM.Models.machinesModel.setActive(index);
|
||||
}
|
||||
|
||||
Connections
|
||||
{
|
||||
id: machineChange
|
||||
target: UM.Application
|
||||
onMachineChanged: machineCombo.currentIndex = machineCombo.find(UM.Application.machineName);
|
||||
}
|
||||
|
||||
Component.onCompleted: machineCombo.currentIndex = machineCombo.find(UM.Application.machineName);
|
||||
}
|
||||
//: Remove active machine button
|
||||
Button { text: catalog.i18nc("@action:button","Remove"); onClicked: confirmRemoveDialog.open(); }
|
||||
}
|
||||
ScrollView
|
||||
{
|
||||
id: settingsScrollView
|
||||
Layout.fillWidth: true;
|
||||
Layout.fillHeight: true;
|
||||
|
||||
ListView
|
||||
{
|
||||
id: settingsListView
|
||||
delegate: settingDelegate
|
||||
model: UM.Models.settingsModel
|
||||
x: 0
|
||||
|
||||
section.property: "category"
|
||||
section.delegate: Label { text: section }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component
|
||||
{
|
||||
id: settingDelegate
|
||||
CheckBox
|
||||
{
|
||||
z:0
|
||||
id: settingCheckBox
|
||||
text: model.name;
|
||||
x: depth * 25
|
||||
checked: model.visibility
|
||||
onClicked: ListView.view.model.setVisibility(model.key, checked)
|
||||
//enabled: !model.disabled
|
||||
|
||||
onHoveredChanged:
|
||||
{
|
||||
if(hovered)
|
||||
{
|
||||
var xPos = parent.x + settingCheckBox.width;
|
||||
var yPos = parent.y;
|
||||
toolTip.show(model.description, 1000, 200, undefined, undefined) //tooltip-text, hover-delay in msec, animation-length in msec, position X, position Y (both y en x == undefined: gives the tooltip a standard placement in the right corner)
|
||||
} else
|
||||
{
|
||||
toolTip.hide(0, 0)//hover-delay in msec, animation-length in msec
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PreferencesToolTip
|
||||
{
|
||||
id: toolTip;
|
||||
}
|
||||
|
||||
MessageDialog
|
||||
{
|
||||
id: confirmRemoveDialog;
|
||||
|
||||
icon: StandardIcon.Question;
|
||||
//: Remove machine confirmation dialog title
|
||||
title: catalog.i18nc("@title:window","Confirm Machine Deletion");
|
||||
//: Remove machine confirmation dialog text
|
||||
text: catalog.i18nc("@label","Are you sure you wish to remove the machine?");
|
||||
standardButtons: StandardButton.Yes | StandardButton.No;
|
||||
|
||||
onYes: UM.Models.machinesModel.removeMachine(machineCombo.currentIndex);
|
||||
}
|
||||
}
|
|
@ -12,13 +12,6 @@ Rectangle
|
|||
{
|
||||
id: base;
|
||||
|
||||
property Action addMachineAction;
|
||||
property Action configureMachinesAction;
|
||||
property Action addProfileAction;
|
||||
property Action updateProfileAction;
|
||||
property Action resetProfileAction;
|
||||
property Action manageProfilesAction;
|
||||
property Action configureSettingsAction;
|
||||
property int currentModeIndex;
|
||||
|
||||
color: UM.Theme.getColor("sidebar");
|
||||
|
@ -52,20 +45,8 @@ Rectangle
|
|||
width: parent.width
|
||||
height: totalHeightHeader
|
||||
|
||||
addMachineAction: base.addMachineAction;
|
||||
configureMachinesAction: base.configureMachinesAction;
|
||||
}
|
||||
|
||||
ProfileSetup {
|
||||
id: profileItem
|
||||
addProfileAction: base.addProfileAction
|
||||
updateProfileAction: base.updateProfileAction
|
||||
resetProfileAction: base.resetProfileAction
|
||||
manageProfilesAction: base.manageProfilesAction
|
||||
anchors.top: header.bottom
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
width: parent.width
|
||||
height: totalHeightProfileSetup
|
||||
|
||||
onShowTooltip: base.showTooltip(item, location, text)
|
||||
onHideTooltip: base.hideTooltip()
|
||||
|
@ -76,7 +57,7 @@ Rectangle
|
|||
width: parent.width
|
||||
height: UM.Theme.getSize("sidebar_lining").height
|
||||
color: UM.Theme.getColor("sidebar_lining")
|
||||
anchors.top: profileItem.bottom
|
||||
anchors.top: header.bottom
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
}
|
||||
|
||||
|
|
|
@ -8,54 +8,54 @@ import QtQuick.Controls.Styles 1.1
|
|||
import UM 1.2 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
Item
|
||||
Column
|
||||
{
|
||||
id: base;
|
||||
// Machine Setup
|
||||
property Action addMachineAction;
|
||||
property Action configureMachinesAction;
|
||||
UM.I18nCatalog { id: catalog; name:"cura"}
|
||||
|
||||
property int totalHeightHeader: childrenRect.height
|
||||
property int currentExtruderIndex;
|
||||
|
||||
Rectangle {
|
||||
id: sidebarTabRow
|
||||
width: base.width
|
||||
height: 0
|
||||
anchors.top: parent.top
|
||||
color: UM.Theme.getColor("sidebar_header_bar")
|
||||
}
|
||||
spacing: UM.Theme.getSize("default_margin").height
|
||||
|
||||
Rectangle {
|
||||
signal showTooltip(Item item, point location, string text)
|
||||
signal hideTooltip()
|
||||
|
||||
Row
|
||||
{
|
||||
id: machineSelectionRow
|
||||
width: base.width
|
||||
height: UM.Theme.getSize("sidebar_setup").height
|
||||
anchors.top: sidebarTabRow.bottom
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
Label{
|
||||
anchors
|
||||
{
|
||||
left: parent.left
|
||||
leftMargin: UM.Theme.getSize("default_margin").width
|
||||
right: parent.right
|
||||
rightMargin: UM.Theme.getSize("default_margin").width
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
id: machineSelectionLabel
|
||||
//: Machine selection label
|
||||
text: catalog.i18nc("@label:listbox","Printer:");
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
text: catalog.i18nc("@label:listbox", "Printer:");
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
font: UM.Theme.getFont("default");
|
||||
color: UM.Theme.getColor("text");
|
||||
|
||||
width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width
|
||||
}
|
||||
|
||||
ToolButton {
|
||||
ToolButton
|
||||
{
|
||||
id: machineSelection
|
||||
text: Cura.MachineManager.activeMachineName;
|
||||
width: parent.width/100*55
|
||||
|
||||
height: UM.Theme.getSize("setting_control").height
|
||||
tooltip: Cura.MachineManager.activeMachineName;
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
style: UM.Theme.styles.sidebar_header_button
|
||||
|
||||
width: parent.width * 0.55 + UM.Theme.getSize("default_margin").width
|
||||
|
||||
menu: Menu
|
||||
{
|
||||
id: machineSelectionMenu
|
||||
|
@ -81,119 +81,114 @@ Item
|
|||
|
||||
MenuSeparator { }
|
||||
|
||||
MenuItem { action: base.addMachineAction; }
|
||||
MenuItem { action: base.configureMachinesAction; }
|
||||
MenuItem { action: Cura.Actions.addMachine; }
|
||||
MenuItem { action: Cura.Actions.configureMachines; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: extruderSelection
|
||||
width: parent.width/100*55
|
||||
ListView
|
||||
{
|
||||
id: extrudersList
|
||||
property var index: 0
|
||||
|
||||
visible: machineExtruderCount.properties.value > 1
|
||||
height: visible ? UM.Theme.getSize("sidebar_header_mode_toggle").height : 0
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
anchors.top: machineSelectionRow.bottom
|
||||
anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
|
||||
Component{
|
||||
id: wizardDelegate
|
||||
Button {
|
||||
height: extruderSelection.height
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: model.index * (extruderSelection.width / machineExtruderCount.properties.value)
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: parent.width / machineExtruderCount.properties.value
|
||||
text: model.text
|
||||
exclusiveGroup: extruderMenuGroup;
|
||||
checkable: true;
|
||||
checked: base.currentExtruderIndex == index
|
||||
onClicked: base.currentExtruderIndex = index
|
||||
height: UM.Theme.getSize("sidebar_header_mode_toggle").height
|
||||
|
||||
style: ButtonStyle {
|
||||
background: Rectangle {
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: control.checked ? UM.Theme.getColor("toggle_checked_border") :
|
||||
control.pressed ? UM.Theme.getColor("toggle_active_border") :
|
||||
control.hovered ? UM.Theme.getColor("toggle_hovered_border") : UM.Theme.getColor("toggle_unchecked_border")
|
||||
color: control.checked ? UM.Theme.getColor("toggle_checked") :
|
||||
control.pressed ? UM.Theme.getColor("toggle_active") :
|
||||
control.hovered ? UM.Theme.getColor("toggle_hovered") : UM.Theme.getColor("toggle_unchecked")
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
Label {
|
||||
anchors.centerIn: parent
|
||||
color: control.checked ? UM.Theme.getColor("toggle_checked_text") :
|
||||
control.pressed ? UM.Theme.getColor("toggle_active_text") :
|
||||
control.hovered ? UM.Theme.getColor("toggle_hovered_text") : UM.Theme.getColor("toggle_unchecked_text")
|
||||
font: UM.Theme.getFont("default")
|
||||
text: control.text;
|
||||
}
|
||||
boundsBehavior: Flickable.StopAtBounds
|
||||
|
||||
anchors
|
||||
{
|
||||
left: parent.left
|
||||
leftMargin: UM.Theme.getSize("default_margin").width
|
||||
right: parent.right
|
||||
rightMargin: UM.Theme.getSize("default_margin").width
|
||||
}
|
||||
|
||||
ExclusiveGroup { id: extruderMenuGroup; }
|
||||
|
||||
orientation: ListView.Horizontal
|
||||
|
||||
model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: true }
|
||||
|
||||
delegate: Button
|
||||
{
|
||||
height: ListView.view.height
|
||||
width: ListView.view.width / extrudersModel.rowCount()
|
||||
|
||||
text: model.name
|
||||
exclusiveGroup: extruderMenuGroup;
|
||||
checkable: true;
|
||||
checked: base.currentExtruderIndex == index
|
||||
|
||||
onClicked:
|
||||
{
|
||||
focus = true; //Changing focus applies the currently-being-typed values so it can change the displayed setting values.
|
||||
base.currentExtruderIndex = index;
|
||||
ExtruderManager.setActiveExtruderIndex(index);
|
||||
}
|
||||
|
||||
style: ButtonStyle
|
||||
{
|
||||
background: Rectangle
|
||||
{
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: control.checked ? UM.Theme.getColor("toggle_checked_border") :
|
||||
control.pressed ? UM.Theme.getColor("toggle_active_border") :
|
||||
control.hovered ? UM.Theme.getColor("toggle_hovered_border") : UM.Theme.getColor("toggle_unchecked_border")
|
||||
color: control.checked ? UM.Theme.getColor("toggle_checked") :
|
||||
control.pressed ? UM.Theme.getColor("toggle_active") :
|
||||
control.hovered ? UM.Theme.getColor("toggle_hovered") : UM.Theme.getColor("toggle_unchecked")
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
|
||||
Label
|
||||
{
|
||||
anchors.centerIn: parent
|
||||
color: control.checked ? UM.Theme.getColor("toggle_checked_text") :
|
||||
control.pressed ? UM.Theme.getColor("toggle_active_text") :
|
||||
control.hovered ? UM.Theme.getColor("toggle_hovered_text") : UM.Theme.getColor("toggle_unchecked_text")
|
||||
|
||||
font: UM.Theme.getFont("default")
|
||||
text: control.text;
|
||||
}
|
||||
label: Item { }
|
||||
}
|
||||
label: Item { }
|
||||
}
|
||||
}
|
||||
ExclusiveGroup { id: extruderMenuGroup; }
|
||||
ListView{
|
||||
id: extrudersList
|
||||
property var index: 0
|
||||
model: extrudersListModel
|
||||
delegate: wizardDelegate
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
width: parent.width
|
||||
}
|
||||
}
|
||||
|
||||
ListModel
|
||||
Row
|
||||
{
|
||||
id: extrudersListModel
|
||||
Component.onCompleted: populateExtruderModel()
|
||||
}
|
||||
Connections
|
||||
{
|
||||
id: machineChange
|
||||
target: Cura.MachineManager
|
||||
onGlobalContainerChanged: populateExtruderModel()
|
||||
}
|
||||
|
||||
function populateExtruderModel()
|
||||
{
|
||||
extrudersListModel.clear();
|
||||
for(var extruder = 0; extruder < machineExtruderCount.properties.value ; extruder++) {
|
||||
extrudersListModel.append({
|
||||
text: catalog.i18nc("@label", "Extruder %1").arg(extruder + 1)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: variantRow
|
||||
anchors.top: extruderSelection.visible ? extruderSelection.bottom : machineSelectionRow.bottom
|
||||
anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
|
||||
width: base.width
|
||||
height: visible ? UM.Theme.getSize("sidebar_setup").height : 0
|
||||
|
||||
height: UM.Theme.getSize("sidebar_setup").height
|
||||
visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials
|
||||
|
||||
Label{
|
||||
anchors
|
||||
{
|
||||
left: parent.left
|
||||
leftMargin: UM.Theme.getSize("default_margin").width
|
||||
right: parent.right
|
||||
rightMargin: UM.Theme.getSize("default_margin").width
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
id: variantLabel
|
||||
text: (Cura.MachineManager.hasVariants && Cura.MachineManager.hasMaterials) ? catalog.i18nc("@label","Nozzle & Material:"):
|
||||
Cura.MachineManager.hasVariants ? catalog.i18nc("@label","Nozzle:") : catalog.i18nc("@label","Material:");
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: parent.width/100*45
|
||||
width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width
|
||||
font: UM.Theme.getFont("default");
|
||||
color: UM.Theme.getColor("text");
|
||||
}
|
||||
|
||||
Rectangle
|
||||
{
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
||||
width: parent.width/100*55
|
||||
width: parent.width * 0.55 + UM.Theme.getSize("default_margin").width
|
||||
height: UM.Theme.getSize("setting_control").height
|
||||
|
||||
ToolButton {
|
||||
|
@ -230,13 +225,6 @@ Item
|
|||
onTriggered:
|
||||
{
|
||||
Cura.MachineManager.setActiveVariant(model.id);
|
||||
/*if (typeof(model) !== "undefined" && !model.active) {
|
||||
//Selecting a variant was canceled; undo menu selection
|
||||
variantSelectionInstantiator.model.setProperty(index, "active", false);
|
||||
var activeMachineVariantName = UM.MachineManager.activeMachineVariant;
|
||||
var activeMachineVariantIndex = variantSelectionInstantiator.model.find("name", activeMachineVariantName);
|
||||
variantSelectionInstantiator.model.setProperty(activeMachineVariantIndex, "active", true);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
onObjectAdded: variantsSelectionMenu.insertItem(index, object)
|
||||
|
@ -266,7 +254,23 @@ Item
|
|||
id: materialSelectionInstantiator
|
||||
model: UM.InstanceContainersModel
|
||||
{
|
||||
filter: { "type": "material", "definition": Cura.MachineManager.activeDefinitionId }
|
||||
filter:
|
||||
{
|
||||
var result = { "type": "material" }
|
||||
if(Cura.MachineManager.filterMaterialsByMachine)
|
||||
{
|
||||
result.definition = Cura.MachineManager.activeDefinitionId
|
||||
if(Cura.MachineManager.hasVariants)
|
||||
{
|
||||
result.variant = Cura.MachineManager.activeVariantId
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result.definition = "fdmprinter"
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
MenuItem
|
||||
{
|
||||
|
@ -277,13 +281,6 @@ Item
|
|||
onTriggered:
|
||||
{
|
||||
Cura.MachineManager.setActiveMaterial(model.id);
|
||||
/*if (typeof(model) !== "undefined" && !model.active) {
|
||||
//Selecting a material was canceled; undo menu selection
|
||||
materialSelectionInstantiator.model.setProperty(index, "active", false);
|
||||
var activeMaterialName = Cura.MachineManager.activeMaterialName
|
||||
var activeMaterialIndex = materialSelectionInstantiator.model.find("name", activeMaterialName);
|
||||
materialSelectionInstantiator.model.setProperty(activeMaterialIndex, "active", true);
|
||||
}*/
|
||||
}
|
||||
}
|
||||
onObjectAdded: materialSelectionMenu.insertItem(index, object)
|
||||
|
@ -296,6 +293,147 @@ Item
|
|||
}
|
||||
}
|
||||
|
||||
Row
|
||||
{
|
||||
id: globalProfileRow
|
||||
height: UM.Theme.getSize("sidebar_setup").height
|
||||
|
||||
anchors
|
||||
{
|
||||
left: parent.left
|
||||
leftMargin: UM.Theme.getSize("default_margin").width
|
||||
right: parent.right
|
||||
rightMargin: UM.Theme.getSize("default_margin").width
|
||||
}
|
||||
|
||||
|
||||
Label
|
||||
{
|
||||
id: globalProfileLabel
|
||||
text: catalog.i18nc("@label","Profile:");
|
||||
width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width
|
||||
font: UM.Theme.getFont("default");
|
||||
color: UM.Theme.getColor("text");
|
||||
}
|
||||
|
||||
ToolButton
|
||||
{
|
||||
id: globalProfileSelection
|
||||
text: Cura.MachineManager.activeQualityName
|
||||
width: parent.width * 0.55 + UM.Theme.getSize("default_margin").width
|
||||
height: UM.Theme.getSize("setting_control").height
|
||||
tooltip: Cura.MachineManager.activeQualityName
|
||||
style: UM.Theme.styles.sidebar_header_button
|
||||
|
||||
menu: Menu
|
||||
{
|
||||
id: profileSelectionMenu
|
||||
Instantiator
|
||||
{
|
||||
id: profileSelectionInstantiator
|
||||
model: UM.InstanceContainersModel
|
||||
{
|
||||
filter:
|
||||
{
|
||||
var result = { "type": "quality" };
|
||||
if(Cura.MachineManager.filterQualityByMachine)
|
||||
{
|
||||
result.definition = Cura.MachineManager.activeDefinitionId;
|
||||
if(Cura.MachineManager.hasMaterials)
|
||||
{
|
||||
result.material = Cura.MachineManager.activeMaterialId;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
result.definition = "fdmprinter"
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
property int separatorIndex: -1
|
||||
|
||||
Loader {
|
||||
property QtObject model_data: model
|
||||
property int model_index: index
|
||||
sourceComponent: menuItemDelegate
|
||||
}
|
||||
onObjectAdded:
|
||||
{
|
||||
//Insert a separator between readonly and custom profiles
|
||||
if(separatorIndex < 0 && index > 0)
|
||||
{
|
||||
if(model.getItem(index-1).readOnly != model.getItem(index).readOnly)
|
||||
{
|
||||
profileSelectionMenu.insertSeparator(index);
|
||||
separatorIndex = index;
|
||||
}
|
||||
}
|
||||
//Because of the separator, custom profiles move one index lower
|
||||
profileSelectionMenu.insertItem((model.getItem(index).readOnly) ? index : index + 1, object.item);
|
||||
}
|
||||
onObjectRemoved:
|
||||
{
|
||||
//When adding a profile, the menu is rebuilt by removing all items.
|
||||
//If a separator was added, we need to remove that too.
|
||||
if(separatorIndex >= 0)
|
||||
{
|
||||
profileSelectionMenu.removeItem(profileSelectionMenu.items[separatorIndex])
|
||||
separatorIndex = -1;
|
||||
}
|
||||
profileSelectionMenu.removeItem(object.item);
|
||||
}
|
||||
}
|
||||
ExclusiveGroup { id: profileSelectionMenuGroup; }
|
||||
|
||||
Component
|
||||
{
|
||||
id: menuItemDelegate
|
||||
MenuItem
|
||||
{
|
||||
id: item
|
||||
text: model_data ? model_data.name : ""
|
||||
checkable: true
|
||||
checked: model_data != null ? Cura.MachineManager.activeQualityId == model_data.id : false
|
||||
exclusiveGroup: profileSelectionMenuGroup;
|
||||
onTriggered: Cura.MachineManager.setActiveQuality(model_data.id)
|
||||
}
|
||||
}
|
||||
|
||||
MenuSeparator { }
|
||||
MenuItem { action: Cura.Actions.addProfile }
|
||||
MenuItem { action: Cura.Actions.updateProfile }
|
||||
MenuItem { action: Cura.Actions.resetProfile }
|
||||
MenuSeparator { }
|
||||
MenuItem { action: Cura.Actions.manageProfiles }
|
||||
}
|
||||
|
||||
UM.SimpleButton
|
||||
{
|
||||
id: customisedSettings
|
||||
|
||||
visible: Cura.MachineManager.hasUserSettings
|
||||
height: parent.height * 0.6
|
||||
width: parent.height * 0.6
|
||||
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("setting_preferences_button_margin").width - UM.Theme.getSize("default_margin").width
|
||||
|
||||
color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button");
|
||||
iconSource: UM.Theme.getIcon("star");
|
||||
|
||||
onClicked: Cura.Actions.manageProfiles.trigger()
|
||||
onEntered:
|
||||
{
|
||||
var content = catalog.i18nc("@tooltip","Some setting values are different from the values stored in the profile.\n\nClick to open the profile manager.")
|
||||
base.showTooltip(globalProfileRow, Qt.point(0, globalProfileRow.height / 2), content)
|
||||
}
|
||||
onExited: base.hideTooltip()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UM.SettingPropertyProvider
|
||||
{
|
||||
id: machineExtruderCount
|
||||
|
@ -305,4 +443,6 @@ Item
|
|||
watchedProperties: [ "value" ]
|
||||
storeIndex: 0
|
||||
}
|
||||
|
||||
UM.I18nCatalog { id: catalog; name:"cura" }
|
||||
}
|
||||
|
|
|
@ -28,13 +28,13 @@ Item
|
|||
id: infillCellLeft
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
width: base.width/100* 35 - UM.Theme.getSize("default_margin").width
|
||||
width: base.width / 100 * 35 - UM.Theme.getSize("default_margin").width
|
||||
height: childrenRect.height
|
||||
|
||||
Label{
|
||||
id: infillLabel
|
||||
//: Infill selection label
|
||||
text: catalog.i18nc("@label","Infill:");
|
||||
text: catalog.i18nc("@label", "Infill:");
|
||||
font: UM.Theme.getFont("default");
|
||||
color: UM.Theme.getColor("text");
|
||||
anchors.top: parent.top
|
||||
|
@ -85,7 +85,7 @@ Item
|
|||
{
|
||||
return UM.Theme.getColor("setting_control_selected")
|
||||
}
|
||||
else if(mousearea.containsMouse)
|
||||
else if(infillMouseArea.containsMouse)
|
||||
{
|
||||
return UM.Theme.getColor("setting_control_border_highlight")
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ Item
|
|||
}
|
||||
|
||||
MouseArea {
|
||||
id: mousearea
|
||||
id: infillMouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked: {
|
||||
|
@ -187,28 +187,29 @@ Item
|
|||
anchors.left: parent.left
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
anchors.verticalCenter: brimCheckBox.verticalCenter
|
||||
width: parent.width/100*35 - 3 * UM.Theme.getSize("default_margin").width
|
||||
width: parent.width / 100 * 35 - 3 * UM.Theme.getSize("default_margin").width
|
||||
//: Bed adhesion label
|
||||
text: catalog.i18nc("@label:listbox","Bed Adhesion:");
|
||||
text: catalog.i18nc("@label:listbox", "Bed Adhesion:");
|
||||
font: UM.Theme.getFont("default");
|
||||
color: UM.Theme.getColor("text");
|
||||
}
|
||||
|
||||
CheckBox{
|
||||
id: brimCheckBox
|
||||
property bool hovered_ex: false
|
||||
property alias _hovered: brimMouseArea.containsMouse
|
||||
|
||||
anchors.top: parent.top
|
||||
anchors.left: adhesionHelperLabel.right
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
|
||||
//: Setting enable skirt adhesion checkbox
|
||||
text: catalog.i18nc("@option:check","Print Brim");
|
||||
text: catalog.i18nc("@option:check", "Print Brim");
|
||||
style: UM.Theme.styles.checkbox;
|
||||
|
||||
checked: platformAdhesionType.properties.value == "brim"
|
||||
|
||||
MouseArea {
|
||||
id: brimMouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked:
|
||||
|
@ -217,13 +218,11 @@ Item
|
|||
}
|
||||
onEntered:
|
||||
{
|
||||
parent.hovered_ex = true
|
||||
base.showTooltip(brimCheckBox, Qt.point(-brimCheckBox.x, 0),
|
||||
catalog.i18nc("@label", "Enable printing a brim. This will add a single-layer-thick flat area around your object which is easy to cut off afterwards."));
|
||||
}
|
||||
onExited:
|
||||
{
|
||||
parent.hovered_ex = false
|
||||
base.hideTooltip();
|
||||
}
|
||||
}
|
||||
|
@ -234,9 +233,9 @@ Item
|
|||
anchors.left: parent.left
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
anchors.verticalCenter: supportCheckBox.verticalCenter
|
||||
width: parent.width/100*35 - 3 * UM.Theme.getSize("default_margin").width
|
||||
width: parent.width / 100 * 35 - 3 * UM.Theme.getSize("default_margin").width
|
||||
//: Support label
|
||||
text: catalog.i18nc("@label:listbox","Support:");
|
||||
text: catalog.i18nc("@label:listbox", "Support:");
|
||||
font: UM.Theme.getFont("default");
|
||||
color: UM.Theme.getColor("text");
|
||||
}
|
||||
|
@ -244,7 +243,7 @@ Item
|
|||
CheckBox{
|
||||
id: supportCheckBox
|
||||
visible: machineExtruderCount.properties.value <= 1
|
||||
property bool hovered_ex: false
|
||||
property alias _hovered: supportMouseArea.containsMouse
|
||||
|
||||
anchors.top: brimCheckBox.bottom
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
|
@ -252,11 +251,12 @@ Item
|
|||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
|
||||
//: Setting enable support checkbox
|
||||
text: catalog.i18nc("@option:check","Print Support Structure");
|
||||
text: catalog.i18nc("@option:check", "Print Support Structure");
|
||||
style: UM.Theme.styles.checkbox;
|
||||
|
||||
checked: supportEnabled.properties.value == "True"
|
||||
MouseArea {
|
||||
id: supportMouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked:
|
||||
|
@ -265,13 +265,11 @@ Item
|
|||
}
|
||||
onEntered:
|
||||
{
|
||||
parent.hovered_ex = true
|
||||
base.showTooltip(supportCheckBox, Qt.point(-supportCheckBox.x, 0),
|
||||
catalog.i18nc("@label", "Enable printing support structures. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air."));
|
||||
}
|
||||
onExited:
|
||||
{
|
||||
parent.hovered_ex = false
|
||||
base.hideTooltip();
|
||||
}
|
||||
}
|
||||
|
@ -286,10 +284,10 @@ Item
|
|||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||
anchors.left: supportHelperLabel.right
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
width: parent.width/100*45
|
||||
width: parent.width / 100 * 45
|
||||
|
||||
style: UM.Theme.styles.combobox
|
||||
property bool hovered_ex: false
|
||||
property alias _hovered: supportExtruderMouseArea.containsMouse
|
||||
|
||||
currentIndex: supportEnabled.properties.value == "True" ? parseFloat(supportExtruderNr.properties.value) + 1 : 0
|
||||
onActivated: {
|
||||
|
@ -301,18 +299,17 @@ Item
|
|||
}
|
||||
}
|
||||
MouseArea {
|
||||
id: supportExtruderMouseArea
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
acceptedButtons: Qt.NoButton
|
||||
onEntered:
|
||||
{
|
||||
parent.hovered_ex = true
|
||||
base.showTooltip(supportExtruderCombobox, Qt.point(-supportExtruderCombobox.x, 0),
|
||||
catalog.i18nc("@label", "Select which extruder to use for support. This will build up supporting structures below the model to prevent the model from sagging or printing in mid air."));
|
||||
}
|
||||
onExited:
|
||||
{
|
||||
parent.hovered_ex = false
|
||||
base.hideTooltip();
|
||||
}
|
||||
}
|
||||
|
@ -358,7 +355,7 @@ Item
|
|||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
wrapMode: Text.WordWrap
|
||||
//: Tips label
|
||||
text: catalog.i18nc("@label","Need help improving your prints? Read the <a href='%1'>Ultimaker Troubleshooting Guides</a>").arg("https://ultimaker.com/en/troubleshooting");
|
||||
text: catalog.i18nc("@label", "Need help improving your prints? 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")
|
||||
|
@ -374,8 +371,6 @@ Item
|
|||
key: "infill_sparse_density"
|
||||
watchedProperties: [ "value" ]
|
||||
storeIndex: 0
|
||||
|
||||
onPropertiesChanged: console.log(properties.value)
|
||||
}
|
||||
|
||||
UM.SettingPropertyProvider
|
||||
|
|
|
@ -19,6 +19,7 @@ UM.PreferencesPage
|
|||
{
|
||||
UM.Preferences.resetPreference("view/show_overhang");
|
||||
UM.Preferences.resetPreference("view/center_on_select");
|
||||
UM.Preferences.resetPreference("view/top_layer_count");
|
||||
}
|
||||
|
||||
Column
|
||||
|
@ -57,12 +58,38 @@ UM.PreferencesPage
|
|||
}
|
||||
}
|
||||
|
||||
UM.TooltipArea {
|
||||
width: childrenRect.width;
|
||||
height: childrenRect.height;
|
||||
text: catalog.i18nc("@info:tooltip","Display 5 top layers in layer view or only the top-most layer. Rendering 5 layers takes longer, but may show more information.")
|
||||
|
||||
CheckBox
|
||||
{
|
||||
id: topLayerCheckbox
|
||||
text: catalog.i18nc("@action:button","Display five top layers in layer view.");
|
||||
checked: UM.Preferences.getValue("view/top_layer_count") == 5
|
||||
onClicked:
|
||||
{
|
||||
if(UM.Preferences.getValue("view/top_layer_count") == 5)
|
||||
{
|
||||
UM.Preferences.setValue("view/top_layer_count", 1)
|
||||
}
|
||||
else
|
||||
{
|
||||
UM.Preferences.setValue("view/top_layer_count", 5)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: UM.Preferences
|
||||
onPreferenceChanged:
|
||||
{
|
||||
overhangCheckbox.checked = boolCheck(UM.Preferences.getValue("view/show_overhang"))
|
||||
centerCheckbox.checked = boolCheck(UM.Preferences.getValue("view/center_on_select"))
|
||||
topLayerCheckbox = UM.Preferences.getValue("view/top_layer_count") == 5
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
module Cura
|
||||
|
||||
singleton Actions 1.0 Actions.qml
|
|
@ -5,6 +5,9 @@ definition = fdmprinter
|
|||
|
||||
[metadata]
|
||||
type = quality
|
||||
weight = -3
|
||||
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
speed_topbottom = 15
|
||||
speed_infill = 80
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Low Quality
|
||||
definition = fdmprinter
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
weight = -1
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
infill_sparse_density = 10
|
||||
layer_height = 0.15
|
||||
cool_min_layer_time = 3
|
||||
|
@ -12,4 +16,3 @@ speed_wall_x = 80
|
|||
speed_infill = 100
|
||||
wall_thickness = 1
|
||||
speed_topbottom = 30
|
||||
|
|
@ -5,5 +5,6 @@ definition = fdmprinter
|
|||
|
||||
[metadata]
|
||||
type = quality
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_extended_plus_0.25_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 0.88
|
||||
top_bottom_thickness = 0.72
|
||||
infill_sparse_density = 22
|
||||
speed_print = 30
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 20
|
||||
cool_min_speed = 10
|
||||
cool_min_layer_time_fan_speed_max = 15
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_extended_plus_0.4_mm
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 0.7
|
||||
top_bottom_thickness = 0.75
|
||||
infill_sparse_density = 18
|
||||
speed_print = 55
|
||||
speed_wall = 40
|
||||
speed_topbottom = 30
|
||||
speed_travel = 150
|
||||
speed_layer_0 = 30
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 20
|
||||
cool_min_speed = 10
|
||||
cool_min_layer_time_fan_speed_max = 15
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_extended_plus_0.4_mm
|
||||
weight = -3
|
||||
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.72
|
||||
infill_sparse_density = 22
|
||||
speed_print = 45
|
||||
speed_wall = 30
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 20
|
||||
cool_min_speed = 10
|
||||
cool_min_layer_time_fan_speed_max = 15
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_extended_plus_0.4_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.1
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.8
|
||||
infill_sparse_density = 20
|
||||
speed_print = 45
|
||||
speed_wall = 30
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 20
|
||||
cool_min_speed = 10
|
||||
cool_min_layer_time_fan_speed_max = 15
|
|
@ -0,0 +1,23 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_extended_plus_0.6_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 1.59
|
||||
top_bottom_thickness = 1.2
|
||||
infill_sparse_density = 20
|
||||
speed_print = 40
|
||||
speed_infill = 55
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 50
|
||||
cool_min_speed = 20
|
||||
cool_min_layer_time_fan_speed_max = 20
|
||||
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_extended_plus_0.8_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.2
|
||||
wall_thickness = 2.1
|
||||
top_bottom_thickness = 1.2
|
||||
infill_sparse_density = 20
|
||||
speed_print = 40
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 50
|
||||
cool_min_speed = 15
|
||||
cool_min_layer_time_fan_speed_max = 25
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_extended_plus_0.25_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 0.88
|
||||
top_bottom_thickness = 0.72
|
||||
infill_sparse_density = 22
|
||||
speed_print = 30
|
||||
cool_min_layer_time = 2
|
||||
cool_fan_speed_min = 20
|
||||
cool_min_speed = 15
|
||||
cool_min_layer_time_fan_speed_max = 15
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_extended_plus_0.4_mm
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 0.7
|
||||
top_bottom_thickness = 0.75
|
||||
infill_sparse_density = 18
|
||||
speed_print = 45
|
||||
speed_wall = 40
|
||||
speed_travel = 150
|
||||
speed_layer_0 = 30
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 80
|
||||
cool_min_speed = 10
|
||||
cool_min_layer_time_fan_speed_max = 15
|
||||
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_extended_plus_0.4_mm
|
||||
weight = -3
|
||||
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.72
|
||||
infill_sparse_density = 22
|
||||
speed_print = 45
|
||||
speed_wall = 30
|
||||
cool_min_layer_time = 2
|
||||
cool_fan_speed_min = 80
|
||||
cool_min_speed = 15
|
||||
cool_min_layer_time_fan_speed_max = 15
|
|
@ -0,0 +1,22 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_extended_plus_0.4_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.1
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.8
|
||||
infill_sparse_density = 20
|
||||
speed_print = 45
|
||||
speed_wall = 30
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 80
|
||||
cool_min_speed = 10
|
||||
cool_min_layer_time_fan_speed_max = 15
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_extended_plus_0.6_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 1.59
|
||||
top_bottom_thickness = 1.2
|
||||
infill_sparse_density = 20
|
||||
speed_print = 40
|
||||
cool_min_layer_time = 5
|
||||
cool_fan_speed_min = 80
|
||||
cool_min_speed = 8
|
||||
cool_min_layer_time_fan_speed_max = 20
|
|
@ -0,0 +1,20 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_extended_plus_0.8_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.2
|
||||
wall_thickness = 2.1
|
||||
top_bottom_thickness = 1.2
|
||||
infill_sparse_density = 20
|
||||
speed_print = 40
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 80
|
||||
cool_min_speed = 8
|
||||
cool_min_layer_time_fan_speed_max = 25
|
|
@ -0,0 +1,18 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_pla_ultimaker2_extended_plus_0.25_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 0.88
|
||||
top_bottom_thickness = 0.72
|
||||
infill_sparse_density = 22
|
||||
speed_print = 30
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 10
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Fast Print
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = PLA
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_pla_ultimaker2_extended_plus_0.4_mm
|
||||
weight = -1
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 0.7
|
||||
top_bottom_thickness = 0.75
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = High Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = PLA
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_pla_ultimaker2_extended_plus_0.4_mm
|
||||
weight = -3
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.72
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = PLA
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_pla_ultimaker2_extended_plus_0.4_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.1
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.8
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.6 mm
|
||||
material = PLA
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
material = generic_pla_ultimaker2_extended_plus_0.6_mm
|
||||
type = quality
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 1.59
|
||||
top_bottom_thickness = 1.2
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Fast Print
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.8 mm
|
||||
material = PLA
|
||||
definition = ultimaker2_extended_plus
|
||||
|
||||
[metadata]
|
||||
material = generic_pla_ultimaker2_extended_plus_0.8_mm
|
||||
type = quality
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.2
|
||||
wall_thickness = 2.1
|
||||
top_bottom_thickness = 1.2
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = High Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.25 mm
|
||||
material = PLA
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_pla_ultimaker2_plus_0.25_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 0.88
|
||||
top_bottom_thickness = 0.72
|
22
resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg
Normal file
22
resources/quality/ultimaker2_plus/pla_0.4_fast.inst.cfg
Normal file
|
@ -0,0 +1,22 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_pla_ultimaker2_plus_0.4_mm
|
||||
weight = -1
|
||||
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 0.7
|
||||
top_bottom_thickness = 0.75
|
||||
infill_sparse_density = 18
|
||||
speed_print = 60
|
||||
speed_wall = 50
|
||||
speed_topbottom = 30
|
||||
speed_travel = 150
|
||||
speed_layer_0 = 30
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 10
|
19
resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg
Normal file
19
resources/quality/ultimaker2_plus/pla_0.4_high.inst.cfg
Normal file
|
@ -0,0 +1,19 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = High Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_pla_ultimaker2_plus_0.4_mm
|
||||
weight = -3
|
||||
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.72
|
||||
infill_sparse_density = 22
|
||||
speed_print = 50
|
||||
speed_topbottom = 20
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 10
|
19
resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg
Normal file
19
resources/quality/ultimaker2_plus/pla_0.4_normal.inst.cfg
Normal file
|
@ -0,0 +1,19 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_pla_ultimaker2_plus_0.4_mm
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.1
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.8
|
||||
infill_sparse_density = 20
|
||||
speed_print = 50
|
||||
speed_topbottom = 20
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 10
|
21
resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg
Normal file
21
resources/quality/ultimaker2_plus/pla_0.6_normal.inst.cfg
Normal file
|
@ -0,0 +1,21 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
material = generic_pla_ultimaker2_plus_0.6_mm
|
||||
type = quality
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 1.59
|
||||
top_bottom_thickness = 1.2
|
||||
infill_sparse_density = 20
|
||||
speed_print = 55
|
||||
speed_wall = 40
|
||||
speed_wall_0 = 25
|
||||
speed_topbottom = 20
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 10
|
19
resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg
Normal file
19
resources/quality/ultimaker2_plus/pla_0.8_normal.inst.cfg
Normal file
|
@ -0,0 +1,19 @@
|
|||
[general]
|
||||
version = 2
|
||||
name = Fast Print
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
material = generic_pla_ultimaker2_plus_0.8_mm
|
||||
type = quality
|
||||
weight = -2
|
||||
|
||||
[values]
|
||||
layer_height = 0.2
|
||||
wall_thickness = 2.1
|
||||
top_bottom_thickness = 1.2
|
||||
infill_sparse_density = 20
|
||||
speed_print = 40
|
||||
speed_wall_0 = 25
|
||||
cool_min_layer_time = 5
|
||||
cool_min_speed = 10
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = High Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.25 mm
|
||||
material = ABS
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_plus_0.25_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 0.88
|
||||
top_bottom_thickness = 0.72
|
|
@ -1,17 +1,21 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Fast Print
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = ABS
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_plus_0.4_mm
|
||||
weight = -1
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 0.7
|
||||
top_bottom_thickness = 0.75
|
||||
infill_sparse_density = 18
|
||||
speed_print = 55
|
||||
speed_wall = 40
|
||||
speed_topbottom = 30
|
||||
speed_travel = 150
|
||||
speed_layer_0 = 30
|
||||
cool_min_layer_time = 3
|
|
@ -1,17 +1,20 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = High Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = ABS
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_plus_0.4_mm
|
||||
weight = -3
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.72
|
||||
infill_sparse_density = 22
|
||||
speed_print = 45
|
||||
speed_wall = 30
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 20
|
||||
cool_min_speed = 10
|
|
@ -1,17 +1,20 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = ABS
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_plus_0.4_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.1
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.8
|
||||
infill_sparse_density = 20
|
||||
speed_print = 45
|
||||
speed_wall = 30
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 20
|
||||
cool_min_speed = 10
|
|
@ -1,17 +1,20 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.6 mm
|
||||
material = ABS
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_plus_0.6_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 1.59
|
||||
top_bottom_thickness = 1.2
|
||||
infill_sparse_density = 20
|
||||
speed_print = 40
|
||||
speed_infill = 55
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 50
|
||||
cool_min_speed = 20
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Fast Print
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.8 mm
|
||||
material = ABS
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_abs_ultimaker2_plus_0.8_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.2
|
||||
wall_thickness = 2.1
|
||||
top_bottom_thickness = 1.2
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = High Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.25 mm
|
||||
material = CPE
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_plus_0.25_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 0.88
|
||||
top_bottom_thickness = 0.72
|
|
@ -1,17 +1,20 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Fast Print
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = CPE
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_plus_0.4_mm
|
||||
weight = -1
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 0.7
|
||||
top_bottom_thickness = 0.75
|
||||
infill_sparse_density = 18
|
||||
speed_print = 45
|
||||
speed_wall = 40
|
||||
speed_travel = 150
|
||||
speed_layer_0 = 30
|
||||
cool_min_layer_time = 3
|
|
@ -1,17 +1,20 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = High Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = CPE
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_plus_0.4_mm
|
||||
weight = -3
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.06
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.72
|
||||
infill_sparse_density = 22
|
||||
speed_print = 45
|
||||
speed_wall = 30
|
||||
cool_min_layer_time = 2
|
||||
cool_fan_speed_min = 80
|
||||
cool_min_speed = 15
|
|
@ -1,17 +1,20 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.4 mm
|
||||
material = CPE
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_plus_0.4_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.1
|
||||
wall_thickness = 1.05
|
||||
top_bottom_thickness = 0.8
|
||||
infill_sparse_density = 20
|
||||
speed_print = 45
|
||||
speed_wall = 30
|
||||
cool_min_layer_time = 3
|
||||
cool_fan_speed_min = 80
|
||||
cool_min_speed = 10
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Normal Quality
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.6 mm
|
||||
material = CPE
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_plus_0.6_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.15
|
||||
wall_thickness = 1.59
|
||||
top_bottom_thickness = 1.2
|
|
@ -1,12 +1,14 @@
|
|||
[general]
|
||||
version = 1
|
||||
version = 2
|
||||
name = Fast Print
|
||||
machine_type = ultimaker2plus
|
||||
machine_variant = 0.8 mm
|
||||
material = CPE
|
||||
definition = ultimaker2_plus
|
||||
|
||||
[metadata]
|
||||
type = quality
|
||||
material = generic_cpe_ultimaker2_plus_0.8_mm
|
||||
weight = -2
|
||||
|
||||
[settings]
|
||||
[values]
|
||||
layer_height = 0.2
|
||||
wall_thickness = 2.1
|
||||
top_bottom_thickness = 1.2
|
|
@ -283,14 +283,14 @@ QtObject {
|
|||
property Component combobox: Component {
|
||||
ComboBoxStyle {
|
||||
background: Rectangle {
|
||||
implicitHeight: UM.Theme.getSize("setting_control").height;
|
||||
implicitWidth: UM.Theme.getSize("setting_control").width;
|
||||
implicitHeight: Theme.getSize("setting_control").height;
|
||||
implicitWidth: Theme.getSize("setting_control").width;
|
||||
|
||||
color: (control.hovered || control.hovered_ex) ? Theme.getColor("setting_control_highlight") : Theme.getColor("setting_control");
|
||||
color: (control.hovered || control._hovered) ? Theme.getColor("setting_control_highlight") : Theme.getColor("setting_control");
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
|
||||
border.width: Theme.getSize("default_lining").width;
|
||||
border.color: (control.hovered || control.hovered_ex) ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border");
|
||||
border.color: (control.hovered || control._hovered) ? Theme.getColor("setting_control_border_highlight") : Theme.getColor("setting_control_border");
|
||||
}
|
||||
label: Item {
|
||||
Label {
|
||||
|
@ -301,7 +301,7 @@ QtObject {
|
|||
anchors.verticalCenter: parent.verticalCenter;
|
||||
|
||||
text: control.currentText;
|
||||
font: UM.Theme.getFont("default");
|
||||
font: Theme.getFont("default");
|
||||
color: !enabled ? Theme.getColor("setting_control_disabled_text") : Theme.getColor("setting_control_text");
|
||||
|
||||
elide: Text.ElideRight;
|
||||
|
@ -314,9 +314,9 @@ QtObject {
|
|||
anchors.rightMargin: Theme.getSize("default_lining").width * 2;
|
||||
anchors.verticalCenter: parent.verticalCenter;
|
||||
|
||||
source: UM.Theme.getIcon("arrow_bottom")
|
||||
width: UM.Theme.getSize("standard_arrow").width
|
||||
height: UM.Theme.getSize("standard_arrow").height
|
||||
source: Theme.getIcon("arrow_bottom")
|
||||
width: Theme.getSize("standard_arrow").width
|
||||
height: Theme.getSize("standard_arrow").height
|
||||
sourceSize.width: width + 5
|
||||
sourceSize.height: width + 5
|
||||
|
||||
|
@ -333,13 +333,13 @@ QtObject {
|
|||
implicitWidth: Theme.getSize("checkbox").width;
|
||||
implicitHeight: Theme.getSize("checkbox").height;
|
||||
|
||||
color: (control.hovered || control.hovered_ex) ? Theme.getColor("checkbox_hover") : Theme.getColor("checkbox");
|
||||
color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_hover") : Theme.getColor("checkbox");
|
||||
Behavior on color { ColorAnimation { duration: 50; } }
|
||||
|
||||
radius: control.exclusiveGroup ? Theme.getSize("checkbox").width / 2 : 0
|
||||
|
||||
border.width: Theme.getSize("default_lining").width;
|
||||
border.color: (control.hovered || control.hovered_ex) ? Theme.getColor("checkbox_border_hover") : Theme.getColor("checkbox_border");
|
||||
border.color: (control.hovered || control._hovered) ? Theme.getColor("checkbox_border_hover") : Theme.getColor("checkbox_border");
|
||||
|
||||
UM.RecolorImage {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
|
|
|
@ -176,7 +176,7 @@
|
|||
"section_icon": [1.6, 1.6],
|
||||
"section_icon_column": [2.8, 0.0],
|
||||
|
||||
"setting": [19.0, 1.8],
|
||||
"setting": [25.0, 1.8],
|
||||
"setting_control": [10.0, 2.0],
|
||||
"setting_control_depth_margin": [1.4, 0.0],
|
||||
"setting_preferences_button_margin": [3.3, 0.0],
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue