From 63a48bf69d57cbd1285a3bcda863b603e1c9c3d9 Mon Sep 17 00:00:00 2001 From: Martin Landa Date: Fri, 14 Jan 2011 20:41:52 +0000 Subject: [PATCH] wxGUI: layer tree popup menu - export data git-svn-id: https://svn.osgeo.org/grass/grass/trunk@45034 15284696-431f-4ddb-bdfa-cd5b030d7da7 --- gui/wxpython/gui_modules/layertree.py | 43 ++++++++++++++++++++------- gui/wxpython/wxgui.py | 4 +-- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/gui/wxpython/gui_modules/layertree.py b/gui/wxpython/gui_modules/layertree.py index bd92608f9a4..80498f311d5 100644 --- a/gui/wxpython/gui_modules/layertree.py +++ b/gui/wxpython/gui_modules/layertree.py @@ -250,7 +250,8 @@ def OnLayerContextMenu (self, event): return ltype = self.GetPyData(self.layer_selected)[0]['type'] - + mapLayer = self.GetPyData(self.layer_selected)[0]['maplayer'] + Debug.msg (4, "LayerTree.OnContextMenu: layertype=%s" % \ ltype) @@ -271,15 +272,16 @@ def OnLayerContextMenu (self, event): self.popupID14 = wx.NewId() self.popupID15 = wx.NewId() self.popupID16 = wx.NewId() - + self.popupID17 = wx.NewId() + self.popupMenu = wx.Menu() - + numSelected = len(self.GetSelections()) # general item self.popupMenu.Append(self.popupID1, text = _("Remove")) self.Bind(wx.EVT_MENU, self.lmgr.OnDeleteLayer, id = self.popupID1) - + if ltype != "command": # rename self.popupMenu.Append(self.popupID2, text = _("Rename")) self.Bind(wx.EVT_MENU, self.OnRenameLayer, id = self.popupID2) @@ -304,21 +306,28 @@ def OnLayerContextMenu (self, event): self.Bind(wx.EVT_MENU, self.mapdisplay.OnZoomToMap, id = self.popupID9) self.popupMenu.Append(self.popupID10, text = _("Set computational region from selected map(s)")) self.Bind(wx.EVT_MENU, self.OnSetCompRegFromMap, id = self.popupID10) + if numSelected > 1: self.popupMenu.Enable(self.popupID8, False) self.popupMenu.Enable(self.popupID3, False) - + # specific items try: mltype = self.GetPyData(self.layer_selected)[0]['type'] except: mltype = None - + # vector layers (specific items) if mltype and mltype == "vector": + self.popupMenu.AppendSeparator() + self.popupMenu.Append(self.popupID17, text = _("Export")) + self.Bind(wx.EVT_MENU, lambda x: self.lmgr.OnMenuCmd(cmd = ['v.out.ogr', + 'input=%s' % mapLayer.GetName()]), + id = self.popupID17) + self.popupMenu.AppendSeparator() self.popupMenu.Append(self.popupID4, text = _("Show attribute data")) - self.Bind (wx.EVT_MENU, self.lmgr.OnShowAttributeTable, id = self.popupID4) + self.Bind(wx.EVT_MENU, self.lmgr.OnShowAttributeTable, id = self.popupID4) self.popupMenu.Append(self.popupID5, text = _("Start editing")) self.popupMenu.Append(self.popupID6, text = _("Stop editing")) @@ -372,11 +381,13 @@ def OnLayerContextMenu (self, event): self.popupMenu.Append(self.popupID7, _("Metadata")) self.Bind (wx.EVT_MENU, self.OnMetadata, id = self.popupID7) if numSelected > 1: - self.popupMenu.Enable(self.popupID4, False) - self.popupMenu.Enable(self.popupID5, False) - self.popupMenu.Enable(self.popupID6, False) - self.popupMenu.Enable(self.popupID7, False) + self.popupMenu.Enable(self.popupID4, False) + self.popupMenu.Enable(self.popupID5, False) + self.popupMenu.Enable(self.popupID6, False) + self.popupMenu.Enable(self.popupID7, False) self.popupMenu.Enable(self.popupID14, False) + self.popupMenu.Enable(self.popupID16, False) + self.popupMenu.Enable(self.popupID17, False) # raster layers (specific items) elif mltype and mltype == "raster": @@ -384,6 +395,13 @@ def OnLayerContextMenu (self, event): self.Bind(wx.EVT_MENU, self.mapdisplay.OnZoomToRaster, id = self.popupID12) self.popupMenu.Append(self.popupID13, text = _("Set computational region from selected map(s) (ignore NULLs)")) self.Bind(wx.EVT_MENU, self.OnSetCompRegFromRaster, id = self.popupID13) + + self.popupMenu.AppendSeparator() + self.popupMenu.Append(self.popupID17, text = _("Export")) + self.Bind(wx.EVT_MENU, lambda x: self.lmgr.OnMenuCmd(cmd = ['r.out.gdal', + 'input=%s' % mapLayer.GetName()]), + id = self.popupID17) + self.popupMenu.AppendSeparator() self.popupMenu.Append(self.popupID15, _("Set color table")) self.Bind (wx.EVT_MENU, self.OnColorTable, id = self.popupID15) @@ -402,6 +420,9 @@ def OnLayerContextMenu (self, event): self.popupMenu.Enable(self.popupID5, False) self.popupMenu.Enable(self.popupID6, False) self.popupMenu.Enable(self.popupID11, False) + self.popupMenu.Enable(self.popupID17, False) + + # self.PopupMenu(self.popupMenu, pos) self.PopupMenu(self.popupMenu) diff --git a/gui/wxpython/wxgui.py b/gui/wxpython/wxgui.py index 75dd22ff878..c3ec5e8f596 100644 --- a/gui/wxpython/wxgui.py +++ b/gui/wxpython/wxgui.py @@ -418,13 +418,13 @@ def GetMenuCmd(self, event): return cmdlist - def RunMenuCmd(self, event, cmd = ''): + def RunMenuCmd(self, event = None, cmd = []): """!Run command selected from menu""" if event: cmd = self.GetMenuCmd(event) self.goutput.RunCmd(cmd, switchPage = False) - def OnMenuCmd(self, event, cmd = ''): + def OnMenuCmd(self, event = None, cmd = []): """!Parse command selected from menu""" if event: cmd = self.GetMenuCmd(event)