mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-08-08 22:35:03 -06:00
Turn MaterialManagementModel into a singleton
Just like MaterialManager used to be. There can be only one instance of the page then. This prevents a crash when Qt deletes the QObject because it's no longer used in the page when you close the preferences screen. But when you open it again it doesn't construct a new one. Now there is always one instance so that's not a problem any more. Also it allows other pages to access this item. Contributes to issue CURA-6600.
This commit is contained in:
parent
b60b13e5bf
commit
8346e465f6
3 changed files with 11 additions and 9 deletions
|
@ -18,6 +18,7 @@ Item
|
|||
property var currentItem: null
|
||||
|
||||
property var materialManager: CuraApplication.getMaterialManager()
|
||||
property var materialManagementModel: CuraApplication.getMaterialManagementModel()
|
||||
|
||||
property var hasCurrentItem: base.currentItem != null
|
||||
property var isCurrentItemActivated:
|
||||
|
@ -42,11 +43,6 @@ Item
|
|||
name: "cura"
|
||||
}
|
||||
|
||||
Cura.MaterialManagementModel
|
||||
{
|
||||
id: materialManagement
|
||||
}
|
||||
|
||||
function resetExpandedActiveMaterial()
|
||||
{
|
||||
materialListView.expandActiveMaterial(active_root_material_id)
|
||||
|
@ -152,7 +148,7 @@ Item
|
|||
id: removeMenuButton
|
||||
text: catalog.i18nc("@action:button", "Remove")
|
||||
iconName: "list-remove"
|
||||
enabled: base.hasCurrentItem && !base.currentItem.is_read_only && !base.isCurrentItemActivated && materialManagement.canMaterialBeRemoved(base.currentItem.container_node)
|
||||
enabled: base.hasCurrentItem && !base.currentItem.is_read_only && !base.isCurrentItemActivated && base.materialManagementModel.canMaterialBeRemoved(base.currentItem.container_node)
|
||||
|
||||
onClicked:
|
||||
{
|
||||
|
@ -302,7 +298,7 @@ Item
|
|||
{
|
||||
// Set the active material as the fallback. It will be selected when the current material is deleted
|
||||
base.newRootMaterialIdToSwitchTo = base.active_root_material_id
|
||||
base.materialManagement.removeMaterial(base.currentItem.container_node);
|
||||
base.materialManagementModel.removeMaterial(base.currentItem.container_node);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,7 @@ TabView
|
|||
property real secondColumnWidth: (width * 0.40) | 0
|
||||
property string containerId: ""
|
||||
property var materialPreferenceValues: UM.Preferences.getValue("cura/material_settings") ? JSON.parse(UM.Preferences.getValue("cura/material_settings")) : {}
|
||||
property var materialManagementModel: CuraApplication.getMaterialManagementModel()
|
||||
|
||||
property double spoolLength: calculateSpoolLength()
|
||||
property real costPerMeter: calculateCostPerMeter()
|
||||
|
@ -565,7 +566,7 @@ TabView
|
|||
}
|
||||
|
||||
// update the values
|
||||
materialManagement.setMaterialName(base.currentMaterialNode, new_name)
|
||||
base.materialManagementModel.setMaterialName(base.currentMaterialNode, new_name)
|
||||
properties.name = new_name
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue