diff --git a/cura/Machines/MaterialManager.py b/cura/Machines/MaterialManager.py index 634f1ba2bd..2163cde623 100644 --- a/cura/Machines/MaterialManager.py +++ b/cura/Machines/MaterialManager.py @@ -103,6 +103,8 @@ class MaterialManager(QObject): continue root_material_id = material_metadata.get("base_file", "") + if root_material_id not in material_metadatas: #Not a registered material profile. Don't store this in the look-up tables. + continue if root_material_id not in self._material_group_map: self._material_group_map[root_material_id] = MaterialGroup(root_material_id, MaterialNode(material_metadatas[root_material_id])) self._material_group_map[root_material_id].is_read_only = self._container_registry.isReadOnly(root_material_id) diff --git a/plugins/SliceInfoPlugin/MoreInfoWindow.qml b/plugins/SliceInfoPlugin/MoreInfoWindow.qml index 82d5044bed..f19e2cce19 100644 --- a/plugins/SliceInfoPlugin/MoreInfoWindow.qml +++ b/plugins/SliceInfoPlugin/MoreInfoWindow.qml @@ -71,7 +71,7 @@ Window left: parent.left right: parent.right } - text: catalog.i18nc("@text:window", "Cura sends anonymous data to Ultimaker in order to improve the print quality and user experience. Below is an example of all the data that is sent.") + text: catalog.i18nc("@text:window", "Ultimaker Cura collects anonymous data in order to improve the print quality and user experience. Below is an example of all the data that is sent:") wrapMode: Text.WordWrap renderType: Text.NativeRendering } @@ -89,6 +89,8 @@ Window } textArea.text: manager.getExampleData() + textArea.textFormat: Text.RichText + textArea.wrapMode: Text.Wrap textArea.readOnly: true } } diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index fecf3d16bb..7501429796 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -77,7 +77,7 @@ class SliceInfo(QObject, Extension): if not plugin_path: Logger.log("e", "Could not get plugin path!", self.getPluginId()) return None - file_path = os.path.join(plugin_path, "example_data.json") + file_path = os.path.join(plugin_path, "example_data.html") if file_path: with open(file_path, "r", encoding = "utf-8") as f: self._example_data_content = f.read() diff --git a/plugins/SliceInfoPlugin/example_data.html b/plugins/SliceInfoPlugin/example_data.html new file mode 100644 index 0000000000..61090b06fe --- /dev/null +++ b/plugins/SliceInfoPlugin/example_data.html @@ -0,0 +1,65 @@ + + + Cura Version: 4.0
+ Operating System: Windows 10
+ Language: en_US
+ Machine Type: Ultimaker S5
+ Quality Profile: Fast
+ Using Custom Settings: No + +

Extruder 1:

+ + +

Extruder 2:

+ + +

Print Settings:

+ + +

Model Information:

+ + +

Print Times:

