浏览代码

wxGUI: re-render display when mask set

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@58415 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 11 年之前
父节点
当前提交
48524f53b4
共有 2 个文件被更改,包括 11 次插入5 次删除
  1. 9 5
      gui/wxpython/core/gconsole.py
  2. 2 0
      gui/wxpython/gui_core/forms.py

+ 9 - 5
gui/wxpython/core/gconsole.py

@@ -345,6 +345,8 @@ class GConsole(wx.EvtHandler):
         # Signal when some map is created or updated by a module.
         # attributes: name: map name, ltype: map type,
         self.mapCreated = Signal('GConsole.mapCreated')
+        # emitted when map display should be re-render
+        self.updateMap = Signal('GConsole.updateMap')
         # emitted when log message should be written
         self.writeLog = Signal('GConsole.writeLog')
         # emitted when command log message should be written
@@ -663,11 +665,13 @@ class GConsole(wx.EvtHandler):
                      # TODO: do it better (?)
                      name in ('r.colors', 'r3.colors', 'v.colors')) and \
                     p.get('value', None):
-                name = p.get('value')
-                if '@' not in name:
-                    name = name + '@' + grass.gisenv()['MAPSET']
-                self.mapCreated.emit(name=name, ltype=prompt)
-
+                lname = p.get('value')
+                if '@' not in lname:
+                    lname += '@' + grass.gisenv()['MAPSET']
+                self.mapCreated.emit(name=lname, ltype=prompt)
+        if name == 'r.mask':
+            self.updateMap.emit()
+        
         event.Skip()
 
     def OnProcessPendingOutputWindowEvents(self, event):

+ 2 - 0
gui/wxpython/gui_core/forms.py

@@ -460,6 +460,7 @@ class TaskFrame(wx.Frame):
         self._gconsole = self.notebookpanel._gconsole
         if self._gconsole:
             self._gconsole.mapCreated.connect(self.OnMapCreated)
+            self._gconsole.updateMap.connect(lambda: self._giface.updateMap.emit())
         self.goutput = self.notebookpanel.goutput
         if self.goutput:
             self.goutput.showNotification.connect(lambda message: self.SetStatusText(message))
@@ -795,6 +796,7 @@ class CmdPanel(wx.Panel):
         wx.Panel.__init__(self, parent, id = id, *args, **kwargs)
 
         self.mapCreated = Signal
+        self.updateMap  = Signal
 
         # Determine tab layout
         sections = []