Merge branch '2.6'

This commit is contained in:
Lipu Fei 2017-05-24 14:10:26 +02:00
commit 374b6d4e35
4 changed files with 7 additions and 40 deletions

View File

@ -16,7 +16,7 @@ from UM.Settings.ContainerRegistry import ContainerRegistry
from UM.Settings.ContainerStack import ContainerStack from UM.Settings.ContainerStack import ContainerStack
from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.InstanceContainer import InstanceContainer
from UM.Settings.SettingFunction import SettingFunction from UM.Settings.SettingFunction import SettingFunction
from UM.Signal import postponeSignals from UM.Signal import postponeSignals, CompressTechnique
import UM.FlameProfiler import UM.FlameProfiler
from cura.QualityManager import QualityManager from cura.QualityManager import QualityManager
@ -705,7 +705,7 @@ class MachineManager(QObject):
# Depending on from/to material+current variant, a quality profile is chosen and set. # Depending on from/to material+current variant, a quality profile is chosen and set.
@pyqtSlot(str) @pyqtSlot(str)
def setActiveMaterial(self, material_id: str): def setActiveMaterial(self, material_id: str):
with postponeSignals(*self._getContainerChangedSignals()): with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue):
containers = ContainerRegistry.getInstance().findInstanceContainers(id = material_id) containers = ContainerRegistry.getInstance().findInstanceContainers(id = material_id)
if not containers or not self._active_container_stack: if not containers or not self._active_container_stack:
return return
@ -770,7 +770,7 @@ class MachineManager(QObject):
@pyqtSlot(str) @pyqtSlot(str)
def setActiveVariant(self, variant_id: str): def setActiveVariant(self, variant_id: str):
with postponeSignals(*self._getContainerChangedSignals()): with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue):
containers = ContainerRegistry.getInstance().findInstanceContainers(id = variant_id) containers = ContainerRegistry.getInstance().findInstanceContainers(id = variant_id)
if not containers or not self._active_container_stack: if not containers or not self._active_container_stack:
return return
@ -781,7 +781,7 @@ class MachineManager(QObject):
self.blurSettings.emit() self.blurSettings.emit()
self._active_container_stack.variant = containers[0] self._active_container_stack.variant = containers[0]
Logger.log("d", "Active variant changed to {active_variant_id}".format(active_variant_id = containers[0].getId())) Logger.log("d", "Active variant changed to {active_variant_id}".format(active_variant_id = containers[0].getId()))
preferred_material = None preferred_material_name = None
if old_material: if old_material:
preferred_material_name = old_material.getName() preferred_material_name = old_material.getName()
@ -793,7 +793,7 @@ class MachineManager(QObject):
# \param quality_id The quality_id of either a quality or a quality_changes # \param quality_id The quality_id of either a quality or a quality_changes
@pyqtSlot(str) @pyqtSlot(str)
def setActiveQuality(self, quality_id: str): def setActiveQuality(self, quality_id: str):
with postponeSignals(*self._getContainerChangedSignals(), compress = True): with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue):
self.blurSettings.emit() self.blurSettings.emit()
containers = ContainerRegistry.getInstance().findInstanceContainers(id = quality_id) containers = ContainerRegistry.getInstance().findInstanceContainers(id = quality_id)

View File

@ -395,29 +395,13 @@ class XmlMaterialProfile(InstanceContainer):
def getVersionFromSerialized(self, serialized: str) -> Optional[int]: def getVersionFromSerialized(self, serialized: str) -> Optional[int]:
data = ET.fromstring(serialized) data = ET.fromstring(serialized)
# get format version version = 1
version = None
metadata = data.iterfind("./um:metadata/*", self.__namespaces)
for entry in metadata:
tag_name = _tag_without_namespace(entry)
if tag_name == "version":
try:
version = int(entry.text)
except Exception as e:
raise InvalidInstanceError("Invalid version string '%s': %s" % (entry.text, e))
break
if version is None:
raise InvalidInstanceError("Missing version in metadata")
# get setting version # get setting version
if "version" in data.attrib: if "version" in data.attrib:
setting_version = self.xmlVersionToSettingVersion(data.attrib["version"]) setting_version = self.xmlVersionToSettingVersion(data.attrib["version"])
else: else:
setting_version = self.xmlVersionToSettingVersion("1.2") setting_version = self.xmlVersionToSettingVersion("1.2")
if version is None:
raise InvalidInstanceError("Missing version in metadata")
return version * 1000000 + setting_version return version * 1000000 + setting_version
## Overridden from InstanceContainer ## Overridden from InstanceContainer

View File

@ -10,29 +10,13 @@ class XmlMaterialUpgrader(VersionUpgrade):
def getXmlVersion(self, serialized): def getXmlVersion(self, serialized):
data = ET.fromstring(serialized) data = ET.fromstring(serialized)
# get format version version = 1
version = None
metadata = data.iterfind("./um:metadata/*")
for entry in metadata:
tag_name = entry.tag
if tag_name == "version":
try:
version = int(entry.text)
except Exception as e:
raise ValueError("Invalid version string '%s': %s" % (entry.text, e))
break
if version is None:
raise RuntimeError("Missing version in metadata")
# get setting version # get setting version
if "version" in data.attrib: if "version" in data.attrib:
setting_version = self._xmlVersionToSettingVersion(data.attrib["version"]) setting_version = self._xmlVersionToSettingVersion(data.attrib["version"])
else: else:
setting_version = self._xmlVersionToSettingVersion("1.2") setting_version = self._xmlVersionToSettingVersion("1.2")
if version is None:
raise RuntimeError("Missing version in metadata")
return version * 1000000 + setting_version return version * 1000000 + setting_version
def _xmlVersionToSettingVersion(self, xml_version: str) -> int: def _xmlVersionToSettingVersion(self, xml_version: str) -> int:

View File

@ -1157,7 +1157,6 @@
"type": "[int]", "type": "[int]",
"default_value": "[ ]", "default_value": "[ ]",
"enabled": "infill_pattern != 'concentric' and infill_pattern != 'concentric_3d' and infill_pattern != 'cubicsubdiv'", "enabled": "infill_pattern != 'concentric' and infill_pattern != 'concentric_3d' and infill_pattern != 'cubicsubdiv'",
"enabled": "infill_sparse_density > 0",
"settable_per_mesh": true "settable_per_mesh": true
}, },
"spaghetti_infill_enabled": "spaghetti_infill_enabled":