Pārlūkot izejas kodu

wxGUI: remove gUpdateMap events and replace by signals

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@57099 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 11 gadi atpakaļ
vecāks
revīzija
f6e87d1855

+ 0 - 45
gui/wxpython/core/events.py

@@ -1,45 +0,0 @@
-"""!
-@package core.events
-
-@brief General events
-
-Put here only truly general events. Once you find that your event can be
-generated in more than one class, put your event here. Otherwise,
-leave it in your class file. Events are expected to be grass/gis related.
-
-General notice:
-Command events are propagated to parent windows. However, they do not propagate 
-beyond dialogs. Events do not propagate at all.
-Command events works only with windows, not EvtHandlers, so for other objects
-than windows you need to have extra parameter - guiparent - which can be used
-for creating command events.
-\code
-mapEvent = gMapCreated(self._guiparent.GetId(), ...)
-wx.PostEvent(self._guiparent, mapEvent)
-\endcode
-
-@todo naming conventions for events
-
-(C) 2012 by the GRASS Development Team
-
-This program is free software under the GNU General Public License
-(>=v2). Read the file COPYING that comes with GRASS for details.
-
-@author Vaclav Petras <wenzeslaus gmail.com>
-"""
-
-
-from wx.lib.newevent import NewCommandEvent
-from wx.lib.newevent import NewEvent
-
-
-# Post it to BufferedWindow instance, which you want to update.
-# For relevant attributes for the event see 
-# mapdisp.mapwindow.BufferedWindow UpdateMap method arguments.
-# If event does not contain attribute corresponding to argument with default
-# value, the default value will be used.
-# Arguments with no default value must be among event attributes
-# in order to be the event processed.
-# TODO implement to NVIZ GLWindow
-# TODO change direct calling of UpdateMap method to posting this event 
-gUpdateMap, EVT_UPDATE_MAP = NewEvent()

+ 0 - 13
gui/wxpython/mapdisp/mapwindow.py

@@ -36,7 +36,6 @@ from gui_core.dialogs   import SavedRegion
 from core.gcmd          import RunCommand, GException, GError, GMessage
 from core.gcmd          import RunCommand, GException, GError, GMessage
 from core.debug         import Debug
 from core.debug         import Debug
 from core.settings      import UserSettings
 from core.settings      import UserSettings
-from core.events        import EVT_UPDATE_MAP
 from gui_core.mapwindow import MapWindow
 from gui_core.mapwindow import MapWindow
 from core.utils         import GetGEventAttribsForHandler
 from core.utils         import GetGEventAttribsForHandler
 
 
@@ -100,7 +99,6 @@ class BufferedWindow(MapWindow, wx.Window):
         self.Bind(wx.EVT_PAINT,           self.OnPaint)
         self.Bind(wx.EVT_PAINT,           self.OnPaint)
         self.Bind(wx.EVT_SIZE,            self.OnSize)
         self.Bind(wx.EVT_SIZE,            self.OnSize)
         self.Bind(wx.EVT_IDLE,            self.OnIdle)
         self.Bind(wx.EVT_IDLE,            self.OnIdle)
-        self.Bind(EVT_UPDATE_MAP,         self.OnUpdateMap)
 
 
         self._bindMouseEvents()
         self._bindMouseEvents()
         
         
@@ -605,17 +603,6 @@ class BufferedWindow(MapWindow, wx.Window):
     def IsAlwaysRenderEnabled(self):
     def IsAlwaysRenderEnabled(self):
         return self.alwaysRender
         return self.alwaysRender
 
 
-    def OnUpdateMap(self, event):
-        """!Called when this class receives core.events.gUpdateMap event. 
-        """
-        kwargs, missing_args = GetGEventAttribsForHandler(self.UpdateMap, event)
-
-        if missing_args:
-            Debug.msg (1, "Invalid call of EVT_UPDATE_MAP event.")
-            return
-
-        self.UpdateMap(**kwargs)
-
     def UpdateMap(self, render = True, renderVector = True):
     def UpdateMap(self, render = True, renderVector = True):
         """!Updates the canvas anytime there is a change to the
         """!Updates the canvas anytime there is a change to the
         underlaying images or to the geometry of the canvas.
         underlaying images or to the geometry of the canvas.

+ 6 - 11
gui/wxpython/vnet/dialogs.py

@@ -40,7 +40,6 @@ import wx.lib.scrolledpanel    as scrolled
 
 
 from core             import globalvar, utils
 from core             import globalvar, utils
 from core.gcmd        import RunCommand, GMessage
 from core.gcmd        import RunCommand, GMessage
-from core.events      import gUpdateMap
 from core.settings    import UserSettings
 from core.settings    import UserSettings
 
 
 from dbmgr.base       import DbMgrBase 
 from dbmgr.base       import DbMgrBase 
