[GRASS-SVN] r69595 - in grass/branches/releasebranch_7_0/gui/wxpython: core vdigit

svn_grass at osgeo.org svn_grass at osgeo.org
Tue Sep 27 19:56:28 PDT 2016


Author: annakrat
Date: 2016-09-27 19:56:28 -0700 (Tue, 27 Sep 2016)
New Revision: 69595

Modified:
   grass/branches/releasebranch_7_0/gui/wxpython/core/settings.py
   grass/branches/releasebranch_7_0/gui/wxpython/vdigit/preferences.py
   grass/branches/releasebranch_7_0/gui/wxpython/vdigit/wxdisplay.py
Log:
GUI/vdigit: fix snapping units, see #2848 (merge from trunk r69578, r69579, r69580)

Modified: grass/branches/releasebranch_7_0/gui/wxpython/core/settings.py
===================================================================
--- grass/branches/releasebranch_7_0/gui/wxpython/core/settings.py	2016-09-28 02:43:08 UTC (rev 69594)
+++ grass/branches/releasebranch_7_0/gui/wxpython/core/settings.py	2016-09-28 02:56:28 UTC (rev 69595)
@@ -387,13 +387,14 @@
                     'units' : 'screen pixels'
                     },
                 # snapping
-                'snapping' : {
-                    'value' : 10,
-                    'units' : 'screen pixels'
-                    },
-                'snapToVertex' : {
-                    'enabled' : True
-                    },
+                'snapping': {
+                    'value': 10,
+                    'unit': 0,  # new
+                    'units': 'screen pixels'  # old for backwards comp.
+                },
+                'snapToVertex': {
+                    'enabled': True
+                },
                 # digitize new record
                 'addRecord' : {
                     'enabled' : True

Modified: grass/branches/releasebranch_7_0/gui/wxpython/vdigit/preferences.py
===================================================================
--- grass/branches/releasebranch_7_0/gui/wxpython/vdigit/preferences.py	2016-09-28 02:43:08 UTC (rev 69594)
+++ grass/branches/releasebranch_7_0/gui/wxpython/vdigit/preferences.py	2016-09-28 02:56:28 UTC (rev 69595)
@@ -163,9 +163,14 @@
                                          min = -1, max = 1e6)
         self.snappingValue.Bind(wx.EVT_SPINCTRL, self.OnChangeSnappingValue)
         self.snappingValue.Bind(wx.EVT_TEXT, self.OnChangeSnappingValue)
-        self.snappingUnit = wx.Choice(parent = panel, id = wx.ID_ANY, size = (125, -1),
-                                      choices = [_("screen pixels"), _("map units")])
-        self.snappingUnit.SetStringSelection(UserSettings.Get(group = 'vdigit', key = "snapping", subkey = 'units'))
+        self.snappingUnit = wx.Choice(parent=panel, id=wx.ID_ANY, size=(
+            125, -1), choices=[_("screen pixels"), _("map units")])
+        try:
+            self.snappingUnit.SetSelection(UserSettings.Get(group='vdigit',
+                                                            key="snapping",
+                                                            subkey='unit'))
+        except:
+            self.snappingUnit.SetSelection(0)
         self.snappingUnit.Bind(wx.EVT_CHOICE, self.OnChangeSnappingUnits)
         flexSizer.Add(text, proportion = 0, flag = wx.ALIGN_CENTER_VERTICAL)
         flexSizer.Add(self.snappingValue, proportion = 0, flag = wx.ALIGN_CENTER | wx.FIXED_MINSIZE)
@@ -609,7 +614,7 @@
             res = (region['nsres'] + region['ewres']) / 2.
             threshold = self.digit.GetDisplay().GetThreshold(value = res)
         else:
-            if self.snappingUnit.GetStringSelection() == "map units":
+            if self.snappingUnit.GetSelection() == 1:  # map units
                 threshold = value
             else:
                 threshold = self.digit.GetDisplay().GetThreshold(value = value)
@@ -632,10 +637,10 @@
         """Snapping units change -> update static text
         """
         value = self.snappingValue.GetValue()
-        units = self.snappingUnit.GetStringSelection()
+        units = self.snappingUnit.GetSelection()
         threshold = self.digit.GetDisplay().GetThreshold(value = value, units = units)
 
-        if units == "map units":
+        if units == 1:  # map units
             self.snappingInfo.SetLabel(_("Snapping threshold is %(value).1f %(units)s") % 
                                        {'value' : value,
                                         'units' : self.mapUnits})
@@ -721,13 +726,13 @@
                          value = int(self.lineWidthValue.GetValue()))
 
         # snapping
-        UserSettings.Set(group = 'vdigit', key = "snapping", subkey = 'value',
-                         value = int(self.snappingValue.GetValue()))
-        UserSettings.Set(group = 'vdigit', key = "snapping", subkey = 'units',
-                         value = self.snappingUnit.GetStringSelection())
-        UserSettings.Set(group = 'vdigit', key = "snapToVertex", subkey = 'enabled',
-                         value = self.snapVertex.IsChecked())
-        
+        UserSettings.Set(group='vdigit', key="snapping", subkey='value',
+                         value=int(self.snappingValue.GetValue()))
+        UserSettings.Set(group='vdigit', key="snapping", subkey='unit',
+                         value=self.snappingUnit.GetSelection())
+        UserSettings.Set(group='vdigit', key="snapToVertex", subkey='enabled',
+                         value=self.snapVertex.IsChecked())
+
         # digitize new feature
         UserSettings.Set(group = 'vdigit', key = "addRecord", subkey = 'enabled',
                          value = self.addRecord.IsChecked())

Modified: grass/branches/releasebranch_7_0/gui/wxpython/vdigit/wxdisplay.py
===================================================================
--- grass/branches/releasebranch_7_0/gui/wxpython/vdigit/wxdisplay.py	2016-09-28 02:43:08 UTC (rev 69594)
+++ grass/branches/releasebranch_7_0/gui/wxpython/vdigit/wxdisplay.py	2016-09-28 02:56:28 UTC (rev 69595)
@@ -1025,7 +1025,7 @@
         
         :param type: snapping mode (node, vertex)
         :param value: threshold to be set up
-        :param units: units (map, screen)
+        :param units: units (0 for screen pixels, 1 for map units)
 
         :return: threshold value
         """
@@ -1033,12 +1033,12 @@
             value = UserSettings.Get(group = 'vdigit', key = type, subkey = 'value')
         
         if units is None:
-            units = UserSettings.Get(group = 'vdigit', key = type, subkey = 'units')
-        
+            units = UserSettings.Get(group='vdigit', key=type, subkey='unit')
+
         if value < 0:
             value = (self.region['nsres'] + self.region['ewres']) / 2.0
         
-        if units == "screen pixels":
+        if units == 0:
             # pixel -> cell
             res = max(self.region['nsres'], self.region['ewres'])
             return value * res



More information about the grass-commit mailing list