mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-23 22:54:01 -06:00
Fix merge conflicts
This commit is contained in:
commit
173f125d3e
893 changed files with 48366 additions and 2016 deletions
|
@ -50,6 +50,23 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"CuraDrive": {
|
||||
"package_info": {
|
||||
"package_id": "CuraDrive",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Cura Backups",
|
||||
"description": "Backup and restore your configuration.",
|
||||
"package_version": "1.2.0",
|
||||
"sdk_version": 6,
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"CuraEngineBackend": {
|
||||
"package_info": {
|
||||
"package_id": "CuraEngineBackend",
|
||||
|
@ -356,7 +373,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"PreviewStage": {
|
||||
"PreviewStage": {
|
||||
"package_info": {
|
||||
"package_id": "PreviewStage",
|
||||
"package_type": "plugin",
|
||||
|
@ -713,6 +730,40 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"VersionUpgrade35to40": {
|
||||
"package_info": {
|
||||
"package_id": "VersionUpgrade35to40",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Version Upgrade 3.5 to 4.0",
|
||||
"description": "Upgrades configurations from Cura 3.5 to Cura 4.0.",
|
||||
"package_version": "1.0.0",
|
||||
"sdk_version": "6.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"VersionUpgrade40to41": {
|
||||
"package_info": {
|
||||
"package_id": "VersionUpgrade40to41",
|
||||
"package_type": "plugin",
|
||||
"display_name": "Version Upgrade 4.0 to 4.1",
|
||||
"description": "Upgrades configurations from Cura 4.0 to Cura 4.1.",
|
||||
"package_version": "1.0.1",
|
||||
"sdk_version": "6.0",
|
||||
"website": "https://ultimaker.com",
|
||||
"author": {
|
||||
"author_id": "UltimakerPackages",
|
||||
"display_name": "Ultimaker B.V.",
|
||||
"email": "plugins@ultimaker.com",
|
||||
"website": "https://ultimaker.com"
|
||||
}
|
||||
}
|
||||
},
|
||||
"X3DReader": {
|
||||
"package_info": {
|
||||
"package_id": "X3DReader",
|
||||
|
@ -1409,7 +1460,7 @@
|
|||
"package_type": "material",
|
||||
"display_name": "Ultimaker PC",
|
||||
"description": "Example package for material and quality profiles for Ultimaker materials.",
|
||||
"package_version": "1.2.1",
|
||||
"package_version": "1.2.2",
|
||||
"sdk_version": "6.0",
|
||||
"website": "https://ultimaker.com/products/materials/pc",
|
||||
"author": {
|
||||
|
@ -1585,4 +1636,4 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -18,7 +18,7 @@
|
|||
"default_value": "Alfawise U20"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 X60.0 Z0 E9.0 F1000.0;intro line\nG1 X100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --"
|
||||
"default_value": "; -- START GCODE --\nG21 ;set units to millimetres\nG90 ;set to absolute positioning\nM106 S0 ;set fan speed to zero (turned off)\nG28 ;home all axis\nG92 E0 ;zero the extruded length\nG1 Z1 F1000 ;move up slightly\nG1 Y60.0 Z0 E9.0 F1000.0;intro line\nG1 Y100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\n; -- end of START GCODE --"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "; -- END GCODE --\nM104 S0 ;turn off nozzle heater\nM140 S0 ;turn off bed heater\nG91 ;set to relative positioning\nG1 E-10 F300 ;retract the filament slightly\nG90 ;set to absolute positioning\nG28 X0 ;move to the X-axis origin (Home)\nG0 Y280 F600 ;bring the bed to the front for easy print removal\nM84 ;turn off stepper motors\n; -- end of END GCODE --"
|
||||
|
|
93
resources/definitions/alfawise_u30.def.json
Normal file
93
resources/definitions/alfawise_u30.def.json
Normal file
|
@ -0,0 +1,93 @@
|
|||
{
|
||||
"name": "Alfawise U30",
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Nicolas Nussbaum",
|
||||
"manufacturer": "Alfawise",
|
||||
"file_formats": "text/x-gcode",
|
||||
"preferred_quality_type": "fast",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "alfawise_u30_extruder_0"
|
||||
}
|
||||
},
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
"default_value": "Alfawise U30"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "; -- START GCODE --\nG21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z1 F1000 ;move up slightly\nG1 Y60.0 Z0 E9.0 F1000.0;intro line\nG1 Y100.0 E21.5 F1000.0 ;continue line\nG92 E0 ;zero the extruded length again\nG1 F80\n;Put printing message on LCD screen\nM117 Printing...\n; -- end of START GCODE --"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "; -- END GCODE --\nM104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F80 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning\nM107 ;turn the fan off; -- end of END GCODE --"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 220
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 250
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 220
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"machine_center_is_zero": {
|
||||
"default_value": false
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 10
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (Marlin/Sprinter)"
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
},
|
||||
"material_print_temperature": {
|
||||
"default_value": 210
|
||||
},
|
||||
"material_bed_temperature": {
|
||||
"default_value": 50
|
||||
},
|
||||
"layer_height_0": {
|
||||
"default_value": 0.2
|
||||
},
|
||||
"wall_thickness": {
|
||||
"default_value": 1.2
|
||||
},
|
||||
"speed_print": {
|
||||
"default_value": 40
|
||||
},
|
||||
"speed_infill": {
|
||||
"default_value": 40
|
||||
},
|
||||
"speed_wall": {
|
||||
"default_value": 35
|
||||
},
|
||||
"speed_topbottom": {
|
||||
"default_value": 35
|
||||
},
|
||||
"speed_travel": {
|
||||
"default_value": 120
|
||||
},
|
||||
"speed_layer_0": {
|
||||
"default_value": 20
|
||||
},
|
||||
"support_enable": {
|
||||
"default_value": true
|
||||
},
|
||||
"retraction_enable": {
|
||||
"default_value": true
|
||||
},
|
||||
"retraction_amount": {
|
||||
"default_value": 5
|
||||
},
|
||||
"retraction_speed": {
|
||||
"default_value": 45
|
||||
}
|
||||
}
|
||||
}
|
45
resources/definitions/creatable_d3.def.json
Normal file
45
resources/definitions/creatable_d3.def.json
Normal file
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Creatable D3",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Creatable Labs",
|
||||
"manufacturer": "Ateam Ventures Co. Ltd.",
|
||||
"file_formats": "text/x-gcode",
|
||||
"icon": "icon_ultimaker.png",
|
||||
"platform": "rostock_platform.stl",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "creatable_d3_extruder_0"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Creatable D3" },
|
||||
"machine_center_is_zero": { "default_value": true },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (RepRap)" },
|
||||
"machine_width": { "default_value": 250 },
|
||||
"machine_height": { "default_value": 200 },
|
||||
"machine_depth": { "default_value": 250 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_shape": { "default_value": "elliptic" },
|
||||
"machine_max_feedrate_z": { "default_value": 300 },
|
||||
"gantry_height": {"default_value": 43},
|
||||
"layer_height": { "default_value": 0.1 },
|
||||
"relative_extrusion": { "default_value": false },
|
||||
"retraction_combing": { "default_value": "off" },
|
||||
"retraction_hop_enabled": { "default_value": true },
|
||||
"retraction_hop_only_when_collides": { "default_value": false },
|
||||
"retraction_retract_speed": { "default_value": 100 },
|
||||
"retraction_speed": { "default_value": 100 },
|
||||
"retraction_amount": { "default_value": 4.5 },
|
||||
"retraction_prime_speed": { "default_value": 45 },
|
||||
"machine_start_gcode": {
|
||||
"default_value": "G21\nG90\nM82\nM106 S255\nG28\nG92 E0\nG1 Z100 F5000\nM190 S50\nM109 S200\nG1 X-135\nG1 Z0.3\nG92 E-32\nG1 E0 F1000\nG1 E50 F200\nG1 F1000\nG1 X-125\nG92 E0"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M400\nG28\nM104 S0\nM140 S0\nM107\nG92 E0\nG1 E-32 F300\nM84\nG90"
|
||||
}
|
||||
}
|
||||
}
|
42
resources/definitions/cubicon_3dp_110f.def.json
Normal file
42
resources/definitions/cubicon_3dp_110f.def.json
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"id": "3DP-110F",
|
||||
"version": 2,
|
||||
"name": "Cubicon Single",
|
||||
"inherits": "cubicon_common",
|
||||
"metadata": {
|
||||
"author": "Cubicon R&D Center",
|
||||
"manufacturer": "Cubicon",
|
||||
"visible": true,
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "",
|
||||
"supports_usb_connection": false,
|
||||
"machine_extruder_trains": {
|
||||
"0": "cubicon_3dp_110f_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-32.05,
|
||||
-20
|
||||
]
|
||||
},
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
"default_value": "Cubicon Single"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "M911 3DP-110F\nM201 X400 Y400\nM202 X400 Y400\nG28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 240
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 190
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 200
|
||||
},
|
||||
"material_bed_temp_wait": {
|
||||
"default_value": true
|
||||
}
|
||||
}
|
||||
}
|
42
resources/definitions/cubicon_3dp_210f.def.json
Normal file
42
resources/definitions/cubicon_3dp_210f.def.json
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"id": "3DP-210F",
|
||||
"version": 2,
|
||||
"name": "Cubicon Style",
|
||||
"inherits": "cubicon_common",
|
||||
"metadata": {
|
||||
"author": "Cubicon R&D Center",
|
||||
"manufacturer": "Cubicon",
|
||||
"visible": true,
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "",
|
||||
"supports_usb_connection": false,
|
||||
"machine_extruder_trains": {
|
||||
"0": "cubicon_3dp_210f_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-18.8,
|
||||
0
|
||||
]
|
||||
},
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
"default_value": "Cubicon Style"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "M911 3DP-210F\nM201 X400 Y400\nM202 X400 Y400\nG28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 150
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 150
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 150
|
||||
},
|
||||
"material_bed_temp_wait":{
|
||||
"default_value": false
|
||||
}
|
||||
}
|
||||
}
|
42
resources/definitions/cubicon_3dp_310f.def.json
Normal file
42
resources/definitions/cubicon_3dp_310f.def.json
Normal file
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"id": "3DP-310F",
|
||||
"version": 2,
|
||||
"name": "Cubicon Single Plus",
|
||||
"inherits": "cubicon_common",
|
||||
"metadata": {
|
||||
"author": "Cubicon R&D Center",
|
||||
"manufacturer": "Cubicon",
|
||||
"visible": true,
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "",
|
||||
"supports_usb_connection": false,
|
||||
"machine_extruder_trains": {
|
||||
"0": "cubicon_3dp_310f_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-32.05,
|
||||
-20
|
||||
]
|
||||
},
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
"default_value": "Cubicon Single Plus"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "M911 3DP-310F\nM201 X400 Y400\nM202 X400 Y400\nG28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 240
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 190
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 200
|
||||
},
|
||||
"material_bed_temp_wait": {
|
||||
"default_value": true
|
||||
}
|
||||
}
|
||||
}
|
99
resources/definitions/cubicon_common.def.json
Normal file
99
resources/definitions/cubicon_common.def.json
Normal file
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Cubicon Common",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"author": "Cubicon R&D Center",
|
||||
"manufacturer": "Cubicon",
|
||||
"visible": false
|
||||
},
|
||||
"overrides": {
|
||||
"machine_start_gcode": {
|
||||
"default_value": "M201 X400 Y400\nM202 X400 Y400\nG28 ; Home\nG1 Z15.0 F6000 ;move the platform down 15mm\n;Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0\nM140 S0\nM904\nM117 Print completed! \nM84"
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "Repetier"
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": true
|
||||
},
|
||||
"travel_compensate_overlapping_walls_enabled": {
|
||||
"default_value": false
|
||||
},
|
||||
"travel_compensate_overlapping_walls_0_enabled": {
|
||||
"default_value": false
|
||||
},
|
||||
"travel_compensate_overlapping_walls_x_enabled": {
|
||||
"default_value": false
|
||||
},
|
||||
"layer_height": {
|
||||
"default_value": 0.2
|
||||
},
|
||||
"layer_height_0": {
|
||||
"default_value": 0.2
|
||||
},
|
||||
"infill_line_width": {
|
||||
"default_value": 0.6
|
||||
},
|
||||
"adhesion_type": {
|
||||
"default_value": "raft"
|
||||
},
|
||||
"roofing_pattern": { "default_value": "lines" },
|
||||
"top_bottom_pattern": { "default_value": "lines" },
|
||||
"top_bottom_pattern_0": {
|
||||
"default_value": "zigzag"
|
||||
},
|
||||
"fill_perimeter_gaps": { "default_value": "everywhere" },
|
||||
"infill_pattern": {
|
||||
"default_value": "zigzag"
|
||||
},
|
||||
"infill_sparse_density": { "default_value": 20 },
|
||||
"infill_overlap": {
|
||||
"default_value": 15
|
||||
},
|
||||
"infill_before_walls": { "default_value": false },
|
||||
"infill_sparse_thickness": { "default_value": 0.2 },
|
||||
"top_bottom_thickness": {
|
||||
"default_value": 1.0
|
||||
},
|
||||
"top_thickness": {
|
||||
"default_value": 1.0
|
||||
},
|
||||
"bottom_thickness": {
|
||||
"default_value": 0.6,
|
||||
"value": "top_bottom_thickness * 0.6"
|
||||
},
|
||||
"roofing_layer_count": {
|
||||
"default_value": 1
|
||||
},
|
||||
"skin_preshrink": { "default_value": true },
|
||||
"material_flow_layer_0": { "default_value": 100 },
|
||||
"top_skin_preshrink": { "default_value": 1.2 },
|
||||
"bottom_skin_preshrink": { "default_value": 1.2 },
|
||||
"max_skin_angle_for_expansion": { "default_value": 90 },
|
||||
"min_skin_width_for_expansion": { "default_value": 2.7475 },
|
||||
"skin_angles": { "default_value": "[135,45]" },
|
||||
"roofing_angles": { "default_value": "[135,45]" },
|
||||
"coasting_volume": { "default_value": 0.032 },
|
||||
"wall_thickness": { "default_value": 1.2 },
|
||||
"wall_line_count": { "default_value": 3 },
|
||||
"speed_wall_0": { "default_value": 25 },
|
||||
"skin_overlap": { "default_value": 5 },
|
||||
"cool_min_layer_time_fan_speed_max": { "default_value": 15 },
|
||||
"cool_min_layer_time": { "default_value": 15 },
|
||||
"support_roof_pattern": { "default_value": "zigzag" },
|
||||
"support_bottom_pattern": { "default_value": "zigzag" },
|
||||
"support_interface_pattern": { "default_value": "zigzag" },
|
||||
"support_pattern": { "default_value": "zigzag" },
|
||||
"retraction_amount": { "default_value": 1.5 },
|
||||
"top_layers": {
|
||||
"default_value": 5
|
||||
},
|
||||
"bottom_layers": {
|
||||
"default_value": 3
|
||||
}
|
||||
}
|
||||
}
|
|
@ -4690,6 +4690,7 @@
|
|||
"default_value": 8.0,
|
||||
"minimum_value": "0.0",
|
||||
"maximum_value_warning": "50.0",
|
||||
"maximum_value": "0.5 * min(machine_width, machine_depth)",
|
||||
"enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')",
|
||||
"settable_per_mesh": false,
|
||||
"settable_per_extruder": true,
|
||||
|
@ -4704,6 +4705,7 @@
|
|||
"default_value": 20,
|
||||
"minimum_value": "0",
|
||||
"maximum_value_warning": "50 / skirt_brim_line_width",
|
||||
"maximum_value": "0.5 * min(machine_width, machine_depth) / skirt_brim_line_width",
|
||||
"value": "math.ceil(brim_width / (skirt_brim_line_width * initial_layer_line_width_factor / 100.0))",
|
||||
"enabled": "resolveOrValue('adhesion_type') == 'brim' or resolveOrValue('prime_tower_brim_enable')",
|
||||
"settable_per_mesh": false,
|
||||
|
|
|
@ -14,19 +14,24 @@
|
|||
"has_variants": true,
|
||||
"variants_name": "Hotend",
|
||||
"preferred_variant_name": "0.5mm E3D (Default)",
|
||||
"preferred_quality_type": "gmax15plus_global_normal",
|
||||
"machine_extruder_trains": {
|
||||
"0": "gmax15plus_extruder_0"
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_extruder_count": { "default_value": 1 },
|
||||
"machine_name": { "default_value": "gMax 1.5 Plus" },
|
||||
"machine_heated_bed": { "default_value": false },
|
||||
"machine_width": { "default_value": 406 },
|
||||
"machine_depth": { "default_value": 406 },
|
||||
"machine_height": { "default_value": 533 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"layer_height": { "default_value": 0.2 },
|
||||
"layer_height_0": { "default_value": 0.3 },
|
||||
"retraction_amount": { "default_value": 1 },
|
||||
|
@ -43,10 +48,10 @@
|
|||
"machine_max_jerk_z": { "default_value": 0.4 },
|
||||
"machine_max_jerk_e": { "default_value": 5.0 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 ;Home X/Y/Z\nG29 ; Bed level\nM104 S{material_print_temperature} ; Preheat\nM109 S{material_print_temperature} ; Preheat\nG91 ;relative positioning\nG90 ;absolute positioning\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." },
|
||||
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home X/Y/Z\nM104 S{material_print_temperature} ; Preheat\nM109 S{material_print_temperature} ; Preheat\nG91 ;relative positioning\nG90 ;absolute positioning\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." },
|
||||
"machine_end_gcode": { "default_value": "M104 S0 ;extruder heater off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" },
|
||||
"material_print_temperature": { "default_value": 202 },
|
||||
"wall_thickness": { "default_value": 1 },
|
||||
"material_print_temperature": { "default_value": 202 },
|
||||
"wall_thickness": { "default_value": 1 },
|
||||
"top_bottom_thickness": { "default_value": 1 },
|
||||
"bottom_thickness": { "default_value": 1 }
|
||||
}
|
||||
|
|
|
@ -10,24 +10,26 @@
|
|||
"category": "Other",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform": "gmax_1-5_xt-plus_s3d_full model_150707.stl",
|
||||
"has_variants": true,
|
||||
"has_machine_quality": true,
|
||||
"variants_name": "Hotend",
|
||||
"preferred_variant_name": "0.5mm E3D (Default)",
|
||||
"machine_extruder_trains": {
|
||||
"0": "gmax15plus_dual_extruder_0",
|
||||
"1": "gmax15plus_dual_extruder_1"
|
||||
}
|
||||
"has_variants": true,
|
||||
"variants_name": "Hotend",
|
||||
"preferred_variant_name": "0.5mm E3D (Default)",
|
||||
"preferred_quality_type": "gmax15plus_global_dual_normal",
|
||||
"machine_extruder_trains": {
|
||||
"0": "gmax15plus_dual_extruder_0",
|
||||
"1": "gmax15plus_dual_extruder_1"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "gMax 1.5 Plus Dual Extruder" },
|
||||
"machine_extruder_count": { "default_value": 2 },
|
||||
"machine_extruder_count": { "default_value": 2 },
|
||||
"machine_heated_bed": { "default_value": false },
|
||||
"machine_width": { "default_value": 406 },
|
||||
"machine_depth": { "default_value": 406 },
|
||||
"machine_height": { "default_value": 533 },
|
||||
"machine_center_is_zero": { "default_value": false },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"layer_height": { "default_value": 0.2 },
|
||||
"layer_height_0": { "default_value": 0.3 },
|
||||
"retraction_amount": { "default_value": 1 },
|
||||
|
@ -44,10 +46,10 @@
|
|||
"machine_max_jerk_z": { "default_value": 0.4 },
|
||||
"machine_max_jerk_e": { "default_value": 5.0 },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 ;Home X/Y/Z\nG29 ; Bed level\nM104 S{material_print_temperature} T0 ; Preheat Left Extruder\nM104 S{material_print_temperature} T1 ; Preheat Right Extruder\nM109 S{material_print_temperature} T0 ; Preheat Left Extruder\nM109 S{material_print_temperature} T1 ; Preheat Right Extruder\nG91 ;relative positioning\nG90 ;absolute positioning\nM218 T1 X34.3 Y0; Set 2nd extruder offset. This can be changed later if needed\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." },
|
||||
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 ;Home X/Y/Z\nM104 S{material_print_temperature} T0 ; Preheat Left Extruder\nM104 S{material_print_temperature} T1 ; Preheat Right Extruder\nM109 S{material_print_temperature} T0 ; Preheat Left Extruder\nM109 S{material_print_temperature} T1 ; Preheat Right Extruder\nG91 ;relative positioning\nG90 ;absolute positioning\nM218 T1 X34.3 Y0; Set 2nd extruder offset. This can be changed later if needed\nG1 Z25.0 F9000 ;raise nozzle 25mm\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." },
|
||||
"machine_end_gcode": { "default_value": "M104 S0 T0;Left extruder off\nM104 S0 T1; Right extruder off\nM140 S0 ;heated bed heater off (if you have it)\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;steppers off\nG90 ;absolute positioning" },
|
||||
"material_print_temperature": { "default_value": 202 },
|
||||
"wall_thickness": { "default_value": 1 },
|
||||
"material_print_temperature": { "default_value": 202 },
|
||||
"wall_thickness": { "default_value": 1 },
|
||||
"top_bottom_thickness": { "default_value": 1 },
|
||||
"bottom_thickness": { "default_value": 1 }
|
||||
}
|
||||
|
|
52
resources/definitions/monoprice_ultimate.def.json
Normal file
52
resources/definitions/monoprice_ultimate.def.json
Normal file
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Monoprice Ultimate",
|
||||
"inherits": "wanhao_d6",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "Danny Tuppeny",
|
||||
"manufacturer": "monoprice",
|
||||
"file_formats": "text/x-gcode",
|
||||
"icon": "wanhao-icon.png",
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_200_200_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_d6_extruder_0"
|
||||
},
|
||||
"platform_offset": [
|
||||
0,
|
||||
-28,
|
||||
0
|
||||
]
|
||||
},
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
"default_value": "Monoprice Ultimate"
|
||||
},
|
||||
"machine_max_acceleration_x": {
|
||||
"default_value": 3000
|
||||
},
|
||||
"machine_max_acceleration_y": {
|
||||
"default_value": 3000
|
||||
},
|
||||
"machine_max_acceleration_z": {
|
||||
"default_value": 100
|
||||
},
|
||||
"machine_max_acceleration_e": {
|
||||
"default_value": 500
|
||||
},
|
||||
"machine_acceleration": {
|
||||
"default_value": 800
|
||||
},
|
||||
"machine_max_jerk_xy": {
|
||||
"default_value": 10.0
|
||||
},
|
||||
"machine_max_jerk_z": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_max_jerk_e": {
|
||||
"default_value": 1.0
|
||||
}
|
||||
}
|
||||
}
|
64
resources/definitions/nwa3d_a5.def.json
Normal file
64
resources/definitions/nwa3d_a5.def.json
Normal file
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"name": "NWA3D A5",
|
||||
"version": 2,
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"author": "DragonJe",
|
||||
"manufacturer": "NWA 3D LLC",
|
||||
"file_formats": "text/x-gcode",
|
||||
"platform_offset": [0, 0, 0],
|
||||
"has_materials": true,
|
||||
"has_variants": false,
|
||||
"has_machine_materials": true,
|
||||
"has_variant_materials": false,
|
||||
"preferred_quality_type": "normal",
|
||||
"has_machine_quality": true,
|
||||
"preferred_material": "generic_pla",
|
||||
"machine_extruder_trains":
|
||||
{
|
||||
"0": "nwa3d_a5_extruder_0"
|
||||
}
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": {
|
||||
"default_value": "NWA3D A5"
|
||||
},
|
||||
"machine_width": {
|
||||
"default_value": 125
|
||||
},
|
||||
"machine_height": {
|
||||
"default_value": 100
|
||||
},
|
||||
"machine_depth": {
|
||||
"default_value": 150
|
||||
},
|
||||
"machine_head_polygon": {
|
||||
"default_value": [
|
||||
[-30, 34],
|
||||
[-30, -32],
|
||||
[30, -32],
|
||||
[30, 34]
|
||||
]
|
||||
},
|
||||
"gantry_height": {
|
||||
"default_value": 30
|
||||
},
|
||||
"machine_heated_bed": {
|
||||
"default_value": false
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
},
|
||||
"machine_gcode_flavor": {
|
||||
"default_value": "RepRap (RepRap)"
|
||||
},
|
||||
"machine_start_gcode": {
|
||||
"default_value": "G28 ; Home\nG1 Z15.0 F6000 ; Move Z axis up 15mm\n ; Prime the extruder\nG92 E0\nG1 F200 E3\nG92 E0"
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0\nM140 S0\n ; Retract the filament\nG92 E1\nG1 E-1 F300\nG28 X0 Y0\nM84"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -42,7 +42,7 @@
|
|||
"machine_max_feedrate_x": { "default_value": 255 },
|
||||
"machine_max_feedrate_y": { "default_value": 225 },
|
||||
"machine_max_feedrate_z": { "default_value": 3 },
|
||||
"machine_max_acceleration_x": { "default_value": 2620 },
|
||||
"machine_max_acceleration_x": { "default_value": 2650 },
|
||||
"machine_max_acceleration_y": { "default_value": 2650 },
|
||||
"acceleration_print": { "default_value": 2650 },
|
||||
"machine_start_gcode": { "default_value": "G21 ;metric values\nG90 ;absolute positioning\nM82 ;set extruder to absolute mode\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15.0 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E3 ;extrude 3mm of feed stock\nG92 E0 ;zero the extruded length again\nG1 F9000\n;Put printing message on LCD screen\nM117 Printing..." },
|
||||
|
|
41
resources/definitions/wanhao_d9.def.json
Normal file
41
resources/definitions/wanhao_d9.def.json
Normal file
|
@ -0,0 +1,41 @@
|
|||
{
|
||||
"version": 2,
|
||||
"name": "Wanhao Duplicator 9",
|
||||
"inherits": "fdmprinter",
|
||||
"metadata": {
|
||||
"visible": true,
|
||||
"manufacturer": "Wanhao",
|
||||
"file_formats": "text/x-gcode",
|
||||
"has_materials": true,
|
||||
"platform": "wanhao_300_300_platform.obj",
|
||||
"platform_texture": "Wanhaobackplate.png",
|
||||
"machine_extruder_trains": {
|
||||
"0": "wanhao_d9_extruder_0"
|
||||
},
|
||||
"platform_offset": [ 0, -55, 0]
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"machine_name": { "default_value": "Wanhao Duplicator 9" },
|
||||
"machine_width": { "default_value": 300 },
|
||||
"machine_height": { "default_value": 400 },
|
||||
"machine_depth": { "default_value": 300 },
|
||||
"machine_heated_bed": { "default_value": true },
|
||||
"machine_gcode_flavor": { "default_value": "RepRap (Marlin/Sprinter)" },
|
||||
"machine_start_gcode": {
|
||||
"default_value": "G21 ;metric values\n G90 ;absolute positioning\n M82 ;set extruder to absolute mode\n M107 ;start with the fan off\n G28 X0 Y0 ;move X/Y to min endstops\n G28 Z0 ;move Z to min endstops\n G1 Z15.0 F{travel_speed} ;move the platform down 15mm\n G92 E0 ;zero the extruded length\n G1 F200 E6 ;extrude 6 mm of feed stock\n G92 E0 ;zero the extruded length again\n G1 F{travel_speed} \n ;Put printing message on LCD screen\n M117 Printing..."
|
||||
},
|
||||
"machine_end_gcode": {
|
||||
"default_value": "M104 S0 ;extruder heater off \n G91 ;relative positioning\n G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\n G1 Z+0.5 E-5 X-20 Y-20 F{travel_speed} ;move Z up a bit and retract filament even more\n G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\n M84 ;steppers off\n G90 ;absolute positioning"
|
||||
},
|
||||
"support_angle": { "default_value": 60 },
|
||||
"support_enable": { "default_value": true },
|
||||
"layer_height_0": { "default_value": 0.15 },
|
||||
"top_thickness": { "default_value": 0.6 },
|
||||
"material_print_temperature": { "default_value": 190 },
|
||||
"layer_height": { "default_value": 0.2 },
|
||||
"speed_print": { "default_value": 30 },
|
||||
"adhesion_type": { "default_value": "raft" },
|
||||
"support_z_distance": { "default_value": 0.22 }
|
||||
}
|
||||
}
|
16
resources/extruders/alfawise_u30_extruder_0.def.json
Normal file
16
resources/extruders/alfawise_u30_extruder_0.def.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"id": "alfawise_u30_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "alfawise_u30",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
16
resources/extruders/creatable_d3_extruder_0.def.json
Normal file
16
resources/extruders/creatable_d3_extruder_0.def.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"id": "creatable_d3_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "Creatable_D3",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
27
resources/extruders/cubicon_3dp_110f_extruder_0.def.json
Normal file
27
resources/extruders/cubicon_3dp_110f_extruder_0.def.json
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"id": "cubicon_3dp_110f_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "cubicon_3dp_110f",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides": {
|
||||
"extruder_nr": {
|
||||
"default_value": 0
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_nozzle_offset_x": {
|
||||
"default_value": -15
|
||||
},
|
||||
"machine_nozzle_offset_y": {
|
||||
"default_value": -5
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
27
resources/extruders/cubicon_3dp_210f_extruder_0.def.json
Normal file
27
resources/extruders/cubicon_3dp_210f_extruder_0.def.json
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"id": "cubicon_3dp_210f_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "cubicon_3dp_210f",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides": {
|
||||
"extruder_nr": {
|
||||
"default_value": 0
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_nozzle_offset_x": {
|
||||
"default_value": -7.25
|
||||
},
|
||||
"machine_nozzle_offset_y": {
|
||||
"default_value": -5.82
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
27
resources/extruders/cubicon_3dp_310f_extruder_0.def.json
Normal file
27
resources/extruders/cubicon_3dp_310f_extruder_0.def.json
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"id": "cubicon_3dp_310f_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "cubicon_3dp_310f",
|
||||
"position": "0"
|
||||
},
|
||||
"overrides": {
|
||||
"extruder_nr": {
|
||||
"default_value": 0
|
||||
},
|
||||
"machine_nozzle_size": {
|
||||
"default_value": 0.4
|
||||
},
|
||||
"machine_nozzle_offset_x": {
|
||||
"default_value": -15
|
||||
},
|
||||
"machine_nozzle_offset_y": {
|
||||
"default_value": -5
|
||||
},
|
||||
"material_diameter": {
|
||||
"default_value": 1.75
|
||||
}
|
||||
}
|
||||
}
|
|
@ -15,10 +15,10 @@
|
|||
},
|
||||
"machine_nozzle_offset_x": { "default_value": 0.0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
|
||||
"machine_extruder_start_pos_abs": { "default_value": true },
|
||||
|
||||
"machine_extruder_start_pos_abs": { "default_value": true },
|
||||
"machine_extruder_start_pos_x": { "value": 40 },
|
||||
"machine_extruder_start_pos_y": { "value": 210 },
|
||||
"machine_extruder_end_pos_abs": { "default_value": true },
|
||||
|
|
|
@ -15,10 +15,10 @@
|
|||
},
|
||||
"machine_nozzle_offset_x": { "default_value": 0.0 },
|
||||
"machine_nozzle_offset_y": { "default_value": 0.0 },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"machine_nozzle_size": { "default_value": 0.5 },
|
||||
"material_diameter": { "default_value": 1.75 },
|
||||
|
||||
"machine_extruder_start_pos_abs": { "default_value": true },
|
||||
|
||||
"machine_extruder_start_pos_abs": { "default_value": true },
|
||||
"machine_extruder_start_pos_x": { "value": 40 },
|
||||
"machine_extruder_start_pos_y": { "value": 210 },
|
||||
"machine_extruder_end_pos_abs": { "default_value": true },
|
||||
|
|
16
resources/extruders/nwa3d_a5_extruder_0.def.json
Normal file
16
resources/extruders/nwa3d_a5_extruder_0.def.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"id": "nwa3d_a5_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Regular 0.4mm Nozzle",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "nwa3d_a5",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
16
resources/extruders/wanhao_d9_extruder_0.def.json
Normal file
16
resources/extruders/wanhao_d9_extruder_0.def.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"id": "wanhao_d9_extruder_0",
|
||||
"version": 2,
|
||||
"name": "Extruder 1",
|
||||
"inherits": "fdmextruder",
|
||||
"metadata": {
|
||||
"machine": "wanhao_d9",
|
||||
"position": "0"
|
||||
},
|
||||
|
||||
"overrides": {
|
||||
"extruder_nr": { "default_value": 0 },
|
||||
"machine_nozzle_size": { "default_value": 0.4 },
|
||||
"material_diameter": { "default_value": 1.75 }
|
||||
}
|
||||
}
|
BIN
resources/images/cubicon_icon.png
Normal file
BIN
resources/images/cubicon_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 292 KiB |
BIN
resources/images/cubicon_log.png
Normal file
BIN
resources/images/cubicon_log.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 8.7 KiB |
40925
resources/meshes/wanhao_300_300_platform.obj
Normal file
40925
resources/meshes/wanhao_300_300_platform.obj
Normal file
File diff suppressed because it is too large
Load diff
|
@ -44,7 +44,7 @@ Column
|
|||
horizontalAlignment: Text.AlignHCenter
|
||||
renderType: Text.NativeRendering
|
||||
text: loggedIn ? profile["username"] : catalog.i18nc("@label", "Please log in or create an account to\nenjoy all features of Ultimaker Cura.")
|
||||
font: loggedIn ? UM.Theme.getFont("large") : UM.Theme.getFont("default")
|
||||
font: loggedIn ? UM.Theme.getFont("large_bold") : UM.Theme.getFont("default")
|
||||
color: UM.Theme.getColor("text")
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Row
|
|||
width: UM.Theme.getSize("account_button").width
|
||||
height: UM.Theme.getSize("account_button").height
|
||||
text: catalog.i18nc("@button", "Create account")
|
||||
onClicked: Qt.openUrlExternally("https://account.ultimaker.com/app/create")
|
||||
onClicked: Qt.openUrlExternally(CuraApplication.ultimakerCloudAccountRootUrl + "/app/create")
|
||||
fixedWidthMode: true
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Row
|
|||
width: UM.Theme.getSize("account_button").width
|
||||
height: UM.Theme.getSize("account_button").height
|
||||
text: catalog.i18nc("@button", "Manage account")
|
||||
onClicked: Qt.openUrlExternally("https://account.ultimaker.com")
|
||||
onClicked: Qt.openUrlExternally(CuraApplication.ultimakerCloudAccountRootUrl)
|
||||
fixedWidthMode: true
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.1
|
||||
import QtGraphicalEffects 1.0 // For the dropshadow
|
||||
|
||||
import UM 1.1 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
|
@ -16,7 +17,7 @@ Button
|
|||
property alias iconSource: buttonIconLeft.source
|
||||
property alias textFont: buttonText.font
|
||||
property alias cornerRadius: backgroundRect.radius
|
||||
property alias tooltip: tooltip.text
|
||||
property alias tooltip: tooltip.tooltipText
|
||||
property alias cornerSide: backgroundRect.cornerSide
|
||||
|
||||
property color color: UM.Theme.getColor("primary")
|
||||
|
@ -30,6 +31,9 @@ Button
|
|||
property color outlineDisabledColor: outlineColor
|
||||
property alias shadowColor: shadow.color
|
||||
property alias shadowEnabled: shadow.visible
|
||||
property alias busy: busyIndicator.visible
|
||||
|
||||
property alias toolTipContentAlignment: tooltip.contentAlignment
|
||||
|
||||
// This property is used to indicate whether the button has a fixed width or the width would depend on the contents
|
||||
// Be careful when using fixedWidthMode, the translated texts can be too long that they won't fit. In any case,
|
||||
|
@ -53,7 +57,7 @@ Button
|
|||
width: visible ? height : 0
|
||||
sourceSize.width: width
|
||||
sourceSize.height: height
|
||||
color: button.hovered ? button.textHoverColor : button.textColor
|
||||
color: button.enabled ? (button.hovered ? button.textHoverColor : button.textColor) : button.textDisabledColor
|
||||
visible: source != "" && !button.isIconOnRightSide
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
@ -110,11 +114,31 @@ Button
|
|||
z: backgroundRect.z - 1
|
||||
}
|
||||
|
||||
ToolTip
|
||||
Cura.ToolTip
|
||||
{
|
||||
id: tooltip
|
||||
text: ""
|
||||
delay: 500
|
||||
visible: text != "" && button.hovered
|
||||
visible: button.hovered
|
||||
}
|
||||
|
||||
BusyIndicator
|
||||
{
|
||||
id: busyIndicator
|
||||
|
||||
anchors.centerIn: parent
|
||||
|
||||
width: height
|
||||
height: parent.height
|
||||
|
||||
visible: false
|
||||
|
||||
RotationAnimator
|
||||
{
|
||||
target: busyIndicator.contentItem
|
||||
running: busyIndicator.visible && busyIndicator.running
|
||||
from: 0
|
||||
to: 360
|
||||
loops: Animation.Infinite
|
||||
duration: 2500
|
||||
}
|
||||
}
|
||||
}
|
|
@ -23,6 +23,7 @@ Rectangle
|
|||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: UM.Theme.getColor("lining")
|
||||
radius: UM.Theme.getSize("default_radius").width
|
||||
z: 10
|
||||
|
||||
property bool outputAvailable: UM.Backend.state == UM.Backend.Done || UM.Backend.state == UM.Backend.Disabled
|
||||
|
||||
|
|
|
@ -60,7 +60,6 @@ Item
|
|||
|
||||
leftPadding: UM.Theme.getSize("narrow_margin").width //Need more space than usual here for wide text.
|
||||
rightPadding: UM.Theme.getSize("narrow_margin").width
|
||||
tooltip: popup.opened ? "" : catalog.i18nc("@info:tooltip", "Select the active output device")
|
||||
iconSource: popup.opened ? UM.Theme.getIcon("arrow_top") : UM.Theme.getIcon("arrow_bottom")
|
||||
color: UM.Theme.getColor("action_panel_secondary")
|
||||
visible: (devicesModel.deviceCount > 1)
|
||||
|
@ -94,7 +93,6 @@ Item
|
|||
onClicked:
|
||||
{
|
||||
UM.OutputDeviceManager.setActiveDevice(model.id)
|
||||
widget.requestWriteToDevice()
|
||||
popup.close()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,13 @@ Column
|
|||
id: information
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
|
||||
PrintInformationWidget
|
||||
{
|
||||
id: printInformationPanel
|
||||
visible: !preSlicedData
|
||||
anchors.right: parent.right
|
||||
}
|
||||
|
||||
Column
|
||||
{
|
||||
|
@ -40,8 +47,7 @@ Column
|
|||
anchors
|
||||
{
|
||||
left: parent.left
|
||||
right: printInformationPanel.left
|
||||
rightMargin: printInformationPanel.visible ? UM.Theme.getSize("thin_margin").width : 0
|
||||
right: parent.right
|
||||
}
|
||||
|
||||
Cura.IconWithText
|
||||
|
@ -51,7 +57,7 @@ Column
|
|||
|
||||
text: preSlicedData ? catalog.i18nc("@label", "No time estimation available") : PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long)
|
||||
source: UM.Theme.getIcon("clock")
|
||||
font: UM.Theme.getFont("default_bold")
|
||||
font: UM.Theme.getFont("medium_bold")
|
||||
}
|
||||
|
||||
Cura.IconWithText
|
||||
|
@ -86,18 +92,6 @@ Column
|
|||
source: UM.Theme.getIcon("spool")
|
||||
}
|
||||
}
|
||||
|
||||
PrintInformationWidget
|
||||
{
|
||||
id: printInformationPanel
|
||||
visible: !preSlicedData
|
||||
|
||||
anchors
|
||||
{
|
||||
right: parent.right
|
||||
verticalCenter: timeAndCostsInformation.verticalCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Item
|
||||
|
@ -123,11 +117,10 @@ Column
|
|||
tooltip: text
|
||||
fixedWidthMode: true
|
||||
|
||||
toolTipContentAlignment: Cura.ToolTip.ContentAlignment.AlignLeft
|
||||
|
||||
onClicked: UM.Controller.setActiveStage("PreviewStage")
|
||||
visible: UM.Controller.activeStage != null && UM.Controller.activeStage.stageId != "PreviewStage"
|
||||
|
||||
shadowEnabled: true
|
||||
shadowColor: UM.Theme.getColor("action_button_disabled_shadow")
|
||||
}
|
||||
|
||||
Cura.OutputDevicesActionButton
|
||||
|
|
|
@ -44,9 +44,9 @@ Column
|
|||
{
|
||||
id: autoSlicingLabel
|
||||
width: parent.width
|
||||
visible: prepareButtons.autoSlice && (widget.backendState == UM.Backend.Processing || widget.backendState == UM.Backend.NotStarted)
|
||||
visible: progressBar.visible
|
||||
|
||||
text: catalog.i18nc("@label:PrintjobStatus", "Auto slicing...")
|
||||
text: catalog.i18nc("@label:PrintjobStatus", "Slicing...")
|
||||
color: UM.Theme.getColor("text")
|
||||
font: UM.Theme.getFont("default")
|
||||
renderType: Text.NativeRendering
|
||||
|
@ -107,8 +107,14 @@ Column
|
|||
{
|
||||
id: sliceButton
|
||||
fixedWidthMode: true
|
||||
anchors.fill: parent
|
||||
|
||||
height: parent.height
|
||||
|
||||
anchors.right: parent.right
|
||||
anchors.left: parent.left
|
||||
|
||||
text: catalog.i18nc("@button", "Slice")
|
||||
tooltip: catalog.i18nc("@label", "Start the slicing process")
|
||||
enabled: widget.backendState != UM.Backend.Error
|
||||
visible: widget.backendState == UM.Backend.NotStarted || widget.backendState == UM.Backend.Error
|
||||
onClicked: sliceOrStopSlicing()
|
||||
|
@ -118,7 +124,10 @@ Column
|
|||
{
|
||||
id: cancelButton
|
||||
fixedWidthMode: true
|
||||
anchors.fill: parent
|
||||
height: parent.height
|
||||
anchors.left: parent.left
|
||||
|
||||
anchors.right: parent.right
|
||||
text: catalog.i18nc("@button", "Cancel")
|
||||
enabled: sliceButton.enabled
|
||||
visible: !sliceButton.visible
|
||||
|
@ -133,8 +142,12 @@ Column
|
|||
target: UM.Preferences
|
||||
onPreferenceChanged:
|
||||
{
|
||||
if (preference !== "general/auto_slice")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var autoSlice = UM.Preferences.getValue("general/auto_slice")
|
||||
print(prepareButtons.autoSlice, autoSlice)
|
||||
if(prepareButtons.autoSlice != autoSlice)
|
||||
{
|
||||
prepareButtons.autoSlice = autoSlice
|
||||
|
@ -152,7 +165,7 @@ Column
|
|||
shortcut: "Ctrl+P"
|
||||
onTriggered:
|
||||
{
|
||||
if (prepareButton.enabled)
|
||||
if (sliceButton.enabled)
|
||||
{
|
||||
sliceOrStopSlicing()
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@ Item
|
|||
|
||||
property alias showProfileFolder: showProfileFolderAction;
|
||||
property alias documentation: documentationAction;
|
||||
property alias showTroubleshooting: showTroubleShootingAction
|
||||
property alias reportBug: reportBugAction;
|
||||
property alias about: aboutAction;
|
||||
|
||||
|
@ -69,18 +70,26 @@ Item
|
|||
|
||||
UM.I18nCatalog{id: catalog; name: "cura"}
|
||||
|
||||
|
||||
Action
|
||||
{
|
||||
id: showTroubleShootingAction
|
||||
onTriggered: Qt.openUrlExternally("https://ultimaker.com/en/troubleshooting")
|
||||
text: catalog.i18nc("@action:inmenu", "Show Online Troubleshooting Guide");
|
||||
}
|
||||
|
||||
Action
|
||||
{
|
||||
id:toggleFullScreenAction
|
||||
shortcut: StandardKey.FullScreen;
|
||||
text: catalog.i18nc("@action:inmenu","Toggle Full Screen");
|
||||
text: catalog.i18nc("@action:inmenu", "Toggle Full Screen");
|
||||
iconName: "view-fullscreen";
|
||||
}
|
||||
|
||||
Action
|
||||
{
|
||||
id: undoAction;
|
||||
text: catalog.i18nc("@action:inmenu menubar:edit","&Undo");
|
||||
text: catalog.i18nc("@action:inmenu menubar:edit", "&Undo");
|
||||
iconName: "edit-undo";
|
||||
shortcut: StandardKey.Undo;
|
||||
onTriggered: UM.OperationStack.undo();
|
||||
|
|
63
resources/qml/CheckBoxWithTooltip.qml
Normal file
63
resources/qml/CheckBoxWithTooltip.qml
Normal file
|
@ -0,0 +1,63 @@
|
|||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.1
|
||||
|
||||
import UM 1.3 as UM
|
||||
|
||||
CheckBox
|
||||
{
|
||||
id: checkbox
|
||||
hoverEnabled: true
|
||||
|
||||
property alias tooltip: tooltip.text
|
||||
|
||||
indicator: Rectangle
|
||||
{
|
||||
implicitWidth: UM.Theme.getSize("checkbox").width
|
||||
implicitHeight: UM.Theme.getSize("checkbox").height
|
||||
x: 0
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
color: UM.Theme.getColor("main_background")
|
||||
radius: UM.Theme.getSize("checkbox_radius").width
|
||||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color: checkbox.hovered ? UM.Theme.getColor("checkbox_border_hover") : UM.Theme.getColor("checkbox_border")
|
||||
|
||||
UM.RecolorImage
|
||||
{
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: Math.round(parent.width / 2.5)
|
||||
height: Math.round(parent.height / 2.5)
|
||||
sourceSize.height: width
|
||||
color: UM.Theme.getColor("checkbox_mark")
|
||||
source: UM.Theme.getIcon("check")
|
||||
opacity: checkbox.checked
|
||||
Behavior on opacity { NumberAnimation { duration: 100; } }
|
||||
}
|
||||
}
|
||||
|
||||
contentItem: Label
|
||||
{
|
||||
anchors
|
||||
{
|
||||
left: checkbox.indicator.right
|
||||
leftMargin: UM.Theme.getSize("narrow_margin").width
|
||||
}
|
||||
text: checkbox.text
|
||||
color: UM.Theme.getColor("checkbox_text")
|
||||
font: UM.Theme.getFont("default")
|
||||
renderType: Text.NativeRendering
|
||||
elide: Text.ElideRight
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
|
||||
ToolTip
|
||||
{
|
||||
id: tooltip
|
||||
text: ""
|
||||
delay: 500
|
||||
visible: text != "" && checkbox.hovered
|
||||
}
|
||||
}
|
|
@ -124,16 +124,16 @@ UM.MainWindow
|
|||
}
|
||||
}
|
||||
|
||||
// This is a placehoder for adding a pattern in the header
|
||||
Image
|
||||
{
|
||||
id: backgroundPattern
|
||||
anchors.fill: parent
|
||||
fillMode: Image.Tile
|
||||
source: UM.Theme.getImage("header_pattern")
|
||||
horizontalAlignment: Image.AlignLeft
|
||||
verticalAlignment: Image.AlignTop
|
||||
}
|
||||
// This is a placehoder for adding a pattern in the header
|
||||
Image
|
||||
{
|
||||
id: backgroundPattern
|
||||
anchors.fill: parent
|
||||
fillMode: Image.Tile
|
||||
source: UM.Theme.getImage("header_pattern")
|
||||
horizontalAlignment: Image.AlignLeft
|
||||
verticalAlignment: Image.AlignTop
|
||||
}
|
||||
}
|
||||
|
||||
MainWindowHeader
|
||||
|
@ -248,11 +248,59 @@ UM.MainWindow
|
|||
|
||||
Cura.ActionPanelWidget
|
||||
{
|
||||
id: actionPanelWidget
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.rightMargin: UM.Theme.getSize("thick_margin").width
|
||||
anchors.bottomMargin: UM.Theme.getSize("thick_margin").height
|
||||
visible: CuraApplication.platformActivity
|
||||
|
||||
/*
|
||||
Show this panel only if there is something on the build plate, and there is NOT an opaque item in front of the build plate.
|
||||
This cannot be solved by Z indexing! If you want to try solving this, please increase this counter when you're done:
|
||||
Number of people having tried to fix this by z-indexing: 2
|
||||
The problem arises from the following render order requirements:
|
||||
- The stage menu must be rendered above the stage main.
|
||||
- The stage main must be rendered above the action panel (because the monitor page must be rendered above the action panel).
|
||||
- The action panel must be rendered above the expandable components drop-down.
|
||||
However since the expandable components drop-downs are child elements of the stage menu,
|
||||
they can't be rendered lower than elements that are lower than the stage menu.
|
||||
Therefore we opted to forego the second requirement and hide the action panel instead when something obscures it (except the expandable components).
|
||||
We assume that QQuickRectangles are always opaque and any other item is not.
|
||||
*/
|
||||
visible: CuraApplication.platformActivity && (main.item == null || !qmlTypeOf(main.item, "QQuickRectangle"))
|
||||
}
|
||||
|
||||
Item
|
||||
{
|
||||
id: additionalComponents
|
||||
width: childrenRect.width
|
||||
anchors.right: actionPanelWidget.left
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
anchors.bottom: actionPanelWidget.bottom
|
||||
anchors.bottomMargin: UM.Theme.getSize("thick_margin").height * 2
|
||||
visible: actionPanelWidget.visible
|
||||
Row
|
||||
{
|
||||
id: additionalComponentsRow
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
spacing: UM.Theme.getSize("default_margin").width
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: contentItem.addAdditionalComponents()
|
||||
|
||||
Connections
|
||||
{
|
||||
target: CuraApplication
|
||||
onAdditionalComponentsChanged: contentItem.addAdditionalComponents("saveButton")
|
||||
}
|
||||
|
||||
function addAdditionalComponents()
|
||||
{
|
||||
for (var component in CuraApplication.additionalComponents["saveButton"])
|
||||
{
|
||||
CuraApplication.additionalComponents["saveButton"][component].parent = additionalComponentsRow
|
||||
}
|
||||
}
|
||||
|
||||
Loader
|
||||
|
@ -353,9 +401,6 @@ UM.MainWindow
|
|||
|
||||
insertPage(4, catalog.i18nc("@title:tab", "Profiles"), Qt.resolvedUrl("Preferences/ProfilesPage.qml"));
|
||||
|
||||
// Remove plug-ins page because we will use the shiny new plugin browser:
|
||||
removePage(5);
|
||||
|
||||
//Force refresh
|
||||
setPage(0);
|
||||
}
|
||||
|
@ -818,4 +863,21 @@ UM.MainWindow
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Function to check whether a QML object has a certain type.
|
||||
* Taken from StackOverflow: https://stackoverflow.com/a/28384228 and
|
||||
* adapted to our code style.
|
||||
* Licensed under CC BY-SA 3.0.
|
||||
* \param obj The QtObject to get the name of.
|
||||
* \param class_name (str) The name of the class to check against. Has to be
|
||||
* the QtObject class name, not the QML entity name.
|
||||
*/
|
||||
function qmlTypeOf(obj, class_name)
|
||||
{
|
||||
//className plus "(" is the class instance without modification.
|
||||
//className plus "_QML" is the class instance with user-defined properties.
|
||||
var str = obj.toString();
|
||||
return str.indexOf(class_name + "(") == 0 || str.indexOf(class_name + "_QML") == 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ UM.Dialog
|
|||
id: version
|
||||
|
||||
text: catalog.i18nc("@label","version: %1").arg(UM.Application.version)
|
||||
font: UM.Theme.getFont("large")
|
||||
font: UM.Theme.getFont("large_bold")
|
||||
color: UM.Theme.getColor("text")
|
||||
anchors.right : logo.right
|
||||
anchors.top: logo.bottom
|
||||
|
|
|
@ -64,7 +64,7 @@ Item
|
|||
property alias iconSize: collapseButton.height
|
||||
|
||||
// Is the "drawer" open?
|
||||
readonly property alias expanded: contentContainer.visible
|
||||
property alias expanded: contentContainer.visible
|
||||
|
||||
// What should the radius of the header be. This is also influenced by the headerCornerSide
|
||||
property alias headerRadius: background.radius
|
||||
|
|
|
@ -25,7 +25,7 @@ Cura.RoundedRectangle
|
|||
{
|
||||
id: headerLabel
|
||||
text: ""
|
||||
font: UM.Theme.getFont("default")
|
||||
font: UM.Theme.getFont("medium")
|
||||
renderType: Text.NativeRendering
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
color: UM.Theme.getColor("small_button_text")
|
||||
|
|
|
@ -48,7 +48,7 @@ Item
|
|||
id: extruderNumberText
|
||||
anchors.centerIn: parent
|
||||
text: index + 1
|
||||
font: UM.Theme.getFont("very_small")
|
||||
font: UM.Theme.getFont("small")
|
||||
color: UM.Theme.getColor("text")
|
||||
width: contentWidth
|
||||
height: contentHeight
|
||||
|
@ -66,7 +66,7 @@ Item
|
|||
sourceSize.height: width
|
||||
source: UM.Theme.getIcon("cross1")
|
||||
visible: !extruderEnabled
|
||||
color: "black"
|
||||
color: UM.Theme.getColor("text")
|
||||
}
|
||||
}
|
||||
}
|
|
@ -97,7 +97,7 @@ Item
|
|||
style: TextFieldStyle
|
||||
{
|
||||
textColor: UM.Theme.getColor("text_scene")
|
||||
font: UM.Theme.getFont("default_bold")
|
||||
font: UM.Theme.getFont("default")
|
||||
background: Rectangle
|
||||
{
|
||||
opacity: 0
|
||||
|
@ -115,7 +115,7 @@ Item
|
|||
|
||||
height: UM.Theme.getSize("jobspecs_line").height
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font: UM.Theme.getFont("default_bold")
|
||||
font: UM.Theme.getFont("default")
|
||||
color: UM.Theme.getColor("text_scene")
|
||||
text: CuraApplication.getSceneBoundingBoxString
|
||||
}
|
||||
|
|
|
@ -83,14 +83,6 @@ Item
|
|||
}
|
||||
}
|
||||
|
||||
Menu
|
||||
{
|
||||
id: plugin_menu
|
||||
title: catalog.i18nc("@title:menu menubar:toplevel", "&Marketplace")
|
||||
|
||||
MenuItem { action: Cura.Actions.browsePackages }
|
||||
}
|
||||
|
||||
Menu
|
||||
{
|
||||
id: preferencesMenu
|
||||
|
@ -105,6 +97,7 @@ Item
|
|||
title: catalog.i18nc("@title:menu menubar:toplevel", "&Help")
|
||||
|
||||
MenuItem { action: Cura.Actions.showProfileFolder }
|
||||
MenuItem { action: Cura.Actions.showTroubleshooting}
|
||||
MenuItem { action: Cura.Actions.documentation }
|
||||
MenuItem { action: Cura.Actions.reportBug }
|
||||
MenuSeparator { }
|
||||
|
|
|
@ -30,7 +30,8 @@ Item
|
|||
width: UM.Theme.getSize("logo").width
|
||||
height: UM.Theme.getSize("logo").height
|
||||
|
||||
mipmap: true
|
||||
sourceSize.width: width
|
||||
sourceSize.height: height
|
||||
}
|
||||
|
||||
Row
|
||||
|
@ -101,6 +102,7 @@ Item
|
|||
{
|
||||
id: label
|
||||
text: marketplaceButton.text
|
||||
font: UM.Theme.getFont("default")
|
||||
color: marketplaceButton.hovered ? UM.Theme.getColor("main_window_header_background") : UM.Theme.getColor("primary_text")
|
||||
width: contentWidth
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
|
|
@ -16,7 +16,7 @@ Item
|
|||
{
|
||||
id: header
|
||||
text: catalog.i18nc("@header", "Configurations")
|
||||
font: UM.Theme.getFont("default")
|
||||
font: UM.Theme.getFont("medium")
|
||||
color: UM.Theme.getColor("small_button_text")
|
||||
height: contentHeight
|
||||
renderType: Text.NativeRendering
|
||||
|
|
|
@ -12,7 +12,23 @@ Button
|
|||
id: configurationItem
|
||||
|
||||
property var configuration: null
|
||||
hoverEnabled: true
|
||||
hoverEnabled: isValidMaterial
|
||||
|
||||
property bool isValidMaterial:
|
||||
{
|
||||
var extruderConfigurations = configuration.extruderConfigurations
|
||||
|
||||
for (var index in extruderConfigurations)
|
||||
{
|
||||
var name = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : ""
|
||||
|
||||
if (name == "" || name == "Unknown")
|
||||
{
|
||||
return false
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
background: Rectangle
|
||||
{
|
||||
|
@ -40,17 +56,104 @@ Button
|
|||
right: parent.right
|
||||
rightMargin: UM.Theme.getSize("wide_margin").width
|
||||
}
|
||||
|
||||
height: childrenRect.height
|
||||
spacing: UM.Theme.getSize("default_margin").width
|
||||
|
||||
Repeater
|
||||
{
|
||||
id: repeater
|
||||
model: configuration.extruderConfigurations
|
||||
|
||||
delegate: PrintCoreConfiguration
|
||||
{
|
||||
width: Math.round(parent.width / 2)
|
||||
printCoreConfiguration: modelData
|
||||
visible: configurationItem.isValidMaterial
|
||||
}
|
||||
}
|
||||
|
||||
// Unknown material
|
||||
Item
|
||||
{
|
||||
id: unknownMaterial
|
||||
height: unknownMaterialMessage.height + UM.Theme.getSize("thin_margin").width / 2
|
||||
width: parent.width
|
||||
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: UM.Theme.getSize("thin_margin").width / 2
|
||||
|
||||
visible: !configurationItem.isValidMaterial
|
||||
|
||||
UM.RecolorImage
|
||||
{
|
||||
id: icon
|
||||
anchors.verticalCenter: unknownMaterialMessage.verticalCenter
|
||||
|
||||
source: UM.Theme.getIcon("warning")
|
||||
color: UM.Theme.getColor("warning")
|
||||
width: UM.Theme.getSize("section_icon").width
|
||||
height: width
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
id: unknownMaterialMessage
|
||||
text:
|
||||
{
|
||||
var extruderConfigurations = configuration.extruderConfigurations
|
||||
var unknownMaterials = []
|
||||
for (var index in extruderConfigurations)
|
||||
{
|
||||
var name = extruderConfigurations[index].material ? extruderConfigurations[index].material.name : ""
|
||||
if (name == "" || name == "Unknown")
|
||||
{
|
||||
var materialType = extruderConfigurations[index].material.type
|
||||
if (extruderConfigurations[index].material.type == "")
|
||||
{
|
||||
materialType = "Unknown"
|
||||
}
|
||||
|
||||
var brand = extruderConfigurations[index].material.brand
|
||||
if (brand == "")
|
||||
{
|
||||
brand = "Unknown"
|
||||
}
|
||||
|
||||
name = materialType + " (" + brand + ")"
|
||||
unknownMaterials.push(name)
|
||||
}
|
||||
}
|
||||
|
||||
unknownMaterials = "<b>" + unknownMaterials + "</b>"
|
||||
var draftResult = catalog.i18nc("@label", "This configuration is not available because %1 is not recognized. Please visit %2 to download the correct material profile.");
|
||||
var result = draftResult.arg(unknownMaterials).arg("<a href=' '>" + catalog.i18nc("@label","Marketplace") + "</a> ")
|
||||
|
||||
return result
|
||||
}
|
||||
width: extruderRow.width
|
||||
|
||||
anchors.left: icon.right
|
||||
anchors.right: unknownMaterial.right
|
||||
anchors.leftMargin: UM.Theme.getSize("wide_margin").height
|
||||
anchors.top: unknownMaterial.top
|
||||
|
||||
wrapMode: Text.WordWrap
|
||||
font: UM.Theme.getFont("default")
|
||||
color: UM.Theme.getColor("text")
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
linkColor: UM.Theme.getColor("text_link")
|
||||
|
||||
onLinkActivated:
|
||||
{
|
||||
Cura.Actions.browsePackages.trigger()
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: parent
|
||||
cursorShape: unknownMaterialMessage.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor
|
||||
acceptedButtons: Qt.NoButton
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -84,27 +187,15 @@ Button
|
|||
rightMargin: UM.Theme.getSize("wide_margin").width
|
||||
}
|
||||
height: childrenRect.height
|
||||
visible: configuration.buildplateConfiguration != ""
|
||||
visible: configuration.buildplateConfiguration != "" && false //Buildplate is disabled as long as we have no printers that properly support buildplate swapping (so we can't test).
|
||||
|
||||
UM.RecolorImage
|
||||
{
|
||||
id: buildplateIcon
|
||||
anchors.left: parent.left
|
||||
width: UM.Theme.getSize("main_window_header_button_icon").width
|
||||
height: UM.Theme.getSize("main_window_header_button_icon").height
|
||||
source: UM.Theme.getIcon("buildplate")
|
||||
color: UM.Theme.getColor("text")
|
||||
}
|
||||
|
||||
Label
|
||||
// Show the type of buildplate. The first letter is capitalized
|
||||
Cura.IconWithText
|
||||
{
|
||||
id: buildplateLabel
|
||||
anchors.left: buildplateIcon.right
|
||||
anchors.verticalCenter: buildplateIcon.verticalCenter
|
||||
anchors.leftMargin: UM.Theme.getSize("narrow_margin").height
|
||||
text: configuration.buildplateConfiguration
|
||||
renderType: Text.NativeRendering
|
||||
color: UM.Theme.getColor("text")
|
||||
source: UM.Theme.getIcon("buildplate")
|
||||
text: configuration.buildplateConfiguration.charAt(0).toUpperCase() + configuration.buildplateConfiguration.substr(1)
|
||||
anchors.left: parent.left
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -125,6 +216,9 @@ Button
|
|||
|
||||
onClicked:
|
||||
{
|
||||
Cura.MachineManager.applyRemoteConfiguration(configuration)
|
||||
if(isValidMaterial)
|
||||
{
|
||||
Cura.MachineManager.applyRemoteConfiguration(configuration);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ Item
|
|||
}
|
||||
}
|
||||
|
||||
// This component will appear when there is no configurations (e.g. when losing connection)
|
||||
// This component will appear when there are no configurations (e.g. when losing connection or when they are being loaded)
|
||||
Item
|
||||
{
|
||||
width: parent.width
|
||||
|
@ -51,7 +51,11 @@ Item
|
|||
anchors.left: icon.right
|
||||
anchors.right: parent.right
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
text: catalog.i18nc("@label", "The configurations are not available because the printer is disconnected.")
|
||||
// There are two cases that we want to diferenciate, one is when Cura is loading the configurations and the
|
||||
// other when the connection was lost
|
||||
text: Cura.MachineManager.printerConnected ?
|
||||
catalog.i18nc("@label", "Loading available configurations from the printer...") :
|
||||
catalog.i18nc("@label", "The configurations are not available because the printer is disconnected.")
|
||||
color: UM.Theme.getColor("text")
|
||||
font: UM.Theme.getFont("default")
|
||||
renderType: Text.NativeRendering
|
||||
|
@ -93,6 +97,7 @@ Item
|
|||
spacing: UM.Theme.getSize("narrow_margin").height
|
||||
width: container.width - ((height > container.maximumHeight) ? container.ScrollBar.vertical.background.width : 0) //Make room for scroll bar if there is any.
|
||||
height: childrenRect.height
|
||||
interactive: false // let the ScrollView process scroll events.
|
||||
|
||||
section.property: "modelData.printerType"
|
||||
section.criteria: ViewSection.FullString
|
||||
|
|
|
@ -64,27 +64,9 @@ Cura.ExpandablePopup
|
|||
// Label for the brand of the material
|
||||
Label
|
||||
{
|
||||
id: brandNameLabel
|
||||
id: typeAndBrandNameLabel
|
||||
|
||||
text: model.material_brand
|
||||
elide: Text.ElideRight
|
||||
font: UM.Theme.getFont("default")
|
||||
color: UM.Theme.getColor("text_inactive")
|
||||
renderType: Text.NativeRendering
|
||||
|
||||
anchors
|
||||
{
|
||||
left: extruderIcon.right
|
||||
leftMargin: UM.Theme.getSize("default_margin").width
|
||||
right: parent.right
|
||||
rightMargin: UM.Theme.getSize("default_margin").width
|
||||
}
|
||||
}
|
||||
|
||||
// Label that shows the name of the material
|
||||
Label
|
||||
{
|
||||
text: model.material
|
||||
text: model.material_brand + " " + model.material
|
||||
elide: Text.ElideRight
|
||||
font: UM.Theme.getFont("default")
|
||||
color: UM.Theme.getColor("text")
|
||||
|
@ -92,11 +74,31 @@ Cura.ExpandablePopup
|
|||
|
||||
anchors
|
||||
{
|
||||
top: extruderIcon.top
|
||||
left: extruderIcon.right
|
||||
leftMargin: UM.Theme.getSize("default_margin").width
|
||||
right: parent.right
|
||||
rightMargin: UM.Theme.getSize("default_margin").width
|
||||
top: brandNameLabel.bottom
|
||||
}
|
||||
}
|
||||
// Label that shows the name of the variant
|
||||
Label
|
||||
{
|
||||
id: variantLabel
|
||||
|
||||
visible: Cura.MachineManager.hasVariants
|
||||
|
||||
text: model.variant
|
||||
elide: Text.ElideRight
|
||||
font: UM.Theme.getFont("default_bold")
|
||||
color: UM.Theme.getColor("text")
|
||||
renderType: Text.NativeRendering
|
||||
|
||||
anchors
|
||||
{
|
||||
left: extruderIcon.right
|
||||
leftMargin: UM.Theme.getSize("default_margin").width
|
||||
top: typeAndBrandNameLabel.bottom
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -107,7 +109,7 @@ Cura.ExpandablePopup
|
|||
{
|
||||
text: catalog.i18nc("@label", "Select configuration")
|
||||
elide: Text.ElideRight
|
||||
font: UM.Theme.getFont("default")
|
||||
font: UM.Theme.getFont("medium")
|
||||
color: UM.Theme.getColor("text")
|
||||
renderType: Text.NativeRendering
|
||||
|
||||
|
@ -136,9 +138,9 @@ Cura.ExpandablePopup
|
|||
|
||||
onVisibleChanged:
|
||||
{
|
||||
is_connected = Cura.MachineManager.activeMachineHasRemoteConnection && Cura.MachineManager.printerConnected //Re-evaluate.
|
||||
is_connected = Cura.MachineManager.activeMachineHasRemoteConnection && Cura.MachineManager.printerConnected && Cura.MachineManager.printerOutputDevices[0].uniqueConfigurations.length > 0 //Re-evaluate.
|
||||
|
||||
// If the printer is not connected, we switch always to the custom mode. If is connected instead, the auto mode
|
||||
// If the printer is not connected or does not have configurations, we switch always to the custom mode. If is connected instead, the auto mode
|
||||
// or the previous state is selected
|
||||
configuration_method = is_connected ? (manual_selected_method == -1 ? ConfigurationMenu.ConfigurationMethod.Auto : manual_selected_method) : ConfigurationMenu.ConfigurationMethod.Custom
|
||||
}
|
||||
|
@ -173,6 +175,59 @@ Cura.ExpandablePopup
|
|||
}
|
||||
}
|
||||
|
||||
Item
|
||||
{
|
||||
height: visible ? childrenRect.height: 0
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||
width: childrenRect.width + UM.Theme.getSize("default_margin").width
|
||||
visible: popupItem.configuration_method == ConfigurationMenu.ConfigurationMethod.Custom
|
||||
UM.RecolorImage
|
||||
{
|
||||
id: externalLinkIcon
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||
height: materialInfoLabel.height
|
||||
width: height
|
||||
sourceSize.height: width
|
||||
color: UM.Theme.getColor("text_link")
|
||||
source: UM.Theme.getIcon("external_link")
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
id: materialInfoLabel
|
||||
wrapMode: Text.WordWrap
|
||||
text: catalog.i18nc("@label", "See the material compatibility chart")
|
||||
font: UM.Theme.getFont("default")
|
||||
color: UM.Theme.getColor("text_link")
|
||||
linkColor: UM.Theme.getColor("text_link")
|
||||
anchors.left: externalLinkIcon.right
|
||||
anchors.leftMargin: UM.Theme.getSize("narrow_margin").width
|
||||
renderType: Text.NativeRendering
|
||||
|
||||
MouseArea
|
||||
{
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
onClicked:
|
||||
{
|
||||
// open the material URL with web browser
|
||||
var url = "https://ultimaker.com/incoming-links/cura/material-compatibilty"
|
||||
Qt.openUrlExternally(url)
|
||||
}
|
||||
onEntered:
|
||||
{
|
||||
materialInfoLabel.font.underline = true
|
||||
}
|
||||
onExited:
|
||||
{
|
||||
materialInfoLabel.font.underline = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle
|
||||
{
|
||||
id: separator
|
||||
|
|
|
@ -23,7 +23,7 @@ Item
|
|||
{
|
||||
id: header
|
||||
text: catalog.i18nc("@header", "Custom")
|
||||
font: UM.Theme.getFont("default")
|
||||
font: UM.Theme.getFont("medium")
|
||||
color: UM.Theme.getColor("small_button_text")
|
||||
height: contentHeight
|
||||
renderType: Text.NativeRendering
|
||||
|
|
|
@ -39,7 +39,7 @@ Row
|
|||
text: printCoreConfiguration.material.brand ? printCoreConfiguration.material.name : " " //Use space so that the height is still correct.
|
||||
renderType: Text.NativeRendering
|
||||
elide: Text.ElideRight
|
||||
font: UM.Theme.getFont("default")
|
||||
font: UM.Theme.getFont("medium")
|
||||
color: UM.Theme.getColor("text")
|
||||
}
|
||||
Label
|
||||
|
|
|
@ -7,16 +7,18 @@ import QtQuick.Controls 1.4
|
|||
import UM 1.2 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
Instantiator {
|
||||
model: UM.ContainerStacksModel {
|
||||
filter: {"type": "machine", "um_network_key": null}
|
||||
}
|
||||
MenuItem {
|
||||
text: model.name;
|
||||
checkable: true;
|
||||
Instantiator
|
||||
{
|
||||
model: Cura.GlobalStacksModel {}
|
||||
|
||||
MenuItem
|
||||
{
|
||||
text: model.name
|
||||
checkable: true
|
||||
checked: Cura.MachineManager.activeMachineId == model.id
|
||||
exclusiveGroup: group;
|
||||
onTriggered: Cura.MachineManager.setActiveMachine(model.id);
|
||||
exclusiveGroup: group
|
||||
visible: !model.hasRemoteConnection
|
||||
onTriggered: Cura.MachineManager.setActiveMachine(model.id)
|
||||
}
|
||||
onObjectAdded: menu.insertItem(index, object)
|
||||
onObjectRemoved: menu.removeItem(object)
|
||||
|
|
|
@ -9,19 +9,23 @@ import Cura 1.0 as Cura
|
|||
|
||||
Instantiator
|
||||
{
|
||||
model: UM.ContainerStacksModel
|
||||
{
|
||||
filter: {"type": "machine", "um_network_key": "*", "hidden": "False"}
|
||||
}
|
||||
model: Cura.GlobalStacksModel {}
|
||||
MenuItem
|
||||
{
|
||||
// TODO: Use printer_group icon when it's a cluster. Not use it for now since it doesn't look as expected
|
||||
// iconSource: UM.Theme.getIcon("printer_single")
|
||||
text: model.metadata["connect_group_name"]
|
||||
checkable: true;
|
||||
checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"]
|
||||
exclusiveGroup: group;
|
||||
onTriggered: Cura.MachineManager.setActiveMachine(model.id);
|
||||
property string connectGroupName:
|
||||
{
|
||||
if("connect_group_name" in model.metadata)
|
||||
{
|
||||
return model.metadata["connect_group_name"]
|
||||
}
|
||||
return ""
|
||||
}
|
||||
text: connectGroupName
|
||||
checkable: true
|
||||
visible: model.hasRemoteConnection
|
||||
checked: Cura.MachineManager.activeMachineNetworkGroupName == connectGroupName
|
||||
exclusiveGroup: group
|
||||
onTriggered: Cura.MachineManager.setActiveMachine(model.id)
|
||||
}
|
||||
onObjectAdded: menu.insertItem(index, object)
|
||||
onObjectRemoved: menu.removeItem(object)
|
||||
|
|
|
@ -20,7 +20,7 @@ Menu
|
|||
text:
|
||||
{
|
||||
var full_text = (model.layer_height != "") ? model.name + " - " + model.layer_height + model.layer_height_unit : model.name
|
||||
full_text += model.is_experimental ? " - Experimental" : ""
|
||||
full_text += model.is_experimental ? " - " + catalog.i18nc("@label", "Experimental") : ""
|
||||
return full_text
|
||||
}
|
||||
checkable: true
|
||||
|
|
|
@ -168,7 +168,7 @@ Item
|
|||
anchors.leftMargin: UM.Theme.getSize("thick_margin").width
|
||||
|
||||
color: base.statusColor
|
||||
font: UM.Theme.getFont("large")
|
||||
font: UM.Theme.getFont("large_bold")
|
||||
text: statusText
|
||||
}
|
||||
|
||||
|
@ -179,7 +179,7 @@ Item
|
|||
anchors.right: progressBar.right
|
||||
|
||||
color: base.statusColor
|
||||
font: UM.Theme.getFont("large")
|
||||
font: UM.Theme.getFont("large_bold")
|
||||
text: Math.round(progress) + "%"
|
||||
visible: showProgress
|
||||
}
|
||||
|
|
|
@ -746,6 +746,11 @@ UM.PreferencesPage
|
|||
target: UM.Preferences
|
||||
onPreferenceChanged:
|
||||
{
|
||||
if (preference !== "info/send_slice_info")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
sendDataCheckbox.checked = boolCheck(UM.Preferences.getValue("info/send_slice_info"))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,7 +70,7 @@ UM.ManagementPage
|
|||
{
|
||||
id: machineName
|
||||
text: base.currentItem && base.currentItem.name ? base.currentItem.name : ""
|
||||
font: UM.Theme.getFont("large")
|
||||
font: UM.Theme.getFont("large_bold")
|
||||
width: parent.width
|
||||
elide: Text.ElideRight
|
||||
}
|
||||
|
@ -126,132 +126,15 @@ UM.ManagementPage
|
|||
}
|
||||
}
|
||||
|
||||
Grid
|
||||
{
|
||||
id: machineInfo
|
||||
|
||||
anchors.top: machineActions.visible ? machineActions.bottom : machineActions.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
|
||||
rowSpacing: UM.Theme.getSize("default_lining").height
|
||||
columns: 2
|
||||
|
||||
visible: base.currentItem
|
||||
|
||||
property bool printerConnected: Cura.MachineManager.printerConnected
|
||||
property var connectedPrinter: printerConnected ? Cura.MachineManager.printerOutputDevices[0] : null
|
||||
property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands
|
||||
property var printJob: connectedPrinter != null ? connectedPrinter.activePrintJob: null
|
||||
Label
|
||||
{
|
||||
text: catalog.i18nc("@label", "Printer type:")
|
||||
visible: base.currentItem && "definition_name" in base.currentItem.metadata
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: (base.currentItem && "definition_name" in base.currentItem.metadata) ? base.currentItem.metadata.definition_name : ""
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: catalog.i18nc("@label", "Connection:")
|
||||
visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId
|
||||
}
|
||||
Label
|
||||
{
|
||||
width: (parent.width * 0.7) | 0
|
||||
text: machineInfo.printerConnected ? machineInfo.connectedPrinter.connectionText : catalog.i18nc("@info:status", "The printer is not connected.")
|
||||
visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: catalog.i18nc("@label", "State:")
|
||||
visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId && machineInfo.printerAcceptsCommands
|
||||
}
|
||||
Label {
|
||||
width: (parent.width * 0.7) | 0
|
||||
text:
|
||||
{
|
||||
if(!machineInfo.printerConnected || !machineInfo.printerAcceptsCommands) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (machineInfo.printJob == null)
|
||||
{
|
||||
return catalog.i18nc("@label:MonitorStatus", "Waiting for a printjob");
|
||||
}
|
||||
|
||||
switch(machineInfo.printJob.state)
|
||||
{
|
||||
case "printing":
|
||||
return catalog.i18nc("@label:MonitorStatus", "Printing...");
|
||||
case "paused":
|
||||
return catalog.i18nc("@label:MonitorStatus", "Paused");
|
||||
case "pre_print":
|
||||
return catalog.i18nc("@label:MonitorStatus", "Preparing...");
|
||||
case "wait_cleanup":
|
||||
return catalog.i18nc("@label:MonitorStatus", "Waiting for someone to clear the build plate");
|
||||
case "error":
|
||||
return printerOutputDevice.errorText;
|
||||
case "maintenance":
|
||||
return catalog.i18nc("@label:MonitorStatus", "In maintenance. Please check the printer");
|
||||
case "abort": // note sure if this jobState actually occurs in the wild
|
||||
return catalog.i18nc("@label:MonitorStatus", "Aborting print...");
|
||||
|
||||
}
|
||||
return ""
|
||||
}
|
||||
visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId && machineInfo.printerAcceptsCommands
|
||||
wrapMode: Text.WordWrap
|
||||
}
|
||||
}
|
||||
|
||||
Column {
|
||||
id: additionalComponentsColumn
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.top: machineInfo.visible ? machineInfo.bottom : machineInfo.anchors.top
|
||||
anchors.topMargin: UM.Theme.getSize("default_margin").width
|
||||
|
||||
spacing: UM.Theme.getSize("default_margin").width
|
||||
visible: base.currentItem && base.currentItem.id == Cura.MachineManager.activeMachineId
|
||||
|
||||
Component.onCompleted:
|
||||
{
|
||||
for (var component in CuraApplication.additionalComponents["machinesDetailPane"]) {
|
||||
CuraApplication.additionalComponents["machinesDetailPane"][component].parent = additionalComponentsColumn
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
addAdditionalComponents("machinesDetailPane")
|
||||
}
|
||||
|
||||
Connections {
|
||||
target: CuraApplication
|
||||
onAdditionalComponentsChanged: addAdditionalComponents
|
||||
}
|
||||
|
||||
function addAdditionalComponents (areaId) {
|
||||
if(areaId == "machinesDetailPane") {
|
||||
for (var component in CuraApplication.additionalComponents["machinesDetailPane"]) {
|
||||
CuraApplication.additionalComponents["machinesDetailPane"][component].parent = additionalComponentsColumn
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UM.I18nCatalog { id: catalog; name: "cura"; }
|
||||
|
||||
UM.ConfirmRemoveDialog
|
||||
{
|
||||
id: confirmDialog;
|
||||
object: base.currentItem && base.currentItem.name ? base.currentItem.name : "";
|
||||
id: confirmDialog
|
||||
object: base.currentItem && base.currentItem.name ? base.currentItem.name : ""
|
||||
onYes:
|
||||
{
|
||||
Cura.MachineManager.removeMachine(base.currentItem.id);
|
||||
Cura.MachineManager.removeMachine(base.currentItem.id)
|
||||
if(!base.currentItem)
|
||||
{
|
||||
objectList.currentIndex = activeMachineIndex()
|
||||
|
|
|
@ -10,7 +10,7 @@ import QtQuick.Dialogs 1.2
|
|||
import UM 1.2 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
Rectangle
|
||||
Item
|
||||
{
|
||||
id: brand_section
|
||||
|
||||
|
@ -139,6 +139,11 @@ Rectangle
|
|||
target: UM.Preferences
|
||||
onPreferenceChanged:
|
||||
{
|
||||
if (preference !== "cura/expanded_types" && preference !== "cura/expanded_brands")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
expanded = materialList.expandedBrands.indexOf(sectionName) > -1
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,7 +65,7 @@ Item
|
|||
|
||||
Label {
|
||||
text: materialProperties.name
|
||||
font: UM.Theme.getFont("large")
|
||||
font: UM.Theme.getFont("large_bold")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ Item
|
|||
{
|
||||
text: catalog.i18nc("@action:button", "Activate")
|
||||
iconName: "list-activate"
|
||||
enabled: !isCurrentItemActivated
|
||||
enabled: !isCurrentItemActivated && Cura.MachineManager.hasMaterials
|
||||
onClicked:
|
||||
{
|
||||
forceActiveFocus()
|
||||
|
|
|
@ -15,7 +15,7 @@ Rectangle
|
|||
id: materialSlot
|
||||
property var material: null
|
||||
property var hovered: false
|
||||
property var is_favorite: material != null ? material.is_favorite : false
|
||||
property var is_favorite: material != null && material.is_favorite
|
||||
|
||||
height: UM.Theme.getSize("favorites_row").height
|
||||
width: parent.width
|
||||
|
@ -73,11 +73,9 @@ Rectangle
|
|||
if (materialSlot.is_favorite)
|
||||
{
|
||||
base.materialManager.removeFavorite(material.root_material_id)
|
||||
materialSlot.is_favorite = false
|
||||
return
|
||||
}
|
||||
base.materialManager.addFavorite(material.root_material_id)
|
||||
materialSlot.is_favorite = true
|
||||
return
|
||||
}
|
||||
style: ButtonStyle
|
||||
|
|
|
@ -10,7 +10,7 @@ import QtQuick.Dialogs 1.2
|
|||
import UM 1.2 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
Rectangle
|
||||
Item
|
||||
{
|
||||
id: material_type_section
|
||||
property var materialType
|
||||
|
@ -130,6 +130,11 @@ Rectangle
|
|||
target: UM.Preferences
|
||||
onPreferenceChanged:
|
||||
{
|
||||
if (preference !== "cura/expanded_types" && preference !== "cura/expanded_brands")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
expanded = materialList.expandedTypes.indexOf(materialType.brand + "_" + materialType.name) > -1
|
||||
}
|
||||
}
|
||||
|
|
|
@ -376,6 +376,7 @@ Item
|
|||
|
||||
width: true ? (parent.width * 0.4) | 0 : parent.width
|
||||
frameVisible: true
|
||||
clip: true
|
||||
|
||||
ListView
|
||||
{
|
||||
|
@ -408,7 +409,7 @@ Item
|
|||
{
|
||||
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")
|
||||
text: section == "true" ? catalog.i18nc("@label", "Default profiles") : catalog.i18nc("@label", "Custom profiles")
|
||||
font.bold: true
|
||||
}
|
||||
}
|
||||
|
@ -471,7 +472,7 @@ Item
|
|||
|
||||
Label {
|
||||
text: base.currentItemName
|
||||
font: UM.Theme.getFont("large")
|
||||
font: UM.Theme.getFont("large_bold")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ import Cura 1.0 as Cura
|
|||
Item
|
||||
{
|
||||
id: customPrintSetup
|
||||
height: childrenRect.height + padding
|
||||
|
||||
property real padding: UM.Theme.getSize("default_margin").width
|
||||
property bool multipleExtruders: extrudersModel.count > 1
|
||||
|
@ -98,15 +97,15 @@ Item
|
|||
|
||||
Rectangle
|
||||
{
|
||||
height: UM.Theme.getSize("print_setup_widget").height
|
||||
anchors
|
||||
{
|
||||
top: tabBar.visible ? tabBar.bottom : globalProfileRow.bottom
|
||||
topMargin: -UM.Theme.getSize("default_lining").width
|
||||
left: parent.left
|
||||
leftMargin: parent.padding
|
||||
right: parent.right
|
||||
rightMargin: parent.padding
|
||||
topMargin: -UM.Theme.getSize("default_lining").width
|
||||
bottom: parent.bottom
|
||||
}
|
||||
z: tabBar.z - 1
|
||||
// Don't show the border when only one extruder
|
||||
|
|
|
@ -25,7 +25,7 @@ Item
|
|||
right: globalProfileSelection.left
|
||||
}
|
||||
text: catalog.i18nc("@label", "Profile")
|
||||
font: UM.Theme.getFont("default")
|
||||
font: UM.Theme.getFont("medium")
|
||||
color: UM.Theme.getColor("text")
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
|
|
|
@ -29,4 +29,7 @@ Cura.ExpandableComponent
|
|||
property var extrudersModel: CuraApplication.getExtrudersModel()
|
||||
|
||||
contentItem: PrintSetupSelectorContents {}
|
||||
|
||||
onExpandedChanged: UM.Preferences.setValue("view/settings_visible", expanded)
|
||||
Component.onCompleted: expanded = UM.Preferences.getValue("view/settings_visible")
|
||||
}
|
|
@ -15,7 +15,7 @@ Item
|
|||
id: content
|
||||
|
||||
width: UM.Theme.getSize("print_setup_widget").width - 2 * UM.Theme.getSize("default_margin").width
|
||||
height: childrenRect.height
|
||||
height: contents.height + buttonRow.height
|
||||
|
||||
enum Mode
|
||||
{
|
||||
|
@ -71,6 +71,25 @@ Item
|
|||
right: parent.right
|
||||
top: parent.top
|
||||
}
|
||||
height: UM.Preferences.getValue("view/settings_list_height") - UM.Theme.getSize("default_margin").height
|
||||
Connections
|
||||
{
|
||||
target: UM.Preferences
|
||||
onPreferenceChanged:
|
||||
{
|
||||
if (preference !== "view/settings_list_height" && preference !== "general/window_height" && preference !== "general/window_state")
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
customPrintSetup.height =
|
||||
Math.min
|
||||
(
|
||||
UM.Preferences.getValue("view/settings_list_height"),
|
||||
base.height - (customPrintSetup.mapToItem(null, 0, 0).y + buttonRow.height + UM.Theme.getSize("default_margin").height)
|
||||
);
|
||||
}
|
||||
}
|
||||
visible: currentModeIndex == PrintSetupSelectorContents.Mode.Custom
|
||||
}
|
||||
}
|
||||
|
@ -90,17 +109,18 @@ Item
|
|||
{
|
||||
id: buttonRow
|
||||
property real padding: UM.Theme.getSize("default_margin").width
|
||||
height: childrenRect.height + 2 * padding
|
||||
height: recommendedButton.height + 2 * padding + (draggableArea.visible ? draggableArea.height : 0)
|
||||
|
||||
anchors
|
||||
{
|
||||
top: buttonsSeparator.bottom
|
||||
bottom: parent.bottom
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
|
||||
Cura.SecondaryButton
|
||||
{
|
||||
id: recommendedButton
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
anchors.margins: parent.padding
|
||||
|
@ -125,5 +145,72 @@ Item
|
|||
visible: currentModeIndex == PrintSetupSelectorContents.Mode.Recommended
|
||||
onClicked: currentModeIndex = PrintSetupSelectorContents.Mode.Custom
|
||||
}
|
||||
|
||||
//Invisible area at the bottom with which you can resize the panel.
|
||||
MouseArea
|
||||
{
|
||||
id: draggableArea
|
||||
anchors
|
||||
{
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
bottom: parent.bottom
|
||||
}
|
||||
height: childrenRect.height
|
||||
cursorShape: Qt.SplitVCursor
|
||||
visible: currentModeIndex == PrintSetupSelectorContents.Mode.Custom
|
||||
drag
|
||||
{
|
||||
target: parent
|
||||
axis: Drag.YAxis
|
||||
}
|
||||
onMouseYChanged:
|
||||
{
|
||||
if(drag.active)
|
||||
{
|
||||
// position of mouse relative to dropdown align vertical centre of mouse area to cursor
|
||||
// v------------------------------v v------------v
|
||||
var h = mouseY + buttonRow.y + content.y - height / 2 | 0;
|
||||
if(h < 200 * screenScaleFactor) //Enforce a minimum size.
|
||||
{
|
||||
h = 200 * screenScaleFactor;
|
||||
}
|
||||
|
||||
//Absolute mouse Y position in the window, to prevent it from going outside the window.
|
||||
var mouse_absolute_y = mapToGlobal(mouseX, mouseY).y - UM.Preferences.getValue("general/window_top");
|
||||
if(mouse_absolute_y > base.height)
|
||||
{
|
||||
h -= mouse_absolute_y - base.height;
|
||||
}
|
||||
|
||||
UM.Preferences.setValue("view/settings_list_height", h);
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle
|
||||
{
|
||||
width: parent.width
|
||||
height: UM.Theme.getSize("narrow_margin").height
|
||||
color: UM.Theme.getColor("secondary")
|
||||
|
||||
Rectangle
|
||||
{
|
||||
anchors.bottom: parent.top
|
||||
width: parent.width
|
||||
height: UM.Theme.getSize("default_lining").height
|
||||
color: UM.Theme.getColor("lining")
|
||||
}
|
||||
|
||||
UM.RecolorImage
|
||||
{
|
||||
width: UM.Theme.getSize("drag_icon").width
|
||||
height: UM.Theme.getSize("drag_icon").height
|
||||
anchors.centerIn: parent
|
||||
|
||||
source: UM.Theme.getIcon("resize")
|
||||
color: UM.Theme.getColor("small_button_text")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -24,11 +24,13 @@ RowLayout
|
|||
if (!Cura.MachineManager.hasNotSupportedQuality)
|
||||
{
|
||||
text += " " + layerHeight.properties.value + "mm"
|
||||
text += Cura.MachineManager.isActiveQualityExperimental ? " - " + catalog.i18nc("@label", "Experimental") : ""
|
||||
}
|
||||
return text
|
||||
}
|
||||
return ""
|
||||
}
|
||||
font: UM.Theme.getFont("medium")
|
||||
|
||||
UM.SettingPropertyProvider
|
||||
{
|
||||
|
@ -43,6 +45,7 @@ RowLayout
|
|||
{
|
||||
source: UM.Theme.getIcon("category_infill")
|
||||
text: Cura.MachineManager.activeStack ? parseInt(infillDensity.properties.value) + "%" : "0%"
|
||||
font: UM.Theme.getFont("medium")
|
||||
|
||||
UM.SettingPropertyProvider
|
||||
{
|
||||
|
@ -57,6 +60,7 @@ RowLayout
|
|||
{
|
||||
source: UM.Theme.getIcon("category_support")
|
||||
text: supportEnabled.properties.value == "True" ? enabledText : disabledText
|
||||
font: UM.Theme.getFont("medium")
|
||||
|
||||
UM.SettingPropertyProvider
|
||||
{
|
||||
|
@ -71,6 +75,7 @@ RowLayout
|
|||
{
|
||||
source: UM.Theme.getIcon("category_adhesion")
|
||||
text: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none" ? enabledText : disabledText
|
||||
font: UM.Theme.getFont("medium")
|
||||
|
||||
UM.SettingPropertyProvider
|
||||
{
|
||||
|
|
|
@ -26,6 +26,7 @@ Item
|
|||
anchors.left: parent.left
|
||||
source: UM.Theme.getIcon("category_adhesion")
|
||||
text: catalog.i18nc("@label", "Adhesion")
|
||||
font: UM.Theme.getFont("medium")
|
||||
width: labelColumnWidth
|
||||
}
|
||||
|
||||
|
|
|
@ -63,6 +63,7 @@ Item
|
|||
anchors.left: parent.left
|
||||
source: UM.Theme.getIcon("category_infill")
|
||||
text: catalog.i18nc("@label", "Infill") + " (%)"
|
||||
font: UM.Theme.getFont("medium")
|
||||
width: labelColumnWidth
|
||||
}
|
||||
|
||||
|
@ -140,6 +141,7 @@ Item
|
|||
Label
|
||||
{
|
||||
text: index
|
||||
font: UM.Theme.getFont("default")
|
||||
visible: (index % 20) == 0 // Only show steps of 20%
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
y: UM.Theme.getSize("thin_margin").height
|
||||
|
|
|
@ -173,6 +173,7 @@ Item
|
|||
id: qualityRowTitle
|
||||
source: UM.Theme.getIcon("category_layer_height")
|
||||
text: catalog.i18nc("@label", "Layer Height")
|
||||
font: UM.Theme.getFont("medium")
|
||||
anchors.left: parent.left
|
||||
anchors.right: customisedSettings.left
|
||||
}
|
||||
|
@ -271,6 +272,7 @@ Item
|
|||
return Math.round((settingsColumnWidth / qualityModel.totalTicks) * index - (width / 2))
|
||||
}
|
||||
}
|
||||
font: UM.Theme.getFont("default")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ Item
|
|||
visible: enableSupportCheckBox.visible
|
||||
source: UM.Theme.getIcon("category_support")
|
||||
text: catalog.i18nc("@label", "Support")
|
||||
font: UM.Theme.getFont("medium")
|
||||
width: labelColumnWidth
|
||||
}
|
||||
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
// Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 1.1
|
||||
import QtQuick.Controls.Styles 1.1
|
||||
import QtQuick.Layouts 1.1
|
||||
import QtQuick.Controls 2.3
|
||||
|
||||
import UM 1.0 as UM
|
||||
|
||||
|
@ -43,7 +41,8 @@ UM.PointingRectangle {
|
|||
base.opacity = 0;
|
||||
}
|
||||
|
||||
Label {
|
||||
Label
|
||||
{
|
||||
id: label;
|
||||
anchors {
|
||||
top: parent.top;
|
||||
|
@ -57,5 +56,6 @@ UM.PointingRectangle {
|
|||
textFormat: Text.RichText
|
||||
font: UM.Theme.getFont("default");
|
||||
color: UM.Theme.getColor("tooltip_text");
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
}
|
||||
|
|
|
@ -80,7 +80,7 @@ Item
|
|||
id: extruderCurrentTemperature
|
||||
text: Math.round(extruderModel.hotendTemperature) + "°C"
|
||||
color: UM.Theme.getColor("text")
|
||||
font: UM.Theme.getFont("large")
|
||||
font: UM.Theme.getFont("large_bold")
|
||||
anchors.right: extruderTargetTemperature.left
|
||||
anchors.top: parent.top
|
||||
anchors.margins: UM.Theme.getSize("default_margin").width
|
||||
|
|
|
@ -67,7 +67,7 @@ Item
|
|||
{
|
||||
id: bedCurrentTemperature
|
||||
text: printerModel != null ? printerModel.bedTemperature + "°C" : ""
|
||||
font: UM.Theme.getFont("large")
|
||||
font: UM.Theme.getFont("large_bold")
|
||||
color: UM.Theme.getColor("text")
|
||||
anchors.right: bedTargetTemperature.left
|
||||
anchors.top: parent.top
|
||||
|
|
|
@ -31,7 +31,7 @@ Item
|
|||
Label
|
||||
{
|
||||
id: outputDeviceNameLabel
|
||||
font: UM.Theme.getFont("large")
|
||||
font: UM.Theme.getFont("large_bold")
|
||||
color: UM.Theme.getColor("text")
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
|
|
|
@ -11,9 +11,9 @@ Cura.ExpandablePopup
|
|||
{
|
||||
id: machineSelector
|
||||
|
||||
property bool isNetworkPrinter: Cura.MachineManager.activeMachineHasRemoteConnection
|
||||
property bool isPrinterConnected: Cura.MachineManager.printerConnected
|
||||
property var outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
|
||||
property bool isNetworkPrinter: Cura.MachineManager.activeMachineHasActiveNetworkConnection
|
||||
property bool isCloudPrinter: Cura.MachineManager.activeMachineHasActiveCloudConnection
|
||||
property bool isGroup: Cura.MachineManager.activeMachineIsGroup
|
||||
|
||||
contentPadding: UM.Theme.getSize("default_lining").width
|
||||
contentAlignment: Cura.ExpandablePopup.ContentAlignment.AlignLeft
|
||||
|
@ -26,18 +26,28 @@ Cura.ExpandablePopup
|
|||
|
||||
headerItem: Cura.IconWithText
|
||||
{
|
||||
text: isNetworkPrinter ? Cura.MachineManager.activeMachineNetworkGroupName : Cura.MachineManager.activeMachineName
|
||||
text:
|
||||
{
|
||||
if (isNetworkPrinter && Cura.MachineManager.activeMachineNetworkGroupName != "")
|
||||
{
|
||||
return Cura.MachineManager.activeMachineNetworkGroupName
|
||||
}
|
||||
return Cura.MachineManager.activeMachineName
|
||||
}
|
||||
source:
|
||||
{
|
||||
if (isNetworkPrinter)
|
||||
if (isGroup)
|
||||
{
|
||||
return UM.Theme.getIcon("printer_group")
|
||||
}
|
||||
else if (isNetworkPrinter || isCloudPrinter)
|
||||
{
|
||||
if (machineSelector.outputDevice != null && machineSelector.outputDevice.clusterSize > 1)
|
||||
{
|
||||
return UM.Theme.getIcon("printer_group")
|
||||
}
|
||||
return UM.Theme.getIcon("printer_single")
|
||||
}
|
||||
return ""
|
||||
else
|
||||
{
|
||||
return ""
|
||||
}
|
||||
}
|
||||
font: UM.Theme.getFont("medium")
|
||||
iconColor: UM.Theme.getColor("machine_selector_printer_icon")
|
||||
|
@ -52,12 +62,27 @@ Cura.ExpandablePopup
|
|||
leftMargin: UM.Theme.getSize("thick_margin").width
|
||||
}
|
||||
|
||||
source: UM.Theme.getIcon("printer_connected")
|
||||
source:
|
||||
{
|
||||
if (isNetworkPrinter)
|
||||
{
|
||||
return UM.Theme.getIcon("printer_connected")
|
||||
}
|
||||
else if (isCloudPrinter)
|
||||
{
|
||||
return UM.Theme.getIcon("printer_cloud_connected")
|
||||
}
|
||||
else
|
||||
{
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
width: UM.Theme.getSize("printer_status_icon").width
|
||||
height: UM.Theme.getSize("printer_status_icon").height
|
||||
|
||||
color: UM.Theme.getColor("primary")
|
||||
visible: isNetworkPrinter && isPrinterConnected
|
||||
visible: isNetworkPrinter || isCloudPrinter
|
||||
|
||||
// Make a themable circle in the background so we can change it in other themes
|
||||
Rectangle
|
||||
|
@ -93,14 +118,16 @@ Cura.ExpandablePopup
|
|||
width: scroll.width - scroll.leftPadding - scroll.rightPadding
|
||||
property real maximumHeight: UM.Theme.getSize("machine_selector_widget_content").height - buttonRow.height
|
||||
|
||||
onHeightChanged:
|
||||
// We use an extra property here, since we only want to to be informed about the content size changes.
|
||||
onContentHeightChanged:
|
||||
{
|
||||
scroll.height = Math.min(height, maximumHeight)
|
||||
scroll.height = Math.min(contentHeight, maximumHeight)
|
||||
popup.height = scroll.height + buttonRow.height
|
||||
}
|
||||
|
||||
Component.onCompleted:
|
||||
{
|
||||
scroll.height = Math.min(height, maximumHeight)
|
||||
scroll.height = Math.min(contentHeight, maximumHeight)
|
||||
popup.height = scroll.height + buttonRow.height
|
||||
}
|
||||
|
||||
|
|
|
@ -10,15 +10,15 @@ import Cura 1.0 as Cura
|
|||
ListView
|
||||
{
|
||||
id: listView
|
||||
height: childrenRect.height
|
||||
model: Cura.PrintersModel {}
|
||||
model: Cura.GlobalStacksModel {}
|
||||
section.property: "hasRemoteConnection"
|
||||
property real contentHeight: childrenRect.height
|
||||
|
||||
section.delegate: Label
|
||||
{
|
||||
text: section == "true" ? catalog.i18nc("@label", "Connected printers") : catalog.i18nc("@label", "Preset printers")
|
||||
width: parent.width
|
||||
height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0
|
||||
height: UM.Theme.getSize("action_button").height
|
||||
leftPadding: UM.Theme.getSize("default_margin").width
|
||||
renderType: Text.NativeRendering
|
||||
font: UM.Theme.getFont("medium")
|
||||
|
@ -43,4 +43,4 @@ ListView
|
|||
return result
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,7 +73,7 @@ Button
|
|||
text: definition.label
|
||||
textFormat: Text.PlainText
|
||||
renderType: Text.NativeRendering
|
||||
font: UM.Theme.getFont("default")
|
||||
font: UM.Theme.getFont("medium_bold")
|
||||
color:
|
||||
{
|
||||
if (!base.enabled)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2015 Ultimaker B.V.
|
||||
// Uranium is released under the terms of the LGPLv3 or higher.
|
||||
// Copyright (c) 2019 Ultimaker B.V.
|
||||
// Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.0
|
||||
|
@ -24,11 +24,13 @@ SettingItem
|
|||
{
|
||||
color:
|
||||
{
|
||||
if (!enabled) {
|
||||
if (!enabled)
|
||||
{
|
||||
return UM.Theme.getColor("setting_control_disabled")
|
||||
}
|
||||
|
||||
if (control.hovered || control.activeFocus) {
|
||||
if (control.hovered || control.activeFocus)
|
||||
{
|
||||
return UM.Theme.getColor("setting_control_highlight")
|
||||
}
|
||||
|
||||
|
@ -39,11 +41,13 @@ SettingItem
|
|||
border.width: UM.Theme.getSize("default_lining").width
|
||||
border.color:
|
||||
{
|
||||
if (!enabled) {
|
||||
if (!enabled)
|
||||
{
|
||||
return UM.Theme.getColor("setting_control_disabled_border")
|
||||
}
|
||||
|
||||
if (control.hovered || control.activeFocus) {
|
||||
if (control.hovered || control.activeFocus)
|
||||
{
|
||||
return UM.Theme.getColor("setting_control_border_highlight")
|
||||
}
|
||||
|
||||
|
@ -82,13 +86,15 @@ SettingItem
|
|||
verticalAlignment: Text.AlignVCenter
|
||||
}
|
||||
|
||||
popup: Popup {
|
||||
popup: Popup
|
||||
{
|
||||
y: control.height - UM.Theme.getSize("default_lining").height
|
||||
width: control.width
|
||||
implicitHeight: contentItem.implicitHeight + 2 * UM.Theme.getSize("default_lining").width
|
||||
padding: UM.Theme.getSize("default_lining").width
|
||||
|
||||
contentItem: ListView {
|
||||
contentItem: ListView
|
||||
{
|
||||
clip: true
|
||||
implicitHeight: contentHeight
|
||||
model: control.popup.visible ? control.delegateModel : null
|
||||
|
@ -97,7 +103,8 @@ SettingItem
|
|||
ScrollIndicator.vertical: ScrollIndicator { }
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
background: Rectangle
|
||||
{
|
||||
color: UM.Theme.getColor("setting_control")
|
||||
border.color: UM.Theme.getColor("setting_control_border")
|
||||
}
|
||||
|
@ -164,19 +171,23 @@ SettingItem
|
|||
{
|
||||
// FIXME this needs to go away once 'resolve' is combined with 'value' in our data model.
|
||||
var value = undefined;
|
||||
if ((base.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1)) {
|
||||
if ((base.resolve != "None") && (base.stackLevel != 0) && (base.stackLevel != 1))
|
||||
{
|
||||
// We have a resolve function. Indicates that the setting is not settable per extruder and that
|
||||
// we have to choose between the resolved value (default) and the global value
|
||||
// (if user has explicitly set this).
|
||||
value = base.resolve;
|
||||
}
|
||||
|
||||
if (value == undefined) {
|
||||
if (value == undefined)
|
||||
{
|
||||
value = propertyProvider.properties.value;
|
||||
}
|
||||
|
||||
for(var i = 0; i < control.model.length; ++i) {
|
||||
if(control.model[i].key == value) {
|
||||
for(var i = 0; i < control.model.length; ++i)
|
||||
{
|
||||
if(control.model[i].key == value)
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -176,13 +176,15 @@ SettingItem
|
|||
}
|
||||
}
|
||||
|
||||
popup: Popup {
|
||||
popup: Popup
|
||||
{
|
||||
y: control.height - UM.Theme.getSize("default_lining").height
|
||||
width: control.width
|
||||
implicitHeight: contentItem.implicitHeight + 2 * UM.Theme.getSize("default_lining").width
|
||||
padding: UM.Theme.getSize("default_lining").width
|
||||
|
||||
contentItem: ListView {
|
||||
contentItem: ListView
|
||||
{
|
||||
clip: true
|
||||
implicitHeight: contentHeight
|
||||
model: control.popup.visible ? control.delegateModel : null
|
||||
|
@ -191,7 +193,8 @@ SettingItem
|
|||
ScrollIndicator.vertical: ScrollIndicator { }
|
||||
}
|
||||
|
||||
background: Rectangle {
|
||||
background: Rectangle
|
||||
{
|
||||
color: UM.Theme.getColor("setting_control")
|
||||
border.color: UM.Theme.getColor("setting_control_border")
|
||||
}
|
||||
|
@ -213,9 +216,11 @@ SettingItem
|
|||
renderType: Text.NativeRendering
|
||||
color:
|
||||
{
|
||||
if (model.enabled) {
|
||||
if (model.enabled)
|
||||
{
|
||||
UM.Theme.getColor("setting_control_text")
|
||||
} else {
|
||||
} else
|
||||
{
|
||||
UM.Theme.getColor("action_button_disabled_text");
|
||||
}
|
||||
}
|
||||
|
|
63
resources/qml/ToolTip.qml
Normal file
63
resources/qml/ToolTip.qml
Normal file
|
@ -0,0 +1,63 @@
|
|||
// Copyright (c) 2018 Ultimaker B.V.
|
||||
// Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.3
|
||||
|
||||
import UM 1.0 as UM
|
||||
import Cura 1.0 as Cura
|
||||
|
||||
ToolTip
|
||||
{
|
||||
enum ContentAlignment
|
||||
{
|
||||
AlignLeft,
|
||||
AlignRight
|
||||
}
|
||||
|
||||
// Defines the alignment of the content, by default to the left
|
||||
property int contentAlignment: Cura.ToolTip.ContentAlignment.AlignRight
|
||||
|
||||
property alias tooltipText: tooltip.text
|
||||
property var targetPoint: Qt.point(parent.x, y + Math.round(height/2))
|
||||
|
||||
id: tooltip
|
||||
text: ""
|
||||
delay: 500
|
||||
font: UM.Theme.getFont("default")
|
||||
|
||||
// If the text is not set, just set the height to 0 to prevent it from showing
|
||||
height: text != "" ? label.contentHeight + 2 * UM.Theme.getSize("thin_margin").width: 0
|
||||
|
||||
x:
|
||||
{
|
||||
if (contentAlignment == Cura.ToolTip.ContentAlignment.AlignLeft)
|
||||
{
|
||||
return (label.width + Math.round(UM.Theme.getSize("default_arrow").width * 1.2) + padding * 2) * -1
|
||||
}
|
||||
return parent.width + Math.round(UM.Theme.getSize("default_arrow").width * 1.2 + padding)
|
||||
}
|
||||
|
||||
y: Math.round(parent.height / 2 - label.height / 2 ) - padding
|
||||
|
||||
padding: UM.Theme.getSize("thin_margin").width
|
||||
|
||||
background: UM.PointingRectangle
|
||||
{
|
||||
id: backgroundRect
|
||||
color: UM.Theme.getColor("tooltip")
|
||||
target: Qt.point(targetPoint.x - tooltip.x, targetPoint.y - tooltip.y)
|
||||
arrowSize: UM.Theme.getSize("default_arrow").width
|
||||
}
|
||||
|
||||
contentItem: Label
|
||||
{
|
||||
id: label
|
||||
text: tooltip.text
|
||||
font: tooltip.font
|
||||
wrapMode: Text.Wrap
|
||||
textFormat: Text.RichText
|
||||
color: UM.Theme.getColor("tooltip_text")
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
}
|
|
@ -96,4 +96,11 @@ Button
|
|||
height: UM.Theme.getSize("button_icon").height
|
||||
}
|
||||
}
|
||||
|
||||
Cura.ToolTip
|
||||
{
|
||||
id: tooltip
|
||||
tooltipText: base.text
|
||||
visible: base.hovered
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ Cura.ExpandablePopup
|
|||
verticalAlignment: Text.AlignVCenter
|
||||
height: parent.height
|
||||
elide: Text.ElideRight
|
||||
font: UM.Theme.getFont("default")
|
||||
font: UM.Theme.getFont("medium")
|
||||
color: UM.Theme.getColor("text_medium")
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ Cura.ExpandablePopup
|
|||
}
|
||||
height: parent.height
|
||||
elide: Text.ElideRight
|
||||
font: UM.Theme.getFont("default")
|
||||
font: UM.Theme.getFont("medium")
|
||||
color: UM.Theme.getColor("text")
|
||||
renderType: Text.NativeRendering
|
||||
}
|
||||
|
|
|
@ -14,4 +14,6 @@ PrinterTypeLabel 1.0 PrinterTypeLabel.qml
|
|||
ViewsSelector 1.0 ViewsSelector.qml
|
||||
ToolbarButton 1.0 ToolbarButton.qml
|
||||
SettingView 1.0 SettingView.qml
|
||||
ProfileMenu 1.0 ProfileMenu.qml
|
||||
ProfileMenu 1.0 ProfileMenu.qml
|
||||
CheckBoxWithTooltip 1.0 CheckBoxWithTooltip.qml
|
||||
ToolTip 1.0 ToolTip.qml
|
||||
|
|
|
@ -4,10 +4,10 @@ name = Fine
|
|||
definition = abax_pri3
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = -1
|
||||
weight = 0
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
||||
|
|
|
@ -4,7 +4,7 @@ name = Extra Fine
|
|||
definition = abax_pri3
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = high
|
||||
weight = 1
|
||||
|
|
|
@ -4,7 +4,7 @@ name = Fine
|
|||
definition = abax_pri3
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = 0
|
||||
|
|
|
@ -4,10 +4,10 @@ name = Fine
|
|||
definition = abax_pri5
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = -1
|
||||
weight = 0
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
||||
|
|
|
@ -4,7 +4,7 @@ name = Extra Fine
|
|||
definition = abax_pri5
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = high
|
||||
weight = 1
|
||||
|
|
|
@ -4,7 +4,7 @@ name = Fine
|
|||
definition = abax_pri5
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = 0
|
||||
|
|
|
@ -4,10 +4,10 @@ name = Fine
|
|||
definition = abax_titan
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = -1
|
||||
weight = 0
|
||||
material = generic_pla
|
||||
|
||||
[values]
|
||||
|
|
|
@ -4,7 +4,7 @@ name = Extra Fine
|
|||
definition = abax_titan
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = high
|
||||
weight = 1
|
||||
|
|
|
@ -4,7 +4,7 @@ name = Fine
|
|||
definition = abax_titan
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = 0
|
||||
|
|
|
@ -4,10 +4,10 @@ name = Draft
|
|||
definition = anycubic_4max
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = draft
|
||||
weight = 0
|
||||
weight = -2
|
||||
material = generic_abs
|
||||
|
||||
[values]
|
||||
|
|
|
@ -4,10 +4,10 @@ name = High
|
|||
definition = anycubic_4max
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = high
|
||||
weight = 2
|
||||
weight = 1
|
||||
material = generic_abs
|
||||
|
||||
[values]
|
||||
|
|
|
@ -4,10 +4,10 @@ name = Normal
|
|||
definition = anycubic_4max
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = 1
|
||||
weight = 0
|
||||
material = generic_abs
|
||||
|
||||
[values]
|
||||
|
|
|
@ -4,10 +4,10 @@ name = Draft
|
|||
definition = anycubic_4max
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = draft
|
||||
weight = 0
|
||||
weight = -2
|
||||
global_quality = True
|
||||
|
||||
[values]
|
||||
|
|
|
@ -4,10 +4,10 @@ name = High
|
|||
definition = anycubic_4max
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = high
|
||||
weight = 2
|
||||
weight = 1
|
||||
global_quality = True
|
||||
|
||||
[values]
|
||||
|
|
|
@ -4,10 +4,10 @@ name = Normal
|
|||
definition = anycubic_4max
|
||||
|
||||
[metadata]
|
||||
setting_version = 5
|
||||
setting_version = 7
|
||||
type = quality
|
||||
quality_type = normal
|
||||
weight = 1
|
||||
weight = 0
|
||||
global_quality = True
|
||||
|
||||
[values]
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue