Merge branch 'CURA-5095_reset_slice_info_collection' of github.com:Ultimaker/Cura into 3.5

This commit is contained in:
Jaime van Kessel 2018-10-02 11:17:39 +02:00
commit 7ffcfa25e9
3 changed files with 29 additions and 10 deletions

View file

@ -33,30 +33,35 @@ class SliceInfo(QObject, Extension):
def __init__(self, parent = None):
QObject.__init__(self, parent)
Extension.__init__(self)
Application.getInstance().getOutputDeviceManager().writeStarted.connect(self._onWriteStarted)
Application.getInstance().getPreferences().addPreference("info/send_slice_info", True)
Application.getInstance().getPreferences().addPreference("info/asked_send_slice_info", False)
self._application = Application.getInstance()
self._application.getOutputDeviceManager().writeStarted.connect(self._onWriteStarted)
self._application.getPreferences().addPreference("info/send_slice_info", True)
self._application.getPreferences().addPreference("info/asked_send_slice_info", False)
self._more_info_dialog = None
self._example_data_content = None
if not Application.getInstance().getPreferences().getValue("info/asked_send_slice_info"):
self._application.initializationFinished.connect(self._onAppInitialized)
def _onAppInitialized(self):
# DO NOT read any preferences values in the constructor because at the time plugins are created, no version
# upgrade has been performed yet because version upgrades are plugins too!
if not self._application.getPreferences().getValue("info/asked_send_slice_info"):
self.send_slice_info_message = Message(catalog.i18nc("@info", "Cura collects anonymized usage statistics."),
lifetime = 0,
dismissable = False,
title = catalog.i18nc("@info:title", "Collecting Data"))
self.send_slice_info_message.addAction("MoreInfo", name = catalog.i18nc("@action:button", "More info"), icon = None,
description = catalog.i18nc("@action:tooltip", "See more information on what data Cura sends."), button_style = Message.ActionButtonStyle.LINK)
description = catalog.i18nc("@action:tooltip", "See more information on what data Cura sends."), button_style = Message.ActionButtonStyle.LINK)
self.send_slice_info_message.addAction("Dismiss", name = catalog.i18nc("@action:button", "Allow"), icon = None,
description = catalog.i18nc("@action:tooltip", "Allow Cura to send anonymized usage statistics to help prioritize future improvements to Cura. Some of your preferences and settings are sent, the Cura version and a hash of the models you're slicing."))
description = catalog.i18nc("@action:tooltip", "Allow Cura to send anonymized usage statistics to help prioritize future improvements to Cura. Some of your preferences and settings are sent, the Cura version and a hash of the models you're slicing."))
self.send_slice_info_message.actionTriggered.connect(self.messageActionTriggered)
self.send_slice_info_message.show()
Application.getInstance().initializationFinished.connect(self._onAppInitialized)
def _onAppInitialized(self):
if self._more_info_dialog is None:
self._more_info_dialog = self._createDialog("MoreInfoWindow.qml")

View file

@ -86,6 +86,12 @@ class VersionUpgrade34to35(VersionUpgrade):
parser = configparser.ConfigParser(interpolation = None)
parser.read_string(serialized)
# Need to show the data collection agreement again because the data Cura collects has been changed.
if parser.has_option("info", "asked_send_slice_info"):
parser.remove_option("info", "asked_send_slice_info")
if parser.has_option("info", "send_slice_info"):
parser.remove_option("info", "send_slice_info")
# Update version number.
parser["general"]["version"] = "6"
if "metadata" not in parser:

View file

@ -17,6 +17,10 @@ test_upgrade_version_nr_data = [
version = 5
[metadata]
setting_version = 4
[info]
asked_send_slice_info = True
send_slice_info = True
"""
)
]
@ -32,4 +36,8 @@ def test_upgradeVersionNr(test_name, file_data, upgrader):
#Check the new version.
assert parser["general"]["version"] == "6"
assert parser["metadata"]["setting_version"] == "5"
assert parser["metadata"]["setting_version"] == "5"
# Check if the data collection values have been removed
assert not parser.has_option("info", "asked_send_slice_info")
assert not parser.has_option("info", "send_slice_info")