@@ -71,10 +70,9 @@ class VNETDialog(wx.Dialog):
         wx.Dialog.__init__(self, parent, id, style=style, title = title, **kwargs)
         wx.Dialog.__init__(self, parent, id, style=style, title = title, **kwargs)
         self.SetIcon(wx.Icon(os.path.join(globalvar.ETCICONDIR, 'grass.ico'), wx.BITMAP_TYPE_ICO))
         self.SetIcon(wx.Icon(os.path.join(globalvar.ETCICONDIR, 'grass.ico'), wx.BITMAP_TYPE_ICO))
 
 
-        self.parent  = parent 
-        self.mapDisp  = giface.GetMapDisplay()
-        self.mapWin = giface.GetMapWindow().GetMapWindow()
-        self._giface = giface
+        self.parent  = parent
+        self.mapWin = giface.GetMapWindow()
+        self.giface = giface
 
 
         # contains current analysis result (do not have to be last one, when history is browsed), 
         # contains current analysis result (do not have to be last one, when history is browsed), 
         # it is instance of VectMap class
         # it is instance of VectMap class
@@ -292,8 +290,7 @@ class VNETDialog(wx.Dialog):
             cmd = self.GetLayerStyle()
             cmd = self.GetLayerStyle()
             self.tmp_result.AddRenderLayer(cmd)
             self.tmp_result.AddRenderLayer(cmd)
 
 
-        up_map_evt = gUpdateMap(render = True, renderVector = True)
-        wx.PostEvent(self.mapWin, up_map_evt)
+        self.giface.updateMap.emit(render=True, renderVector=True)
 
 
     def _createOutputPage(self):
     def _createOutputPage(self):
         """!Tab with output console"""
         """!Tab with output console"""
@@ -606,8 +603,7 @@ class VNETDialog(wx.Dialog):
                                                         opacity = 1.0,    render = True,       
                                                         opacity = 1.0,    render = True,       
                                                         pos = -1)         
                                                         pos = -1)         
 
 
-            up_map_evt = gUpdateMap(render = True, renderVector = True)
-            wx.PostEvent(self.mapWin, up_map_evt)
+            self.giface.updateMap.emit(render=True, renderVector=True)
 
 
     def UseTurns(self):
     def UseTurns(self):
         if self.useTurns.IsChecked():
         if self.useTurns.IsChecked():
@@ -849,8 +845,7 @@ class VNETDialog(wx.Dialog):
         self._updateResultDbMgrPage()
         self._updateResultDbMgrPage()
         self._updateDbMgrData()
         self._updateDbMgrData()
 
 
-        up_map_evt = gUpdateMap(render = True, renderVector = True)
-        wx.PostEvent(self.mapWin, up_map_evt)
+        self.giface.updateMap.emit(render=True, renderVector=True)
 
 
     def OnShowResult(self, event):
     def OnShowResult(self, event):
         """!Show/hide analysis result"""
         """!Show/hide analysis result"""

+ 20 - 34
gui/wxpython/vnet/vnet_core.py

@@ -26,7 +26,6 @@ import wx
 
 
 from core             import utils
 from core             import utils
 from core.gcmd        import RunCommand, GMessage
 from core.gcmd        import RunCommand, GMessage
-from core.events      import gUpdateMap
 from core.gconsole    import CmdThread, EVT_CMD_DONE, GConsole
 from core.gconsole    import CmdThread, EVT_CMD_DONE, GConsole
 
 
 from gui_core.gselect import VectorDBInfo
 from gui_core.gselect import VectorDBInfo
@@ -42,8 +41,8 @@ class VNETManager:
         self.data = {}
         self.data = {}
 
 
         self.guiparent = guiparent
         self.guiparent = guiparent
-        self.mapDisp  = giface.GetMapDisplay()
-        self.mapWin = giface.GetMapWindow().GetMapWindow()
+        self.giface = giface
+        self.mapWin = giface.GetMapWindow()
 
 
         self.goutput = GConsole(guiparent = guiparent) 
         self.goutput = GConsole(guiparent = guiparent) 
 
 
@@ -60,7 +59,7 @@ class VNETManager:
         self.history = VNETHistory(self.guiparent, self.vnet_data, self.tmp_maps)
         self.history = VNETHistory(self.guiparent, self.vnet_data, self.tmp_maps)
         self.analyses = VNETAnalyses(self.vnet_data, self.RunAnDone, self.goutput, self.tmp_maps)
         self.analyses = VNETAnalyses(self.vnet_data, self.RunAnDone, self.goutput, self.tmp_maps)
 
 
