Display a slicing message when performing a slice operation

This commit is contained in:
Arjen Hiemstra 2015-09-12 19:38:08 +02:00
parent 29c0c7c6f4
commit 0148186c7a

View file

@ -11,6 +11,7 @@ from UM.Signal import Signal
from UM.Logger import Logger from UM.Logger import Logger
from UM.Resources import Resources from UM.Resources import Resources
from UM.Settings.SettingOverrideDecorator import SettingOverrideDecorator from UM.Settings.SettingOverrideDecorator import SettingOverrideDecorator
from UM.Message import Message
from cura.OneAtATimeIterator import OneAtATimeIterator from cura.OneAtATimeIterator import OneAtATimeIterator
from . import Cura_pb2 from . import Cura_pb2
@ -23,6 +24,9 @@ import numpy
from PyQt5.QtCore import QTimer from PyQt5.QtCore import QTimer
from UM.i18n import i18nCatalog
catalog = i18nCatalog("cura")
class CuraEngineBackend(Backend): class CuraEngineBackend(Backend):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
@ -70,6 +74,8 @@ class CuraEngineBackend(Backend):
self._enabled = True self._enabled = True
self._message = None
self.backendConnected.connect(self._onBackendConnected) self.backendConnected.connect(self._onBackendConnected)
def getEngineCommand(self): def getEngineCommand(self):
@ -141,10 +147,16 @@ class CuraEngineBackend(Backend):
# objects.append(node) # objects.append(node)
if len(object_groups) == 0: if len(object_groups) == 0:
if self._message:
self._message.hide()
self._message = None
return #No point in slicing an empty build plate return #No point in slicing an empty build plate
if kwargs.get("profile", self._profile).hasErrorValue(): if kwargs.get("profile", self._profile).hasErrorValue():
Logger.log('w', "Profile has error values. Aborting slicing") Logger.log('w', "Profile has error values. Aborting slicing")
if self._message:
self._message.hide()
self._message = None
return #No slicing if we have error values since those are by definition illegal values. return #No slicing if we have error values since those are by definition illegal values.
self._slicing = True self._slicing = True
@ -153,6 +165,11 @@ class CuraEngineBackend(Backend):
self._report_progress = kwargs.get("report_progress", True) self._report_progress = kwargs.get("report_progress", True)
if self._report_progress: if self._report_progress:
self.processingProgress.emit(0.0) self.processingProgress.emit(0.0)
if not self._message:
self._message = Message(catalog.i18nc("@info:status", "Slicing..."), 0, False, -1)
self._message.show()
else:
self._message.setProgress(-1)
self._sendSettings(kwargs.get("profile", self._profile)) self._sendSettings(kwargs.get("profile", self._profile))
@ -225,6 +242,14 @@ class CuraEngineBackend(Backend):
if message.amount >= 0.99: if message.amount >= 0.99:
self._slicing = False self._slicing = False
if self._message:
self._message.setProgress(100)
self._message.hide()
self._message = None
if self._message:
self._message.setProgress(round(message.amount * 100))
if self._report_progress: if self._report_progress:
self.processingProgress.emit(message.amount) self.processingProgress.emit(message.amount)