[GRASS-SVN] r33399 - in grass/trunk/gui/wxpython: gui_modules vdigit

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Sep 11 02:46:24 EDT 2008


Author: martinl
Date: 2008-09-11 02:46:24 -0400 (Thu, 11 Sep 2008)
New Revision: 33399

Modified:
   grass/trunk/gui/wxpython/gui_modules/dbm.py
   grass/trunk/gui/wxpython/gui_modules/mapdisp.py
   grass/trunk/gui/wxpython/gui_modules/vdigit.py
   grass/trunk/gui/wxpython/vdigit/cats.cpp
   grass/trunk/gui/wxpython/vdigit/line.cpp
Log:
wxGUI: attribute dialog fixes
vdigit: start with category 1
(merge from devbr6, r33398)


Modified: grass/trunk/gui/wxpython/gui_modules/dbm.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/dbm.py	2008-09-11 06:36:13 UTC (rev 33398)
+++ grass/trunk/gui/wxpython/gui_modules/dbm.py	2008-09-11 06:46:24 UTC (rev 33399)
@@ -3189,7 +3189,10 @@
                     name, value = item.split(':')
                     name = name.strip()
                     # append value to the column
-                    value = self.tables[table][name]['ctype'] (value.strip())
+                    if len(value) < 1:
+                        value = None
+                    else:
+                        value = self.tables[table][name]['ctype'] (value.strip())
                     self.tables[table][name]['values'].append(value)
                 else:
                     if not data.has_key(key):

Modified: grass/trunk/gui/wxpython/gui_modules/mapdisp.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/mapdisp.py	2008-09-11 06:36:13 UTC (rev 33398)
+++ grass/trunk/gui/wxpython/gui_modules/mapdisp.py	2008-09-11 06:46:24 UTC (rev 33399)
@@ -1140,7 +1140,8 @@
                     else:
                         point = False
 
-                    if digitClass.AddPoint(map, point, east, north) < 0:
+                    fid = digitClass.AddPoint(map, point, east, north)
+                    if fid < 0:
                         return
 
                     self.UpdateMap(render=False) # redraw map
@@ -1148,9 +1149,10 @@
                     # add new record into atribute table
                     if UserSettings.Get(group='vdigit', key="addRecord", subkey='enabled')  is True:
                         # select attributes based on layer and category
-                        cats = {}
-                        cats[UserSettings.Get(group='vdigit', key="layer", subkey='value')] = \
-                                                              (UserSettings.Get(group='vdigit', key="category", subkey='value'), )
+                        cats = { fid : {
+                                UserSettings.Get(group='vdigit', key="layer", subkey='value') :
+                                    (UserSettings.Get(group='vdigit', key="category", subkey='value'), )
+                                }}
                         addRecordDlg = dbm.DisplayAttributesDialog(parent=self, map=map,
                                                                    cats=cats,
                                                                    pos=posWindow,
@@ -1763,7 +1765,8 @@
                     if len(self.polycoords) < 2: # ignore 'one-point' lines
                         return
                     
-                    if digitClass.AddLine(map, line, self.polycoords) < 0:
+                    fid = digitClass.AddLine(map, line, self.polycoords)
+                    if fid < 0:
                         return
                     
                     position = self.Cell2Pixel(self.polycoords[-1])
@@ -1776,9 +1779,11 @@
                                                          position[1] + self.dialogOffset))
 
                         # select attributes based on layer and category