-        self.snap_nodes = SnappingNodes(self.vnet_data, self.tmp_maps, self.mapWin)
+        self.snap_nodes = SnappingNodes(self.giface, self.vnet_data, self.tmp_maps, self.mapWin)
 
 
         self.ttbCreated = Signal('VNETManager.ttbCreated')
         self.ttbCreated = Signal('VNETManager.ttbCreated')
         self.analysisDone = Signal('VNETManager.analysisDone')
         self.analysisDone = Signal('VNETManager.analysisDone')
@@ -82,11 +81,9 @@ class VNETManager:
         self.vnet_data.CleanUp()
         self.vnet_data.CleanUp()
         
         
         if update:
         if update:
-            up_map_evt = gUpdateMap(render = True, renderVector = True)
-            wx.PostEvent(self.mapWin, up_map_evt)
+            self.giface.updateMap.emit(render=True, renderVector=True)
         else:
         else:
-            up_map_evt = gUpdateMap(render = True, renderVector = True)
-            wx.PostEvent(self.mapWin, up_map_evt)
+            self.giface.updateMap.emit(render=False, renderVector=False)
 
 
     def GetPointsManager(self):
     def GetPointsManager(self):
         return self.vnet_data.GetPointsData()
         return self.vnet_data.GetPointsData()
@@ -157,8 +154,7 @@ class VNETManager:
         else:
         else:
             self.results["vect_map"].DeleteRenderLayer()
             self.results["vect_map"].DeleteRenderLayer()
 
 
-        up_map_evt = gUpdateMap(render = True, renderVector = True)
-        wx.PostEvent(self.mapWin, up_map_evt)
+        self.giface.updateMap.emit(render=True, renderVector=True)
 
 
     def GetAnalysisProperties(self, analysis = None):
     def GetAnalysisProperties(self, analysis = None):
         return self.vnet_data.GetAnalysisProperties(analysis = analysis)
         return self.vnet_data.GetAnalysisProperties(analysis = analysis)
@@ -191,8 +187,7 @@ class VNETManager:
         cmd, cmd_colors = self.vnet_data.GetLayerStyle()
         cmd, cmd_colors = self.vnet_data.GetLayerStyle()
         self.results["vect_map"].AddRenderLayer(cmd, cmd_colors)
         self.results["vect_map"].AddRenderLayer(cmd, cmd_colors)
 
 
-        up_map_evt = gUpdateMap(render = True, renderVector = True)
-        wx.PostEvent(self.mapWin, up_map_evt)
+        self.giface.updateMap.emit(render=True, renderVector=True)
 
 
     def GetHistStep(self):
     def GetHistStep(self):
         return self.history.GetHistStep()
         return self.history.GetHistStep()
@@ -234,22 +229,18 @@ class VNETManager:
         self.vnet_data.GetPointsData().SetPointDrawSettings()
         self.vnet_data.GetPointsData().SetPointDrawSettings()
         if not self.results["vect_map"]  or \
         if not self.results["vect_map"]  or \
            not self.tmp_maps.HasTmpVectMap(self.results["vect_map"].GetVectMapName()):
            not self.tmp_maps.HasTmpVectMap(self.results["vect_map"].GetVectMapName()):
-            up_map_evt = gUpdateMap(render = False, renderVector = False)
-            wx.PostEvent(self.mapWin, up_map_evt)
+            self.giface.updateMap.emit(render=False, renderVector=False)
         elif self.results["vect_map"].GetRenderLayer():
         elif self.results["vect_map"].GetRenderLayer():
             cmd, cmd_colors = self.vnet_data.GetLayerStyle()
             cmd, cmd_colors = self.vnet_data.GetLayerStyle()
             self.results["vect_map"].AddRenderLayer(cmd, cmd_colors)
             self.results["vect_map"].AddRenderLayer(cmd, cmd_colors)
             
             
-            up_map_evt = gUpdateMap(render = True, renderVector = True)
-            wx.PostEvent(self.mapWin, up_map_evt)#TODO optimization
+            self.giface.updateMap.emit(render=True, renderVector=True)
+            #TODO optimization
         else:
         else:
-            up_map_evt = gUpdateMap(render = False, renderVector = False)
-            wx.PostEvent(self.mapWin, up_map_evt)
+            self.giface.updateMap.emit(render=False, renderVector=False)
 
 
     def PointsChanged(self, method, kwargs):
     def PointsChanged(self, method, kwargs):
-
-        up_map_evt = gUpdateMap(render = False, renderVector = False)
-        wx.PostEvent(self.mapWin, up_map_evt)
+        self.giface.updateMap.emit(render=False, renderVector=False)
 
 
     def CreateTttb(self, params):
     def CreateTttb(self, params):
 
 
