فهرست منبع

wxGUI: add query coordinates to dialog

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@55003 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 12 سال پیش
والد
کامیت
68a506134b
2فایلهای تغییر یافته به همراه29 افزوده شده و 16 حذف شده
  1. 27 15
      gui/wxpython/gui_core/query.py
  2. 2 1
      gui/wxpython/mapdisp/frame.py

+ 27 - 15
gui/wxpython/gui_core/query.py

@@ -62,21 +62,9 @@ class QueryDialog(wx.Dialog):
     def _load(self):
     def _load(self):
         self.tree.DeleteAllItems()
         self.tree.DeleteAllItems()
         self.root = self.tree.AddRoot("The Root Item")
         self.root = self.tree.AddRoot("The Root Item")
-        # TODO: move elsewhere
         for part in self.data:
         for part in self.data:
-            if 'Map' in part:
-                itemText = part['Map']
-                if 'Mapset' in part:
-                    itemText += '@' + part['Mapset']
-                    del part['Mapset']
-                item = self.tree.AppendItem(self.root, text = itemText)
-                del part['Map']
-                if part:
-                    self._addItem(item, part)
-                else:
-                    self.tree.AppendItem(item, text = _("Nothing found"))
-            else:
-                self._addItem(self.root, part)
+            self._addItem(self.root, part)
+
         self.tree.UnselectAll()
         self.tree.UnselectAll()
         self.tree.ExpandAll(self.root)
         self.tree.ExpandAll(self.root)
 
 
@@ -122,6 +110,29 @@ class QueryDialog(wx.Dialog):
         event.Skip()
         event.Skip()
 
 
 
 
+def PrepareQueryResults(coordinates, result):
+    """!Prepare query results as a Query dialog input.
+
+    Adds coordinates, improves vector results tree structure.
+    """
+    data = []
+    data.append({_("east"): coordinates[0]})
+    data.append({_("north"): coordinates[1]})
+    for part in result:
+        if 'Map' in part:
+            itemText = part['Map']
+            if 'Mapset' in part:
+                itemText += '@' + part['Mapset']
+                del part['Mapset']
+            del part['Map']
+            if part:
+                data.append({itemText: part})
+            else:
+                data.append({itemText: _("Nothing found")})
+        else:
+            data.append(part)
+    return data
+
 def test():
 def test():
     app = wx.PySimpleApp()
     app = wx.PySimpleApp()
     import pprint
     import pprint
@@ -134,7 +145,8 @@ def test():
                                   coord=(633177.897487,221352.921257), distance=10)
                                   coord=(633177.897487,221352.921257), distance=10)
     
     
     testdata = testdata1 + testdata2
     testdata = testdata1 + testdata2
-    frame = QueryDialog(parent = None, data = testdata)
+    data = PrepareQueryResults(coordinates = (638509.051416,224742.348346), result = testdata)
+    frame = QueryDialog(parent = None, data = data)
     frame.ShowModal()
     frame.ShowModal()
     frame.Destroy()
     frame.Destroy()
     app.MainLoop()
     app.MainLoop()

+ 2 - 1
gui/wxpython/mapdisp/frame.py

@@ -48,7 +48,7 @@ from gui_core.dialogs   import GetImageHandlers, ImageSizeDialog, DecorationDial
 from core.debug         import Debug
 from core.debug         import Debug
 from core.settings      import UserSettings
 from core.settings      import UserSettings
 from gui_core.mapdisp   import SingleMapFrame
 from gui_core.mapdisp   import SingleMapFrame
-from gui_core.query     import QueryDialog
+from gui_core.query     import QueryDialog, PrepareQueryResults
 from mapdisp.mapwindow  import BufferedWindow
 from mapdisp.mapwindow  import BufferedWindow
 from mapdisp.overlays   import LegendController, BarscaleController
 from mapdisp.overlays   import LegendController, BarscaleController
 from modules.histogram  import HistogramFrame
 from modules.histogram  import HistogramFrame
@@ -730,6 +730,7 @@ class MapFrame(SingleMapFrame):
             self._queryHighlight(vectQuery)
             self._queryHighlight(vectQuery)
 
 
         result = rastQuery + vectQuery
         result = rastQuery + vectQuery
+        result = PrepareQueryResults(coordinates = (east, north), result = result)
         if self.dialogs['query']:
         if self.dialogs['query']:
             self.dialogs['query'].Raise()
             self.dialogs['query'].Raise()
             self.dialogs['query'].SetData(result)
             self.dialogs['query'].SetData(result)