mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
CURA-4870 Add list of unique configurations to the output device. The printer output model calculates the configuration every time a change is received from the output device
This commit is contained in:
parent
135208bfee
commit
dead2122dd
4 changed files with 102 additions and 2 deletions
42
cura/PrinterOutput/ConfigurationModel.py
Normal file
42
cura/PrinterOutput/ConfigurationModel.py
Normal file
|
@ -0,0 +1,42 @@
|
|||
# Copyright (c) 2018 Ultimaker B.V.
|
||||
# Cura is released under the terms of the LGPLv3 or higher.
|
||||
|
||||
from PyQt5.QtCore import pyqtProperty, QObject
|
||||
|
||||
|
||||
class ConfigurationModel(QObject):
|
||||
|
||||
def __init__(self):
|
||||
self._printer_type = None
|
||||
self._extruder_configurations = []
|
||||
self._buildplate_configuration = None
|
||||
|
||||
def setPrinterType(self, printer_type):
|
||||
self._printer_type = printer_type
|
||||
|
||||
@pyqtProperty(str, fset = setPrinterType, constant = True)
|
||||
def printerType(self):
|
||||
return self._printer_type
|
||||
|
||||
def setExtruderConfigurations(self, extruder_configurations):
|
||||
self._extruder_configurations = extruder_configurations
|
||||
|
||||
@pyqtProperty("QVariantList", fset = setExtruderConfigurations, constant = True)
|
||||
def extruderConfigurations(self):
|
||||
return self._extruder_configurations
|
||||
|
||||
def setBuildplateConfiguration(self, buildplate_configuration):
|
||||
self._buildplate_configuration = buildplate_configuration
|
||||
|
||||
@pyqtProperty(str, fset = setBuildplateConfiguration, constant = True)
|
||||
def buildplateConfiguration(self):
|
||||
return self._buildplate_configuration
|
||||
|
||||
def __eq__(self, other):
|
||||
return hash(self) == hash(other)
|
||||
|
||||
def __hash__(self):
|
||||
extruder_hash = hash(0)
|
||||
for configuration in self.extruderConfigurations:
|
||||
extruder_hash ^= hash(frozenset(configuration.items()))
|
||||
return hash(self.printerType) ^ extruder_hash ^ hash(self.buildplateConfiguration)
|
Loading…
Add table
Add a link
Reference in a new issue