@@ -377,8 +368,7 @@ class VNETManager:
                 RunCommand(layerStyleVnetColors[0],
                 RunCommand(layerStyleVnetColors[0],
                         **layerStyleVnetColors[1])
                         **layerStyleVnetColors[1])
         else:
         else:
-            up_map_evt = gUpdateMap(render = True, renderVector = True)
-            wx.PostEvent(self.mapWin, up_map_evt)
+            self.giface.updateMap.emit(render=True, renderVector=True)
 
 
 class VNETAnalyses:
 class VNETAnalyses:
     def __init__(self, data, onAnDone, goutput, tmp_maps):
     def __init__(self, data, onAnDone, goutput, tmp_maps):
@@ -418,8 +408,7 @@ class VNETAnalyses:
         cmdPts = []
         cmdPts = []
         for cat in cats:
         for cat in cats:
             if  len(catPts[cat[0]]) < 1:#TODO
             if  len(catPts[cat[0]]) < 1:#TODO
-                GMessage(parent = self.guiparent,
-                         message=_("Please choose '%s' and '%s' point.") % (cats[0][1], cats[1][1]))
+                GMessage(message=_("Please choose '%s' and '%s' point.") % (cats[0][1], cats[1][1]))
                 return False
                 return False
             cmdPts.append(catPts[cat[0]][0])
             cmdPts.append(catPts[cat[0]][0])
 
 
@@ -993,8 +982,9 @@ def AddTmpMapAnalysisMsg(mapName, tmp_maps): #TODO
 
 
 
 
 class SnappingNodes(wx.EvtHandler):
 class SnappingNodes(wx.EvtHandler):
-    def __init__(self, data, tmp_maps, mapWin):
+    def __init__(self, giface, data, tmp_maps, mapWin):
 
 
+        self.giface = giface        
         self.data = data
         self.data = data
         self.tmp_maps = tmp_maps
         self.tmp_maps = tmp_maps
         self.mapWin = mapWin
         self.mapWin = mapWin
@@ -1019,8 +1009,7 @@ class SnappingNodes(wx.EvtHandler):
             if self.tmp_maps.HasTmpVectMap("vnet_snap_points"):
             if self.tmp_maps.HasTmpVectMap("vnet_snap_points"):
                 self.snapPts.DeleteRenderLayer() 
                 self.snapPts.DeleteRenderLayer() 
                 
                 
-                up_map_evt = gUpdateMap(render = False, renderVector = False)
-                wx.PostEvent(self.mapWin, up_map_evt)
+                self.giface.updateMap.emit(render=False, renderVector=False)
 
 
             if self.snapData.has_key('cmdThread'):
             if self.snapData.has_key('cmdThread'):
                 self.snapData['cmdThread'].abort()
                 self.snapData['cmdThread'].abort()
@@ -1050,8 +1039,7 @@ class SnappingNodes(wx.EvtHandler):
                 return -1 
                 return -1 
 
 
         elif self.snapPts.VectMapState() == 0:
         elif self.snapPts.VectMapState() == 0:
-                dlg = wx.MessageDialog(parent = self.parent,
-                                       message = _("Temporary map '%s' was changed outside " +
+                dlg = wx.MessageDialog(message = _("Temporary map '%s' was changed outside " +
                                                     "vector analysis tool.\n" 
                                                     "vector analysis tool.\n" 
                                                     "Do you really want to activate " + 
                                                     "Do you really want to activate " + 
                                                     "snapping and overwrite it? ") % \
                                                     "snapping and overwrite it? ") % \
@@ -1104,8 +1092,7 @@ class SnappingNodes(wx.EvtHandler):
         else:
         else:
             self.snapPts.AddRenderLayer()
             self.snapPts.AddRenderLayer()
             
             
-            up_map_evt = gUpdateMap(render = True, renderVector = True)
-            wx.PostEvent(self.mapWin, up_map_evt)
+            self.giface.updateMap.emit(render=True, renderVector=True)
 
 
             self.snapping.emit(evt = "computing_points_done")
             self.snapping.emit(evt = "computing_points_done")
 
 
@@ -1117,7 +1104,6 @@ class SnappingNodes(wx.EvtHandler):
             self.snapPts.SaveVectMapState()
             self.snapPts.SaveVectMapState()
             self.snapPts.AddRenderLayer() 
             self.snapPts.AddRenderLayer() 
 
 
-            up_map_evt = gUpdateMap(render = True, renderVector = True)
-            wx.PostEvent(self.mapWin, up_map_evt)
+            self.giface.updateMap.emit(render=True, renderVector=True)
 
 
             self.snapping.emit(evt = "computing_points_done")
             self.snapping.emit(evt = "computing_points_done")