Make ConnectionType Enum type accessible to QML

CURA-6011
This commit is contained in:
Lipu Fei 2018-12-14 11:28:18 +01:00
parent a1ad7851d9
commit 4252b95603
3 changed files with 18 additions and 2 deletions

View file

@ -113,6 +113,7 @@ from cura.Settings.CuraFormulaFunctions import CuraFormulaFunctions
from cura.ObjectsModel import ObjectsModel
from cura.PrinterOutputDevice import PrinterOutputDevice
from cura.PrinterOutput.NetworkMJPGImage import NetworkMJPGImage
from UM.FlameProfiler import pyqtSlot
@ -975,6 +976,8 @@ class CuraApplication(QtApplication):
qmlRegisterSingletonType(ContainerManager, "Cura", 1, 0, "ContainerManager", ContainerManager.getInstance)
qmlRegisterType(SidebarCustomMenuItemsModel, "Cura", 1, 0, "SidebarCustomMenuItemsModel")
qmlRegisterType(PrinterOutputDevice, "Cura", 1, 0, "PrinterOutputDevice")
from cura.API import CuraAPI
qmlRegisterSingletonType(CuraAPI, "Cura", 1, 1, "API", self.getCuraAPI)

View file

@ -4,7 +4,7 @@
from UM.Decorators import deprecated
from UM.i18n import i18nCatalog
from UM.OutputDevice.OutputDevice import OutputDevice
from PyQt5.QtCore import pyqtProperty, pyqtSignal, QObject, QTimer, QUrl
from PyQt5.QtCore import pyqtProperty, pyqtSignal, QObject, QTimer, QUrl, Q_ENUMS
from PyQt5.QtWidgets import QMessageBox
from UM.Logger import Logger
@ -54,6 +54,12 @@ class ConnectionType(IntEnum):
# For all other uses it should be used in the same way as a "regular" OutputDevice.
@signalemitter
class PrinterOutputDevice(QObject, OutputDevice):
# Put ConnectionType here with Q_ENUMS() so it can be registered as a QML type and accessible via QML, and there is
# no need to remember what those Enum integer values mean.
ConnectionType = ConnectionType
Q_ENUMS(ConnectionType)
printersChanged = pyqtSignal()
connectionStateChanged = pyqtSignal(str)
acceptsCommandsChanged = pyqtSignal()

View file

@ -30,9 +30,16 @@ Column
model: UM.ContainerStacksModel
{
id: networkedPrintersModel
property var umConnectionTypes: [Cura.PrinterOutputDevice.NetworkConnection,
Cura.PrinterOutputDevice.ClusterConnection,
Cura.PrinterOutputDevice.CloudConnection
]
filter:
{
"type": "machine", "um_network_key": "*", "hidden": "False", "um_connection_type": "[2,3,4]"
"type": "machine",
"um_network_key": "*",
"hidden": "False",
"um_connection_type": "[" + umConnectionTypes.join(",") + "]"
}
}