mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-08 15:37:27 -06:00
Display a message when processing the top layers takes a long time
Contributes to CURA-957
This commit is contained in:
parent
864851f8ba
commit
f37b422ccb
1 changed files with 25 additions and 2 deletions
|
@ -11,6 +11,7 @@ from UM.Scene.Selection import Selection
|
||||||
from UM.Math.Color import Color
|
from UM.Math.Color import Color
|
||||||
from UM.Mesh.MeshData import MeshData
|
from UM.Mesh.MeshData import MeshData
|
||||||
from UM.Job import Job
|
from UM.Job import Job
|
||||||
|
from UM.Message import Message
|
||||||
|
|
||||||
from UM.View.RenderBatch import RenderBatch
|
from UM.View.RenderBatch import RenderBatch
|
||||||
from UM.View.GL.OpenGL import OpenGL
|
from UM.View.GL.OpenGL import OpenGL
|
||||||
|
@ -22,6 +23,10 @@ from PyQt5.QtWidgets import QApplication
|
||||||
|
|
||||||
from . import LayerViewProxy
|
from . import LayerViewProxy
|
||||||
|
|
||||||
|
import time
|
||||||
|
from UM.i18n import i18nCatalog
|
||||||
|
catalog = i18nCatalog("cura")
|
||||||
|
|
||||||
## View used to display g-code paths.
|
## View used to display g-code paths.
|
||||||
class LayerView(View):
|
class LayerView(View):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -210,13 +215,23 @@ class _CreateTopLayersJob(Job):
|
||||||
if self._cancel or not layer_data:
|
if self._cancel or not layer_data:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
message = Message(catalog.i18nc("@info:status", "Processing Layers"), 0, False, -1)
|
||||||
|
|
||||||
|
start_time = time.clock()
|
||||||
|
|
||||||
layer_mesh = MeshData()
|
layer_mesh = MeshData()
|
||||||
for i in range(self._solid_layers):
|
for i in range(self._solid_layers):
|
||||||
layer_number = self._layer_number - i
|
layer_number = self._layer_number - i
|
||||||
if layer_number < 0:
|
if layer_number < 0:
|
||||||
continue
|
continue
|
||||||
#try:
|
|
||||||
|
try:
|
||||||
layer = layer_data.getLayer(layer_number).createMesh()
|
layer = layer_data.getLayer(layer_number).createMesh()
|
||||||
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
|
message.hide()
|
||||||
|
return
|
||||||
|
|
||||||
if not layer or layer.getVertices() is None:
|
if not layer or layer.getVertices() is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -228,9 +243,16 @@ class _CreateTopLayersJob(Job):
|
||||||
layer_mesh.addColors(layer.getColors() * brightness)
|
layer_mesh.addColors(layer.getColors() * brightness)
|
||||||
|
|
||||||
if self._cancel:
|
if self._cancel:
|
||||||
|
message.hide()
|
||||||
return
|
return
|
||||||
|
|
||||||
|
now = time.clock()
|
||||||
|
if now - start_time > 0.5:
|
||||||
|
# If the entire process takes longer than 500ms, display a message indicating that we're busy.
|
||||||
|
message.show()
|
||||||
|
|
||||||
if self._cancel:
|
if self._cancel:
|
||||||
|
message.hide()
|
||||||
return
|
return
|
||||||
|
|
||||||
jump_mesh = layer_data.getLayer(self._layer_number).createJumps()
|
jump_mesh = layer_data.getLayer(self._layer_number).createJumps()
|
||||||
|
@ -238,6 +260,7 @@ class _CreateTopLayersJob(Job):
|
||||||
jump_mesh = None
|
jump_mesh = None
|
||||||
|
|
||||||
self.setResult({ "layers": layer_mesh, "jumps": jump_mesh })
|
self.setResult({ "layers": layer_mesh, "jumps": jump_mesh })
|
||||||
|
message.hide()
|
||||||
|
|
||||||
def cancel(self):
|
def cancel(self):
|
||||||
self._cancel = True
|
self._cancel = True
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue