From 1dd0d794df8c2578781c6755d2c79f8555fea0aa Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Fri, 24 Aug 2018 11:24:43 +0200 Subject: [PATCH 1/3] Collect user modified settings - Collect user modified settings in user_changes and quality_changes - Update example data --- plugins/SliceInfoPlugin/SliceInfo.py | 16 ++++++++++++++++ plugins/SliceInfoPlugin/example_data.json | 1 + 2 files changed, 17 insertions(+) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 2e9e557c4a..48c1d2ab20 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -95,6 +95,20 @@ class SliceInfo(QObject, Extension): def setSendSliceInfo(self, enabled: bool): Application.getInstance().getPreferences().setValue("info/send_slice_info", enabled) + def _getUserModifiedSettingKeys(self) -> list: + application = Application.getInstance() + machine_manager = application.getMachineManager() + global_stack = machine_manager.activeMachine + + user_modified_setting_keys = set() + + for stack in [global_stack] + list(global_stack.extruders.values()): + # Get all settings in user_changes and quality_changes + all_keys = stack.userChanges.getAllKeys() | stack.qualityChanges.getAllKeys() + user_modified_setting_keys |= all_keys + + return list(sorted(user_modified_setting_keys)) + def _onWriteStarted(self, output_device): try: if not Application.getInstance().getPreferences().getValue("info/send_slice_info"): @@ -164,6 +178,8 @@ class SliceInfo(QObject, Extension): data["quality_profile"] = global_stack.quality.getMetaData().get("quality_type") + data["user_modified_setting_keys"] = ",".join(self._getUserModifiedSettingKeys()) + data["models"] = [] # Listing all files placed on the build plate for node in DepthFirstIterator(application.getController().getScene().getRoot()): diff --git a/plugins/SliceInfoPlugin/example_data.json b/plugins/SliceInfoPlugin/example_data.json index ec953e0842..3f0a9fb388 100644 --- a/plugins/SliceInfoPlugin/example_data.json +++ b/plugins/SliceInfoPlugin/example_data.json @@ -56,6 +56,7 @@ } ], "quality_profile": "fast", + "user_modified_setting_keys": "layer_height,wall_line_width,infill_sparse_density", "models": [ { "hash": "b72789b9beb5366dff20b1cf501020c3d4d4df7dc2295ecd0fddd0a6436df070", From ef5107e02594c30c510e1a7acf39fb078b6b5e28 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 5 Sep 2018 11:42:49 +0200 Subject: [PATCH 2/3] Update modified setting keys --- plugins/SliceInfoPlugin/SliceInfo.py | 2 +- plugins/SliceInfoPlugin/example_data.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index 48c1d2ab20..d92a4f3376 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -178,7 +178,7 @@ class SliceInfo(QObject, Extension): data["quality_profile"] = global_stack.quality.getMetaData().get("quality_type") - data["user_modified_setting_keys"] = ",".join(self._getUserModifiedSettingKeys()) + data["user_modified_setting_keys"] = self._getUserModifiedSettingKeys() data["models"] = [] # Listing all files placed on the build plate diff --git a/plugins/SliceInfoPlugin/example_data.json b/plugins/SliceInfoPlugin/example_data.json index 3f0a9fb388..5fc4175e60 100644 --- a/plugins/SliceInfoPlugin/example_data.json +++ b/plugins/SliceInfoPlugin/example_data.json @@ -56,7 +56,7 @@ } ], "quality_profile": "fast", - "user_modified_setting_keys": "layer_height,wall_line_width,infill_sparse_density", + "user_modified_setting_keys": ["layer_height", "wall_line_width", "infill_sparse_density"], "models": [ { "hash": "b72789b9beb5366dff20b1cf501020c3d4d4df7dc2295ecd0fddd0a6436df070", From 2819b6cbc6052dce34e26c5ba83a4a677d9e9d2e Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Thu, 6 Sep 2018 08:57:00 +0200 Subject: [PATCH 3/3] Fix code style --- plugins/SliceInfoPlugin/SliceInfo.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/plugins/SliceInfoPlugin/SliceInfo.py b/plugins/SliceInfoPlugin/SliceInfo.py index d92a4f3376..fd58e68938 100755 --- a/plugins/SliceInfoPlugin/SliceInfo.py +++ b/plugins/SliceInfoPlugin/SliceInfo.py @@ -5,6 +5,7 @@ import json import os import platform import time +from typing import cast, Optional, Set from PyQt5.QtCore import pyqtSlot, QObject @@ -16,7 +17,7 @@ from UM.i18n import i18nCatalog from UM.Logger import Logger from UM.PluginRegistry import PluginRegistry from UM.Qt.Duration import DurationFormat -from typing import cast, Optional + from .SliceInfoJob import SliceInfoJob @@ -96,11 +97,12 @@ class SliceInfo(QObject, Extension): Application.getInstance().getPreferences().setValue("info/send_slice_info", enabled) def _getUserModifiedSettingKeys(self) -> list: - application = Application.getInstance() + from cura.CuraApplication import CuraApplication + application = cast(CuraApplication, Application.getInstance()) machine_manager = application.getMachineManager() global_stack = machine_manager.activeMachine - user_modified_setting_keys = set() + user_modified_setting_keys = set() # type: Set[str] for stack in [global_stack] + list(global_stack.extruders.values()): # Get all settings in user_changes and quality_changes @@ -115,7 +117,8 @@ class SliceInfo(QObject, Extension): Logger.log("d", "'info/send_slice_info' is turned off.") return # Do nothing, user does not want to send data - application = Application.getInstance() + from cura.CuraApplication import CuraApplication + application = cast(CuraApplication, Application.getInstance()) machine_manager = application.getMachineManager() print_information = application.getPrintInformation()