+ + + diff --git a/plugins/SliceInfoPlugin/example_data.json b/plugins/SliceInfoPlugin/example_data.json deleted file mode 100644 index 5fc4175e60..0000000000 --- a/plugins/SliceInfoPlugin/example_data.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "time_stamp": 1523973715.486928, - "schema_version": 0, - "cura_version": "3.3", - "active_mode": "custom", - "machine_settings_changed_by_user": true, - "language": "en_US", - "os": { - "type": "Linux", - "version": "#43~16.04.1-Ubuntu SMP Wed Mar 14 17:48:43 UTC 2018" - }, - "active_machine": { - "definition_id": "ultimaker3", - "manufacturer": "Ultimaker B.V." - }, - "extruders": [ - { - "active": true, - "material": { - "GUID": "506c9f0d-e3aa-4bd4-b2d2-23e2425b1aa9", - "type": "PLA", - "brand": "Generic" - }, - "material_used": 0.84, - "variant": "AA 0.4", - "nozzle_size": 0.4, - "extruder_settings": { - "wall_line_count": 3, - "retraction_enable": true, - "infill_sparse_density": 30, - "infill_pattern": "triangles", - "gradual_infill_steps": 0, - "default_material_print_temperature": 200, - "material_print_temperature": 200 - } - }, - { - "active": false, - "material": { - "GUID": "86a89ceb-4159-47f6-ab97-e9953803d70f", - "type": "PVA", - "brand": "Generic" - }, - "material_used": 0.5, - "variant": "BB 0.4", - "nozzle_size": 0.4, - "extruder_settings": { - "wall_line_count": 3, - "retraction_enable": true, - "infill_sparse_density": 20, - "infill_pattern": "triangles", - "gradual_infill_steps": 0, - "default_material_print_temperature": 215, - "material_print_temperature": 220 - } - } - ], - "quality_profile": "fast", - "user_modified_setting_keys": ["layer_height", "wall_line_width", "infill_sparse_density"], - "models": [ - { - "hash": "b72789b9beb5366dff20b1cf501020c3d4d4df7dc2295ecd0fddd0a6436df070", - "bounding_box": { - "minimum": { - "x": -10.0, - "y": 0.0, - "z": -5.0 - }, - "maximum": { - "x": 9.999999046325684, - "y": 40.0, - "z": 5.0 - } - }, - "transformation": { - "data": "[[ 1. 0. 0. 0.] [ 0. 1. 0. 20.] [ 0. 0. 1. 0.] [ 0. 0. 0. 1.]]" - }, - "extruder": 0, - "model_settings": { - "support_enabled": true, - "support_extruder_nr": 1, - "infill_mesh": false, - "cutting_mesh": false, - "support_mesh": false, - "anti_overhang_mesh": false, - "wall_line_count": 3, - "retraction_enable": true, - "infill_sparse_density": 30, - "infill_pattern": "triangles", - "gradual_infill_steps": 0 - } - } - ], - "print_times": { - "travel": 187, - "support": 825, - "infill": 351, - "total": 7234 - }, - "print_settings": { - "layer_height": 0.15, - "support_enabled": true, - "support_extruder_nr": 1, - "adhesion_type": "brim", - "wall_line_count": 3, - "retraction_enable": true, - "prime_tower_enable": true, - "infill_sparse_density": 20, - "infill_pattern": "triangles", - "gradual_infill_steps": 0, - "print_sequence": "all_at_once" - }, - "output_to": "LocalFileOutputDevice" -} diff --git a/resources/qml/WelcomePages/DataCollectionsContent.qml b/resources/qml/WelcomePages/DataCollectionsContent.qml index a2e54c1849..3f9819fee8 100644 --- a/resources/qml/WelcomePages/DataCollectionsContent.qml +++ b/resources/qml/WelcomePages/DataCollectionsContent.qml @@ -48,40 +48,69 @@ Item spacing: UM.Theme.getSize("wide_margin").height - Image + Label { - id: curaImage + id: topLabel + width: parent.width anchors.horizontalCenter: parent.horizontalCenter - source: UM.Theme.getImage("first_run_share_data") + horizontalAlignment: Text.AlignHCenter + text: catalog.i18nc("@text", "Ultimaker Cura collects anonymous data to improve print quality and user experience, including:") + wrapMode: Text.WordWrap + font: UM.Theme.getFont("medium") + color: UM.Theme.getColor("text") + renderType: Text.NativeRendering + } + + Grid { + columns: 2 + spacing: UM.Theme.getSize("wide_margin").height + anchors.horizontalCenter: parent.horizontalCenter + + ImageTile + { + text: catalog.i18nc("@text", "Machine types") + imageSource: UM.Theme.getImage("first_run_machine_types") + } + + ImageTile + { + text: catalog.i18nc("@text", "Material usage") + imageSource: UM.Theme.getImage("first_run_material_usage") + } + + ImageTile + { + text: catalog.i18nc("@text", "Number of slices") + imageSource: UM.Theme.getImage("first_run_number_slices") + } + + ImageTile + { + text: catalog.i18nc("@text", "Print settings") + imageSource: UM.Theme.getImage("first_run_print_settings") + } } Label { - id: textLabel + id: bottomLabel width: parent.width anchors.horizontalCenter: parent.horizontalCenter horizontalAlignment: Text.AlignHCenter text: { - var t = catalog.i18nc("@text", "Ultimaker Cura collects anonymous data to improve print quality and user experience.") + var t = catalog.i18nc("@text", "The data that Ultimaker Cura collects will not contain any information about your model.") var t2 = catalog.i18nc("@text", "More information") - t += " " + t2 + "" + t += " " + t2 + "" return t } textFormat: Text.RichText wrapMode: Text.WordWrap font: UM.Theme.getFont("medium") color: UM.Theme.getColor("text") + linkColor: UM.Theme.getColor("text_link") + onLinkActivated: CuraApplication.showMoreInformationDialogForAnonymousDataCollection() renderType: Text.NativeRendering - - MouseArea - { - anchors.fill: parent - onClicked: - { - CuraApplication.showMoreInformationDialogForAnonymousDataCollection() - } - } } } } diff --git a/resources/qml/WelcomePages/ImageTile.qml b/resources/qml/WelcomePages/ImageTile.qml new file mode 100644 index 0000000000..7ed07304e6 --- /dev/null +++ b/resources/qml/WelcomePages/ImageTile.qml @@ -0,0 +1,39 @@ +// Copyright (c) 2019 Ultimaker B.V. +// Cura is released under the terms of the LGPLv3 or higher. + +import QtQuick 2.10 +import QtQuick.Controls 2.3 + +import UM 1.3 as UM + + +// +// This component places a text on top of an image. +// +Column +{ + leftPadding: UM.Theme.getSize("default_margin").width + rightPadding: UM.Theme.getSize("default_margin").width + spacing: UM.Theme.getSize("default_margin").height + property alias text: label.text + property alias imageSource: image.source + + Label + { + id: label + width: image.width + anchors.horizontalCenter: image.horizontalCenter + horizontalAlignment: Text.AlignHCenter + text: "" + wrapMode: Text.WordWrap + font: UM.Theme.getFont("default") + color: UM.Theme.getColor("text") + renderType: Text.NativeRendering + } + + Image + { + id: image + source: "" + } +} \ No newline at end of file diff --git a/resources/qml/WelcomePages/WelcomeContent.qml b/resources/qml/WelcomePages/WelcomeContent.qml index 0099c3db3d..1464e363a8 100644 --- a/resources/qml/WelcomePages/WelcomeContent.qml +++ b/resources/qml/WelcomePages/WelcomeContent.qml @@ -19,7 +19,7 @@ Item { anchors.centerIn: parent width: parent.width - spacing: UM.Theme.getSize("wide_margin").height + spacing: 2 * UM.Theme.getSize("wide_margin").height Label { diff --git a/resources/themes/cura-light/images/first_run_machine_types.svg b/resources/themes/cura-light/images/first_run_machine_types.svg new file mode 100644 index 0000000000..630fc426b6 --- /dev/null +++ b/resources/themes/cura-light/images/first_run_machine_types.svg @@ -0,0 +1,33 @@ + + + + Machine types + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/images/first_run_material_usage.svg b/resources/themes/cura-light/images/first_run_material_usage.svg new file mode 100644 index 0000000000..19be250c88 --- /dev/null +++ b/resources/themes/cura-light/images/first_run_material_usage.svg @@ -0,0 +1,67 @@ + + + + material usage + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/images/first_run_number_slices.svg b/resources/themes/cura-light/images/first_run_number_slices.svg new file mode 100644 index 0000000000..e8a7124ebc --- /dev/null +++ b/resources/themes/cura-light/images/first_run_number_slices.svg @@ -0,0 +1,31 @@ + + + + number of slices + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/images/first_run_print_settings.svg b/resources/themes/cura-light/images/first_run_print_settings.svg new file mode 100644 index 0000000000..21ed4030e2 --- /dev/null +++ b/resources/themes/cura-light/images/first_run_print_settings.svg @@ -0,0 +1,29 @@ + + + + Print settings + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/themes/cura-light/images/first_run_share_data.svg b/resources/themes/cura-light/images/first_run_share_data.svg deleted file mode 100644 index cd87431067..0000000000 --- a/resources/themes/cura-light/images/first_run_share_data.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - - Group 2 - Created with Sketch. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file