瀏覽代碼

nviz2/wxGUI: redirecting messages fixed (style)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@32317 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 17 年之前
父節點
當前提交
3469e9661b
共有 2 個文件被更改,包括 36 次插入34 次删除
  1. 35 33
      gui/wxpython/gui_modules/goutput.py
  2. 1 1
      gui/wxpython/gui_modules/nviz.py

+ 35 - 33
gui/wxpython/gui_modules/goutput.py

@@ -389,6 +389,10 @@ class GMStderr(object):
         self.notebook = notebook
         self.pageid   = pageid
 
+        self.type = ''
+        self.message = ''
+        self.printMessage = False
+        
     def write(self, s):
         if self.pageid > -1:
             # swith notebook page to 'command output'
@@ -398,13 +402,11 @@ class GMStderr(object):
         s = s.replace('\n', os.linesep)
         # remove/replace escape sequences '\b' or '\r' from stream
         s = s.replace('\b', '').replace('\r', '%s' % os.linesep)
-        type = ''
-        message = ''
-        printMessage = False
+ 
         for line in s.split(os.linesep):
             if len(line) == 0:
                 continue
-
+            
             if 'GRASS_INFO_PERCENT' in line:
                 # 'GRASS_INFO_PERCENT: 10' -> value=10
                 value = int(line.rsplit(':', 1)[1].strip())
@@ -413,23 +415,23 @@ class GMStderr(object):
                 else:
                     self.gmgauge.SetValue(0) # reset progress bar on '0%'
             elif 'GRASS_INFO_MESSAGE' in line:
-                type = 'message'
-                if len(message) > 0:
-                    message += os.linesep
-                message += line.split(':', 1)[1].strip()
+                self.type = 'message'
+                if len(self.message) > 0:
+                    self.message += os.linesep
+                self.message += line.split(':', 1)[1].strip()
             elif 'GRASS_INFO_WARNING' in line:
-                type = 'warning'
-                if len(message) > 0:
-                    message += os.linesep
-                message += line.split(':', 1)[1].strip()
+                self.type = 'warning'
+                if len(self.message) > 0:
+                    self.message += os.linesep
+                self.message += line.split(':', 1)[1].strip()
             elif 'GRASS_INFO_ERROR' in line:
-                type = 'error'
-                if len(message) > 0:
-                    message += os.linesep
-                message += line.split(':', 1)[1].strip()
+                self.type = 'error'
+                if len(self.message) > 0:
+                    self.message += os.linesep
+                self.message += line.split(':', 1)[1].strip()
             elif 'GRASS_INFO_END' in line:
-                printMessage = True
-            elif not type:
+                self.printMessage = True
+            elif not self.type:
                 if len(line) > 0:
                     p1 = self.gmstc.GetCurrentPos()
                     self.gmstc.AddTextWrapped(line, wrap=60) # wrap && add os.linesep
@@ -438,30 +440,30 @@ class GMStderr(object):
                     self.gmstc.StartStyling(p1, 0xff)
                     self.gmstc.SetStyling(p2 - p1 + 1, self.gmstc.StyleUnknown)
             elif len(line) > 0:
-                message += os.linesep + line.strip()
+                self.message += os.linesep + line.strip()
 
-            if printMessage and len(message) > 0:
+            if self.printMessage and len(self.message) > 0:
                 p1 = self.gmstc.GetCurrentPos()
-                if type == 'warning':
-                    message = 'WARNING: ' + message
-                elif type == 'error':
-                    message = 'ERROR: ' + message
-                if os.linesep not in message:
-                    self.gmstc.AddTextWrapped(message, wrap=60) #wrap && add os.linesep
+                if self.type == 'warning':
+                    self.message = 'WARNING: ' + self.message
+                elif self.type == 'error':
+                    self.message = 'ERROR: ' + self.message
+                if os.linesep not in self.message:
+                    self.gmstc.AddTextWrapped(self.message, wrap=60) #wrap && add os.linesep
                 else:
-                    self.gmstc.AddText(message + os.linesep)
+                    self.gmstc.AddText(self.message + os.linesep)
                 # self.gmstc.EnsureCaretVisible()
                 p2 = self.gmstc.GetCurrentPos()
                 self.gmstc.StartStyling(p1, 0xff)
-                if type == 'error':
+                if self.type == 'error':
                     self.gmstc.SetStyling(p2 - p1 + 1, self.gmstc.StyleError)
-                elif type == 'warning':
+                elif self.type == 'warning':
                     self.gmstc.SetStyling(p2 - p1 + 1, self.gmstc.StyleWarning)
-                elif type == 'message':
-                    self.gmstc.SetStyling(p2 - p1 + 1, self.gmstc.StyleMessage)
+                elif self.type == 'self.message':
+                    self.gmstc.SetStyling(p2 - p1 + 1, self.gmstc.StyleSelf.Message)
 
-                type = ''
-                message = ''
+                self.type = ''
+                self.message = ''
 
 class GMStc(wx.stc.StyledTextCtrl):
     """Styled GMConsole

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

@@ -2659,7 +2659,7 @@ class NvizToolWindow(wx.Frame):
         # TODO: use step value instead
 
         self.OnVectorHeight(event)
-        self.OnVectorHeightFull(None)
+        self.OnVectorHeightFull(event)
 
     def OnVectorSurface(self, event):
         """Reference surface for vector map (lines/points)"""