53
53
from UM .Settings .SettingFunction import SettingFunction
54
54
from cura .Settings .MachineNameValidator import MachineNameValidator
55
55
56
+ from cura .Machines .Models .BuildPlateModel import BuildPlateModel
56
57
from cura .Machines .Models .NozzleModel import NozzleModel
57
58
from cura .Machines .Models .QualityProfilesModel import QualityProfilesModel
58
59
from cura .Machines .Models .CustomQualityProfilesModel import CustomQualityProfilesModel
59
60
61
+ from cura .Machines .Models .Other .MultiBuildPlateModel import MultiBuildPlateModel
62
+
60
63
from cura .Settings .MaterialsModel import MaterialsModel , BrandMaterialsModel , GenericMaterialsModel , NewMaterialsModel
61
64
from cura .Settings .SettingInheritanceManager import SettingInheritanceManager
62
65
from cura .Settings .SimpleModeSettingsManager import SimpleModeSettingsManager
84
87
from cura .Settings .ContainerManager import ContainerManager
85
88
86
89
from cura .ObjectsModel import ObjectsModel
87
- from cura .BuildPlateModel import BuildPlateModel
88
90
89
91
from PyQt5 .QtCore import QUrl , pyqtSignal , pyqtProperty , QEvent , Q_ENUMS
90
92
from UM .FlameProfiler import pyqtSlot
@@ -219,6 +221,7 @@ def __init__(self, **kwargs):
219
221
self ._material_manager = None
220
222
self ._object_manager = None
221
223
self ._build_plate_model = None
224
+ self ._multi_build_plate_model = None
222
225
self ._setting_inheritance_manager = None
223
226
self ._simple_mode_settings_manager = None
224
227
self ._cura_scene_controller = None
@@ -858,10 +861,14 @@ def getObjectsModel(self, *args):
858
861
self ._object_manager = ObjectsModel .createObjectsModel ()
859
862
return self ._object_manager
860
863
864
+ def getMultiBuildPlateModel (self , * args ):
865
+ if self ._multi_build_plate_model is None :
866
+ self ._multi_build_plate_model = MultiBuildPlateModel (self )
867
+ return self ._multi_build_plate_model
868
+
861
869
def getBuildPlateModel (self , * args ):
862
870
if self ._build_plate_model is None :
863
- self ._build_plate_model = BuildPlateModel .createBuildPlateModel ()
864
-
871
+ self ._build_plate_model = BuildPlateModel (self )
865
872
return self ._build_plate_model
866
873
867
874
def getCuraSceneController (self , * args ):
@@ -923,15 +930,16 @@ def registerObjects(self, engine):
923
930
924
931
qmlRegisterUncreatableType (CuraApplication , "Cura" , 1 , 0 , "ResourceTypes" , "Just an Enum type" )
925
932
926
- qmlRegisterSingletonType (CuraSceneController , "Cura" , 1 , 2 , "SceneController" , self .getCuraSceneController )
933
+ qmlRegisterSingletonType (CuraSceneController , "Cura" , 1 , 0 , "SceneController" , self .getCuraSceneController )
927
934
qmlRegisterSingletonType (ExtruderManager , "Cura" , 1 , 0 , "ExtruderManager" , self .getExtruderManager )
928
935
qmlRegisterSingletonType (MachineManager , "Cura" , 1 , 0 , "MachineManager" , self .getMachineManager )
929
936
qmlRegisterSingletonType (SettingInheritanceManager , "Cura" , 1 , 0 , "SettingInheritanceManager" , self .getSettingInheritanceManager )
930
- qmlRegisterSingletonType (SimpleModeSettingsManager , "Cura" , 1 , 2 , "SimpleModeSettingsManager" , self .getSimpleModeSettingsManager )
937
+ qmlRegisterSingletonType (SimpleModeSettingsManager , "Cura" , 1 , 0 , "SimpleModeSettingsManager" , self .getSimpleModeSettingsManager )
931
938
qmlRegisterSingletonType (MachineActionManager .MachineActionManager , "Cura" , 1 , 0 , "MachineActionManager" , self .getMachineActionManager )
932
939
933
- qmlRegisterSingletonType (ObjectsModel , "Cura" , 1 , 2 , "ObjectsModel" , self .getObjectsModel )
934
- qmlRegisterSingletonType (BuildPlateModel , "Cura" , 1 , 2 , "BuildPlateModel" , self .getBuildPlateModel )
940
+ qmlRegisterSingletonType (ObjectsModel , "Cura" , 1 , 0 , "ObjectsModel" , self .getObjectsModel )
941
+ qmlRegisterSingletonType (BuildPlateModel , "Cura" , 1 , 0 , "BuildPlateModel" , self .getBuildPlateModel )
942
+ qmlRegisterSingletonType (MultiBuildPlateModel , "Cura" , 1 , 0 , "MultiBuildPlateModel" , self .getMultiBuildPlateModel )
935
943
qmlRegisterType (InstanceContainer , "Cura" , 1 , 0 , "InstanceContainer" )
936
944
qmlRegisterType (ExtrudersModel , "Cura" , 1 , 0 , "ExtrudersModel" )
937
945
qmlRegisterType (ContainerSettingsModel , "Cura" , 1 , 0 , "ContainerSettingsModel" )
@@ -951,7 +959,7 @@ def registerObjects(self, engine):
951
959
qmlRegisterType (MaterialSettingsVisibilityHandler , "Cura" , 1 , 0 , "MaterialSettingsVisibilityHandler" )
952
960
qmlRegisterType (QualitySettingsModel , "Cura" , 1 , 0 , "QualitySettingsModel" )
953
961
qmlRegisterType (MachineNameValidator , "Cura" , 1 , 0 , "MachineNameValidator" )
954
- qmlRegisterType (UserChangesModel , "Cura" , 1 , 1 , "UserChangesModel" )
962
+ qmlRegisterType (UserChangesModel , "Cura" , 1 , 0 , "UserChangesModel" )
955
963
qmlRegisterSingletonType (ContainerManager , "Cura" , 1 , 0 , "ContainerManager" , ContainerManager .createContainerManager )
956
964
957
965
# As of Qt5.7, it is necessary to get rid of any ".." in the path for the singleton to work.
@@ -1033,7 +1041,7 @@ def updatePlatformActivity(self, node = None):
1033
1041
count = 0
1034
1042
scene_bounding_box = None
1035
1043
is_block_slicing_node = False
1036
- active_build_plate = self .getBuildPlateModel () .activeBuildPlate
1044
+ active_build_plate = self ._multi_build_plate_model .activeBuildPlate
1037
1045
for node in DepthFirstIterator (self .getController ().getScene ().getRoot ()):
1038
1046
if (
1039
1047
not issubclass (type (node ), CuraSceneNode ) or
@@ -1282,7 +1290,7 @@ def arrangeObjectsToAllBuildPlates(self):
1282
1290
@pyqtSlot ()
1283
1291
def arrangeAll (self ):
1284
1292
nodes = []
1285
- active_build_plate = self .getBuildPlateModel () .activeBuildPlate
1293
+ active_build_plate = self ._multi_build_plate_model .activeBuildPlate
1286
1294
for node in DepthFirstIterator (self .getController ().getScene ().getRoot ()):
1287
1295
if not isinstance (node , SceneNode ):
1288
1296
continue
@@ -1431,7 +1439,7 @@ def groupSelected(self):
1431
1439
group_decorator = GroupDecorator ()
1432
1440
group_node .addDecorator (group_decorator )
1433
1441
group_node .addDecorator (ConvexHullDecorator ())
1434
- group_node .addDecorator (BuildPlateDecorator (self .getBuildPlateModel () .activeBuildPlate ))
1442
+ group_node .addDecorator (BuildPlateDecorator (self ._multi_build_plate_model .activeBuildPlate ))
1435
1443
group_node .setParent (self .getController ().getScene ().getRoot ())
1436
1444
group_node .setSelectable (True )
1437
1445
center = Selection .getSelectionCenter ()
@@ -1576,7 +1584,7 @@ def _readMeshFinished(self, job):
1576
1584
arrange_objects_on_load = (
1577
1585
not Preferences .getInstance ().getValue ("cura/use_multi_build_plate" ) or
1578
1586
not Preferences .getInstance ().getValue ("cura/not_arrange_objects_on_load" ))
1579
- target_build_plate = self .getBuildPlateModel () .activeBuildPlate if arrange_objects_on_load else - 1
1587
+ target_build_plate = self ._multi_build_plate_model .activeBuildPlate if arrange_objects_on_load else - 1
1580
1588
1581
1589
root = self .getController ().getScene ().getRoot ()
1582
1590
fixed_nodes = []
0 commit comments