Browse Source

wxNVIZ: fix crash accidentally introduced in https://trac.osgeo.org/grass/changeset/57082

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@57132 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 11 years ago
parent
commit
b34da2bfcf
3 changed files with 17 additions and 5 deletions
  1. 13 1
      gui/wxpython/mapdisp/statusbar.py
  2. 3 3
      gui/wxpython/nviz/mapwindow.py
  3. 1 1
      gui/wxpython/nviz/wxnviz.py

+ 13 - 1
gui/wxpython/mapdisp/statusbar.py

@@ -1026,13 +1026,25 @@ class SbProgress(SbItem):
         return self.widget.IsShown()
 
     def SetValue(self, value):
+        """!Sets value of progressbar.
+        
+        Calls wx.Yield which allows
+        to update gui for displaying progress.
+        """
+        self.SafeSetValue(self, value)
+        wx.Yield()
+
+    def SafeSetValue(self, value):
+        """! Thread save SetValue method.
+        
+        Needed for wxNVIZ.
+        """
         if value > self.GetRange():
             return
         self.widget.SetValue(value)
         if value == self.GetRange():
             self.Hide()
 
-        wx.Yield()
 
     def GetWidget(self):
         """!Returns underlaying winget.

+ 3 - 3
gui/wxpython/nviz/mapwindow.py

@@ -1158,10 +1158,10 @@ class GLWindow(MapWindow, glcanvas.GLCanvas):
         if self.render['quick'] is False:
             self.parent.GetProgressBar().Show()
             self.parent.GetProgressBar().SetRange(2)
-            self.parent.GetProgressBar().SetValue(0)
+            self.parent.GetProgressBar().SafeSetValue(0)
         
         if self.render['quick'] is False:
-            self.parent.GetProgressBar().SetValue(1)
+            self.parent.GetProgressBar().SafeSetValue(1)
             self._display.Draw(False, -1)
             if self.saveHistory:
                 self.ViewHistory(view = self.view, iview = self.iview)
@@ -1197,7 +1197,7 @@ class GLWindow(MapWindow, glcanvas.GLCanvas):
         stop = time.clock()
         
         if self.render['quick'] is False:
-            self.parent.GetProgressBar().SetValue(2)
+            self.parent.GetProgressBar().SafeSetValue(2)
             # hide process bar
             self.parent.GetProgressBar().Hide()
         

+ 1 - 1
gui/wxpython/nviz/wxnviz.py

@@ -69,7 +69,7 @@ def print_progress(value):
     if progress:
         if not progress.GetRange() == 100:
             progress.SetRange(100)
-        progress.SetValue(value)
+        progress.SafeSetValue(value)
     else:
         print value