X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=blender%2Fio_mspgl%2Futil.py;h=850f1ddbb71dd754005d80a1e568fb01dc9f9819;hb=1a561b4e8d77fd14711b2304152e0b2408a49fdf;hp=936a1c1dcf0cc16fa9f8c7836fd7b63a8b6e9565;hpb=fcdc70624618488c514676874006f5eddc4e63df;p=libs%2Fgl.git diff --git a/blender/io_mspgl/util.py b/blender/io_mspgl/util.py index 936a1c1d..850f1ddb 100644 --- a/blender/io_mspgl/util.py +++ b/blender/io_mspgl/util.py @@ -1,15 +1,35 @@ 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