浏览代码

wxGUI/vdigit: better fix for https://trac.osgeo.org/grass/ticket/2848

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@69579 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 8 年之前
父节点
当前提交
db93c0edb3
共有 3 个文件被更改,包括 13 次插入12 次删除
  1. 1 1
      gui/wxpython/core/settings.py
  2. 10 9
      gui/wxpython/vdigit/preferences.py
  3. 2 2
      gui/wxpython/vdigit/wxdisplay.py

+ 1 - 1
gui/wxpython/core/settings.py

@@ -394,7 +394,7 @@ class Settings:
                 # snapping
                 'snapping': {
                     'value': 10,
-                    'units': 'screen pixels'
+                    'units': 0
                 },
                 'snapToVertex': {
                     'enabled': True

+ 10 - 9
gui/wxpython/vdigit/preferences.py

@@ -217,11 +217,12 @@ class VDigitSettingsDialog(wx.Dialog):
         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'))
+        try:
+            self.snappingUnit.SetSelection(UserSettings.Get(group='vdigit',
+                                                            key="snapping",
+                                                            subkey='units'))
+        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(
@@ -885,7 +886,7 @@ class VDigitSettingsDialog(wx.Dialog):
             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)
@@ -909,10 +910,10 @@ class VDigitSettingsDialog(wx.Dialog):
         """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})
@@ -1003,7 +1004,7 @@ class VDigitSettingsDialog(wx.Dialog):
         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())
+                         value=self.snappingUnit.GetSelection())
         UserSettings.Set(group='vdigit', key="snapToVertex", subkey='enabled',
                          value=self.snapVertex.IsChecked())
 

+ 2 - 2
gui/wxpython/vdigit/wxdisplay.py

@@ -1099,7 +1099,7 @@ class DisplayDriver:
 
         :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
         """
@@ -1112,7 +1112,7 @@ class DisplayDriver:
         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