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.Resources import Resources
from UM.Settings.SettingOverrideDecorator import SettingOverrideDecorator
from UM.Message import Message
from cura.OneAtATimeIterator import OneAtATimeIterator
from . import Cura_pb2
@ -23,6 +24,9 @@ import numpy
from PyQt5.QtCore import QTimer
from UM.i18n import i18nCatalog
catalog = i18nCatalog("cura")
class CuraEngineBackend(Backend):
def __init__(self):
super().__init__()
@ -70,6 +74,8 @@ class CuraEngineBackend(Backend):
self._enabled = True
self._message = None
self.backendConnected.connect(self._onBackendConnected)
def getEngineCommand(self):
@ -141,10 +147,16 @@ class CuraEngineBackend(Backend):
# objects.append(node)
if len(object_groups) == 0:
if self._message:
self._message.hide()
self._message = None
return #No point in slicing an empty build plate
if kwargs.get("profile", self._profile).hasErrorValue():
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.
self._slicing = True
@ -153,6 +165,11 @@ class CuraEngineBackend(Backend):
self._report_progress = kwargs.get("report_progress", True)
if self._report_progress:
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))
@ -225,6 +242,14 @@ class CuraEngineBackend(Backend):
if message.amount >= 0.99:
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:
self.processingProgress.emit(message.amount)