class Progress:
- def __init__(self):
+ def __init__(self, context):
self.task = ""
self.start = 0.0
self.delta = 1.0
+ self.last = 0.0
+ self.stack = []
+ self.window_manager = context.window_manager
+ self.window_manager.progress_begin(0.0, 1.0)
+
+ def push_task(self, task, low, high):
+ self.stack.append((task, low, high-low))
+ self.set_task("init", 0.0, 0.0)
+
+ def pop_task(self):
+ self.set_task("finish", 1.0, 1.0)
+ self.stack.pop()
def set_task(self, task, low, high):
+ if self.stack:
+ task = self.stack[-1][0]+": "+task
+ low = self.stack[-1][1]+self.stack[-1][2]*low
+ high = self.stack[-1][1]+self.stack[-1][2]*high
+
self.task = task
self.start = low
self.delta = high-low
- self.set_progress(0.0)
+
+ self.set_progress(0)
def set_progress(self, value):
- pass
- #Blender.Window.DrawProgressBar(self.start+self.delta*value, self.task)
+ value = self.start+self.delta*value
+ if value>self.last+0.01:
+ self.window_manager.progress_update(value)
+ self.last = value