-                        cats = {}
-                        cats[UserSettings.Get(group='vdigit', key="layer", subkey='value')] = \
-                                                              (UserSettings.Get(group='vdigit', key="category", subkey='value'), )
+                        cats = { fid : {
+                                UserSettings.Get(group='vdigit', key="layer", subkey='value') :
+                                    (UserSettings.Get(group='vdigit', key="category", subkey='value'), )
+                                }}
+
                         addRecordDlg = dbm.DisplayAttributesDialog(parent=self, map=map,
                                                                    cats=cats,
                                                                    pos=posWindow,

Modified: grass/trunk/gui/wxpython/gui_modules/vdigit.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/vdigit.py	2008-09-11 06:36:13 UTC (rev 33398)
+++ grass/trunk/gui/wxpython/gui_modules/vdigit.py	2008-09-11 06:46:24 UTC (rev 33399)
@@ -124,8 +124,9 @@
                         return True
             else:
                 cat = self.digit.GetCategory(UserSettings.Get(group='vdigit', key='layer', subkey='value'))
+                cat += 1
                 UserSettings.Set(group='vdigit', key='category', subkey='value',
-                                  value=cat + 1)
+                                 value=cat)
     
     def SetCategory(self):
         """Return category number to use (according Settings)"""
@@ -820,7 +821,7 @@
         else:
             layer = UserSettings.Get(group='vdigit', key="layer", subkey='value')
             cat   = self.SetCategory()
-
+            
         if point:
             type = wxvdigit.GV_POINT 
         else:
@@ -1281,9 +1282,12 @@
         if units is None:
             units = UserSettings.Get(group='vdigit', key=type, subkey='units')
 
+        reg = self.mapwindow.Map.region
+        if value < 0:
+            value = (reg['nsres'] + reg['ewres']) / 2.
+        
         if units == "screen pixels":
             # pixel -> cell
-            reg = self.mapwindow.Map.region
             if reg['nsres'] > reg['ewres']:
                 res = reg['nsres']
             else:
@@ -1740,6 +1744,7 @@
                                          initial=UserSettings.Get(group='vdigit', key="snapping", subkey='value'),
                                          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'))
@@ -2103,7 +2108,7 @@
             self.snappingInfo.SetLabel(_("Snapping disabled"))
         elif value < 0:
             self.snappingInfo.SetLabel(_("Snapping threshold is %(value).1f %(units)s "
-                                         "(based on computation resolution)") % 
+                                         "(based on comp. resolution)") % 
                                        {'value' : threshold,
                                         'units' : self.mapUnits.lower()})
         else:

Modified: grass/trunk/gui/wxpython/vdigit/cats.cpp
===================================================================
--- grass/trunk/gui/wxpython/vdigit/cats.cpp	2008-09-11 06:36:13 UTC (rev 33398)
+++ grass/trunk/gui/wxpython/vdigit/cats.cpp	2008-09-11 06:46:24 UTC (rev 33399)
@@ -75,7 +75,7 @@
     for(std::map<int, int>::const_iterator b = cats.begin(), e = cats.end();
 	b != e; ++b ) {
 	if (b->second == PORT_INT_MIN) {
-	    cats[b->first] = 0;
+	    cats[b->first] = 0; /* first category 1 */
 	    G_debug(3, "wxDigit.InitCats(): layer=%d, cat=%d", b->first, cats[b->first]);
 	}
 
@@ -89,7 +89,7 @@
 
    \param layer layer number
 
-   \return category number (1 if no category found)
+   \return category number (0 if no category found)
    \return -1 on error
 */
 int Digit::GetCategory(int layer)
@@ -99,7 +99,7 @@
 	return cats[layer];
     }
 
-    return -1;
+    return 0;
 }
 
 /**

Modified: grass/trunk/gui/wxpython/vdigit/line.cpp
===================================================================
--- grass/trunk/gui/wxpython/vdigit/line.cpp	2008-09-11 06:36:13 UTC (rev 33398)
+++ grass/trunk/gui/wxpython/vdigit/line.cpp	2008-09-11 06:46:24 UTC (rev 33399)
@@ -32,7 +32,7 @@
    \param snap   snapping mode (see vedit.h)
    \param thresh threshold value for snapping
 
-   \return 0 on success
+   \return fid on success
    \return -1 on failure
 */
 int Digit::AddLine(int type, std::vector<double> coords, int layer, int cat,
@@ -148,7 +148,7 @@
 	Vect_close(BgMap[0]);
     }
 
-    return 0;
+    return newline;
 }
 
 /**



More information about the grass-commit mailing list