mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-15 02:37:49 -06:00
Merge remote-tracking branch 'upstream/2.7'
This commit is contained in:
commit
05d7e15d4c
3 changed files with 28 additions and 21 deletions
|
@ -93,6 +93,8 @@ class CuraStackBuilder:
|
||||||
# assume the material and variant have already been set.
|
# assume the material and variant have already been set.
|
||||||
if "definition_changes" in kwargs:
|
if "definition_changes" in kwargs:
|
||||||
stack.setDefinitionChangesById(kwargs["definition_changes"])
|
stack.setDefinitionChangesById(kwargs["definition_changes"])
|
||||||
|
else:
|
||||||
|
stack.setDefinitionChanges(cls._createDefinitionChangesContainer(stack, new_stack_id + "_settings"))
|
||||||
|
|
||||||
if "variant" in kwargs:
|
if "variant" in kwargs:
|
||||||
stack.setVariantById(kwargs["variant"])
|
stack.setVariantById(kwargs["variant"])
|
||||||
|
@ -140,6 +142,8 @@ class CuraStackBuilder:
|
||||||
# assume the material and variant have already been set.
|
# assume the material and variant have already been set.
|
||||||
if "definition_changes" in kwargs:
|
if "definition_changes" in kwargs:
|
||||||
stack.setDefinitionChangesById(kwargs["definition_changes"])
|
stack.setDefinitionChangesById(kwargs["definition_changes"])
|
||||||
|
else:
|
||||||
|
stack.setDefinitionChanges(cls._createDefinitionChangesContainer(stack, new_stack_id + "_settings"))
|
||||||
|
|
||||||
if "variant" in kwargs:
|
if "variant" in kwargs:
|
||||||
stack.setVariantById(kwargs["variant"])
|
stack.setVariantById(kwargs["variant"])
|
||||||
|
@ -158,3 +162,17 @@ class CuraStackBuilder:
|
||||||
registry.addContainer(user_container)
|
registry.addContainer(user_container)
|
||||||
|
|
||||||
return stack
|
return stack
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _createDefinitionChangesContainer(cls, container_stack, container_name, container_index = None):
|
||||||
|
from cura.CuraApplication import CuraApplication
|
||||||
|
definition_changes_container = InstanceContainer(container_name)
|
||||||
|
definition = container_stack.getBottom()
|
||||||
|
definition_changes_container.setDefinition(definition)
|
||||||
|
definition_changes_container.addMetaDataEntry("type", "definition_changes")
|
||||||
|
definition_changes_container.addMetaDataEntry("setting_version", CuraApplication.SettingVersion)
|
||||||
|
|
||||||
|
ContainerRegistry.getInstance().addContainer(definition_changes_container)
|
||||||
|
container_stack.definitionChanges = definition_changes_container
|
||||||
|
|
||||||
|
return definition_changes_container
|
||||||
|
|
|
@ -88,10 +88,6 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalStackChanged)
|
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalStackChanged)
|
||||||
self._onGlobalStackChanged()
|
self._onGlobalStackChanged()
|
||||||
|
|
||||||
self._active_extruder_stack = None
|
|
||||||
ExtruderManager.getInstance().activeExtruderChanged.connect(self._onActiveExtruderChanged)
|
|
||||||
self._onActiveExtruderChanged()
|
|
||||||
|
|
||||||
Application.getInstance().stacksValidationFinished.connect(self._onStackErrorCheckFinished)
|
Application.getInstance().stacksValidationFinished.connect(self._onStackErrorCheckFinished)
|
||||||
|
|
||||||
# A flag indicating if an error check was scheduled
|
# A flag indicating if an error check was scheduled
|
||||||
|
@ -622,6 +618,7 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
|
|
||||||
for extruder in extruders:
|
for extruder in extruders:
|
||||||
extruder.propertyChanged.disconnect(self._onSettingChanged)
|
extruder.propertyChanged.disconnect(self._onSettingChanged)
|
||||||
|
extruder.containersChanged.disconnect(self._onChanged)
|
||||||
|
|
||||||
self._global_container_stack = Application.getInstance().getGlobalContainerStack()
|
self._global_container_stack = Application.getInstance().getGlobalContainerStack()
|
||||||
|
|
||||||
|
@ -631,23 +628,9 @@ class CuraEngineBackend(QObject, Backend):
|
||||||
extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
|
extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
|
||||||
for extruder in extruders:
|
for extruder in extruders:
|
||||||
extruder.propertyChanged.connect(self._onSettingChanged)
|
extruder.propertyChanged.connect(self._onSettingChanged)
|
||||||
self._onActiveExtruderChanged()
|
extruder.containersChanged.connect(self._onChanged)
|
||||||
self._onChanged()
|
self._onChanged()
|
||||||
|
|
||||||
def _onActiveExtruderChanged(self):
|
|
||||||
if self._global_container_stack:
|
|
||||||
# Connect all extruders of the active machine. This might cause a few connects that have already happend,
|
|
||||||
# but that shouldn't cause issues as only new / unique connections are added.
|
|
||||||
extruders = list(ExtruderManager.getInstance().getMachineExtruders(self._global_container_stack.getId()))
|
|
||||||
for extruder in extruders:
|
|
||||||
extruder.propertyChanged.connect(self._onSettingChanged)
|
|
||||||
if self._active_extruder_stack:
|
|
||||||
self._active_extruder_stack.containersChanged.disconnect(self._onChanged)
|
|
||||||
|
|
||||||
self._active_extruder_stack = ExtruderManager.getInstance().getActiveExtruderStack()
|
|
||||||
if self._active_extruder_stack:
|
|
||||||
self._active_extruder_stack.containersChanged.connect(self._onChanged)
|
|
||||||
|
|
||||||
def _onProcessLayersFinished(self, job):
|
def _onProcessLayersFinished(self, job):
|
||||||
self._process_layers_job = None
|
self._process_layers_job = None
|
||||||
|
|
||||||
|
|
|
@ -238,10 +238,16 @@ Item
|
||||||
when: model.settable_per_extruder || (inheritStackProvider.properties.limit_to_extruder != null && inheritStackProvider.properties.limit_to_extruder >= 0);
|
when: model.settable_per_extruder || (inheritStackProvider.properties.limit_to_extruder != null && inheritStackProvider.properties.limit_to_extruder >= 0);
|
||||||
value:
|
value:
|
||||||
{
|
{
|
||||||
|
// associate this binding with Cura.MachineManager.activeMachineId in the beginning so this
|
||||||
|
// binding will be triggered when activeMachineId is changed too.
|
||||||
|
// Otherwise, if this value only depends on the extruderIds, it won't get updated when the
|
||||||
|
// machine gets changed.
|
||||||
|
var activeMachineId = Cura.MachineManager.activeMachineId;
|
||||||
|
|
||||||
if(!model.settable_per_extruder || machineExtruderCount.properties.value == 1)
|
if(!model.settable_per_extruder || machineExtruderCount.properties.value == 1)
|
||||||
{
|
{
|
||||||
//Not settable per extruder or there only is global, so we must pick global.
|
//Not settable per extruder or there only is global, so we must pick global.
|
||||||
return Cura.MachineManager.activeMachineId;
|
return activeMachineId;
|
||||||
}
|
}
|
||||||
if(inheritStackProvider.properties.limit_to_extruder != null && inheritStackProvider.properties.limit_to_extruder >= 0)
|
if(inheritStackProvider.properties.limit_to_extruder != null && inheritStackProvider.properties.limit_to_extruder >= 0)
|
||||||
{
|
{
|
||||||
|
@ -254,7 +260,7 @@ Item
|
||||||
return ExtruderManager.activeExtruderStackId;
|
return ExtruderManager.activeExtruderStackId;
|
||||||
}
|
}
|
||||||
//No extruder tab is selected. Pick the global stack. Shouldn't happen any more since we removed the global tab.
|
//No extruder tab is selected. Pick the global stack. Shouldn't happen any more since we removed the global tab.
|
||||||
return Cura.MachineManager.activeMachineId;
|
return activeMachineId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue