Added MachineManagerModel to Cura

CURA-1278
This commit is contained in:
Jaime van Kessel 2016-05-11 15:35:41 +02:00
parent 9fcc3930ff
commit 573c1c1a5a
3 changed files with 33 additions and 3 deletions

View file

@ -36,10 +36,11 @@ from . import CuraActions
from . import MultiMaterialDecorator from . import MultiMaterialDecorator
from . import ZOffsetDecorator from . import ZOffsetDecorator
from . import CuraSplashScreen from . import CuraSplashScreen
from . import MachineManagerModel
from PyQt5.QtCore import pyqtSlot, QUrl, pyqtSignal, pyqtProperty, QEvent, Q_ENUMS from PyQt5.QtCore import pyqtSlot, QUrl, pyqtSignal, pyqtProperty, QEvent, Q_ENUMS
from PyQt5.QtGui import QColor, QIcon from PyQt5.QtGui import QColor, QIcon
from PyQt5.QtQml import qmlRegisterUncreatableType from PyQt5.QtQml import qmlRegisterUncreatableType, qmlRegisterSingletonType
import platform import platform
import sys import sys
@ -201,6 +202,9 @@ class CuraApplication(QtApplication):
self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml")) self.setMainQml(Resources.getPath(self.ResourceTypes.QmlFiles, "Cura.qml"))
self.initializeEngine() self.initializeEngine()
qmlRegisterSingletonType(MachineManagerModel.MachineManagerModel, "Cura", 1, 0, "MachineManager",
MachineManagerModel.createMachineManagerModel)
if self._engine.rootObjects: if self._engine.rootObjects:
self.closeSplash() self.closeSplash()

View file

@ -0,0 +1,25 @@
from PyQt5.QtCore import QObject, pyqtSlot, pyqtProperty, pyqtSignal
from UM.Application import Application
from UM.Signal import Signal, signalemitter
class MachineManagerModel(QObject):
def __init__(self, parent = None):
super().__init__(parent)
Application.getInstance().globalContainerStackChanged.connect(self._onGlobalContainerChanged)
globalContainerChanged = pyqtSignal()
def _onGlobalContainerChanged(self):
self.globalContainerChanged.emit()
@pyqtSlot(str)
def setActiveMachine(self, stack_id):
pass
@pyqtProperty(str, notify = globalContainerChanged)
def activeMachineId(self):
return Application.getInstance().getGlobalContainerStack().getId()
def createMachineManagerModel(engine, script_engine):
return MachineManagerModel()

View file

@ -6,6 +6,7 @@ import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1 import QtQuick.Controls.Styles 1.1
import UM 1.2 as UM import UM 1.2 as UM
import Cura 1.0 as Cura
Item Item
{ {
@ -79,9 +80,9 @@ Item
{ {
text: model.name; text: model.name;
checkable: true; checkable: true;
checked: model.active; checked: Cura.MachineManager.activeMachineId == model.id
exclusiveGroup: machineSelectionMenuGroup; exclusiveGroup: machineSelectionMenuGroup;
onTriggered: UM.MachineManager.setActiveMachineInstance(model.name); onTriggered: Cura.MachineManager.setActiveMachine(model.id);
} }
onObjectAdded: machineSelectionMenu.insertItem(index, object) onObjectAdded: machineSelectionMenu.insertItem(index, object)
onObjectRemoved: machineSelectionMenu.removeItem(object) onObjectRemoved: machineSelectionMenu.removeItem(object)