[GRASS-SVN] r52687 - in grass/trunk/gui/wxpython: gui_core lmgr

svn_grass at osgeo.org svn_grass at osgeo.org
Fri Aug 17 02:41:11 PDT 2012


Author: annakrat
Date: 2012-08-17 02:41:10 -0700 (Fri, 17 Aug 2012)
New Revision: 52687

Modified:
   grass/trunk/gui/wxpython/gui_core/dialogs.py
   grass/trunk/gui/wxpython/lmgr/layertree.py
Log:
wxGUI/lmgr: add apply button to opacity dialog

Modified: grass/trunk/gui/wxpython/gui_core/dialogs.py
===================================================================
--- grass/trunk/gui/wxpython/gui_core/dialogs.py	2012-08-17 07:01:08 UTC (rev 52686)
+++ grass/trunk/gui/wxpython/gui_core/dialogs.py	2012-08-17 09:41:10 UTC (rev 52687)
@@ -54,7 +54,8 @@
 from core.settings    import UserSettings, GetDisplayVectSettings
 from core.debug       import Debug
 
-wxApplyMapLayers, EVT_APPLY_MAP_LAYERS= NewEvent()
+wxApplyMapLayers, EVT_APPLY_MAP_LAYERS = NewEvent()
+wxApplyOpacity, EVT_APPLY_OPACITY = NewEvent()
 
 class ElementDialog(wx.Dialog):
     def __init__(self, parent, title, label, id = wx.ID_ANY,
@@ -2263,6 +2264,10 @@
 
         btnCancel = wx.Button(parent = panel, id = wx.ID_CANCEL)
         btnsizer.AddButton(btnCancel)
+
+        btnApply = wx.Button(parent = panel, id = wx.ID_APPLY)
+        btnApply.Bind(wx.EVT_BUTTON, self.OnApply)
+        btnsizer.AddButton(btnApply)
         btnsizer.Realize()
 
         sizer.Add(item = btnsizer, proportion = 0,
@@ -2281,6 +2286,10 @@
         opacity = float(self.value.GetValue()) / 100
         return opacity
 
+    def OnApply(self, event):
+        event = wxApplyOpacity(value = self.GetOpacity())
+        wx.PostEvent(self, event)
+
 def GetImageHandlers(image):
     """!Get list of supported image handlers"""
     lext = list()

Modified: grass/trunk/gui/wxpython/lmgr/layertree.py
===================================================================
--- grass/trunk/gui/wxpython/lmgr/layertree.py	2012-08-17 07:01:08 UTC (rev 52686)
+++ grass/trunk/gui/wxpython/lmgr/layertree.py	2012-08-17 09:41:10 UTC (rev 52687)
@@ -30,7 +30,7 @@
 from grass.script import core as grass
 
 from core                import globalvar
-from gui_core.dialogs    import SqlQueryFrame, SetOpacityDialog
+from gui_core.dialogs    import SqlQueryFrame, SetOpacityDialog, EVT_APPLY_OPACITY
 from gui_core.forms      import GUI
 from mapdisp.frame       import MapFrame
 from core.render         import Map
@@ -678,23 +678,38 @@
         dlg = SetOpacityDialog(self, opacity = current_opacity,
                                title = _("Set opacity of <%s>") % maplayer.GetName())
         dlg.CentreOnParent()
+        dlg.Bind(EVT_APPLY_OPACITY, self.OnApplyLayerOpacity)
 
         if dlg.ShowModal() == wx.ID_OK:
-            new_opacity = dlg.GetOpacity() # string
-            self.Map.ChangeOpacity(maplayer, new_opacity)
-            maplayer.SetOpacity(new_opacity)
-            self.SetItemText(self.layer_selected,
-                             self._getLayerName(self.layer_selected))
+            self.ChangeLayerOpacity(layer = self.layer_selected, value = dlg.GetOpacity())
+        dlg.Destroy()
+
+    def OnApplyLayerOpacity(self, event):
+        """!Handles EVT_APPLY_OPACITY event."""
+        self.ChangeLayerOpacity(layer = self.layer_selected, value = event.value)
+
+    def ChangeLayerOpacity(self, layer, value):
+        """!Change opacity value of layer
+        @param layer layer for which to change (item in layertree)
+        @param value opacity value (float between 0 and 1)
+        """
+        maplayer = self.GetPyData(layer)[0]['maplayer']
+        self.Map.ChangeOpacity(maplayer, value)
+        maplayer.SetOpacity(value)
+        self.SetItemText(layer,
+                         self._getLayerName(layer))
+        
+        # vector layer currently edited
+        if self.GetMapDisplay().GetToolbar('vdigit') and \
+                self.GetMapDisplay().GetToolbar('vdigit').GetLayer() == maplayer:
+            alpha = int(value * 255)
+            self.GetMapDisplay().GetWindow().digit.GetDisplay().UpdateSettings(alpha = alpha)
             
-            # vector layer currently edited
-            if self.mapdisplay.GetToolbar('vdigit') and \
-                    self.mapdisplay.GetToolbar('vdigit').GetLayer() == maplayer:   
-                alpha = int(new_opacity * 255)
-                self.mapdisplay.GetWindow().digit.GetDisplay().UpdateSettings(alpha = alpha)
-                
-            # redraw map if auto-rendering is enabled
-            self.rerender = True
-            self.reorder = True
+        # redraw map if auto-rendering is enabled
+        renderVector = False
+        if self.GetMapDisplay().GetToolbar('vdigit'):
+            renderVector = True
+        self.GetMapDisplay().GetWindow().UpdateMap(render = False, renderVector = renderVector)
 
     def OnNvizProperties(self, event):
         """!Nviz-related properties (raster/vector/volume)



More information about the grass-commit mailing list