]> git.tdb.fi Git - libs/gl.git/blobdiff - blender/io_mspgl/util.py
Display overall progress when exporting scenes
[libs/gl.git] / blender / io_mspgl / util.py
index 000190fe05e2cb80510121c90afd945378dd3ba6..850f1ddbb71dd754005d80a1e568fb01dc9f9819 100644 (file)
@@ -4,13 +4,28 @@ class Progress:
                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)
 
        def set_progress(self, value):