[GRASS-SVN] r57437 - in grass/trunk/gui/wxpython: gui_core lmgr vdigit web_services
svn_grass at osgeo.org
svn_grass at osgeo.org
Thu Aug 8 09:20:37 PDT 2013
Author: wenzeslaus
Date: 2013-08-08 09:20:37 -0700 (Thu, 08 Aug 2013)
New Revision: 57437
Modified:
grass/trunk/gui/wxpython/gui_core/dialogs.py
grass/trunk/gui/wxpython/lmgr/layertree.py
grass/trunk/gui/wxpython/vdigit/toolbars.py
grass/trunk/gui/wxpython/web_services/dialogs.py
Log:
wxGUI/giface: giface for ImportDialog and SaveWMSLayerDialog (also removing wrong param for ManageSettingsWidget, adding some info messages)
Modified: grass/trunk/gui/wxpython/gui_core/dialogs.py
===================================================================
--- grass/trunk/gui/wxpython/gui_core/dialogs.py 2013-08-08 13:45:54 UTC (rev 57436)
+++ grass/trunk/gui/wxpython/gui_core/dialogs.py 2013-08-08 16:20:37 UTC (rev 57437)
@@ -1183,10 +1183,11 @@
class ImportDialog(wx.Dialog):
"""!Dialog for bulk import of various data (base class)"""
- def __init__(self, parent, itype,
+ def __init__(self, parent, giface, itype,
id = wx.ID_ANY, title = _("Multiple import"),
style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER):
self.parent = parent # GMFrame
+ self._giface = giface # used to add layers
self.importType = itype
self.options = dict() # list of options
@@ -1346,10 +1347,12 @@
"""!Add imported/linked layers into layer tree"""
if not self.add.IsChecked() or returncode != 0:
return
-
+
+ # TODO: if importing map creates more map the folowing does not work
+ # * do nothing if map does not exist or
+ # * try to determine names using regexp or
+ # * persuade import tools to report map names
self.commandId += 1
- maptree = self.parent.GetLayerTree()
-
layer, output = self.list.GetLayers()[self.commandId]
if '@' not in output:
@@ -1358,24 +1361,26 @@
name = output
# add imported layers into layer tree
+ # an alternative would be emit signal (mapCreated) and (optionally)
+ # connect to this signal
+ llist = self._giface.GetLayerList()
if self.importType == 'gdal':
cmd = ['d.rast',
'map=%s' % name]
if UserSettings.Get(group = 'rasterLayer', key = 'opaque', subkey = 'enabled'):
cmd.append('-n')
-
- item = maptree.AddLayer(ltype = 'raster',
- lname = name, lchecked = False,
- lcmd = cmd, multiple = False)
+
+ llist.AddLayer(ltype='raster',
+ name=name, checked=False,
+ cmd=cmd)
else:
- item = maptree.AddLayer(ltype = 'vector',
- lname = name, lchecked = False,
- lcmd = ['d.vect',
- 'map=%s' % name] + GetDisplayVectSettings(),
- multiple = False)
-
- maptree.mapdisplay.MapWindow.ZoomToMap()
-
+ llist.AddLayer(ltype='vector',
+ name=name, checked=False,
+ cmd=['d.vect',
+ 'map=%s' % name] + GetDisplayVectSettings())
+
+ self._giface.GetMapWindow().ZoomToMap()
+
def OnAbort(self, event):
"""!Abort running import
@@ -1398,13 +1403,13 @@
self.ogr = ogr
if ogr:
- ImportDialog.__init__(self, parent, itype = 'ogr')
+ ImportDialog.__init__(self, parent, giface=giface, itype='ogr')
if link:
self.SetTitle(_("Link external vector data"))
else:
self.SetTitle(_("Import vector data"))
else:
- ImportDialog.__init__(self, parent, itype = 'gdal')
+ ImportDialog.__init__(self, parent, giface=giface, itype='gdal')
if link:
self.SetTitle(_("Link external raster data"))
else:
@@ -1413,11 +1418,14 @@
self.dsnInput = GdalSelect(parent = self, panel = self.panel,
ogr = ogr, link = link)
self.dsnInput.reloadDataRequired.connect(lambda data: self.list.LoadData(data))
-
+
+ mightNotWork = _("this might not work for multiple bands")
if link:
- self.add.SetLabel(_("Add linked layers into layer tree"))
+ self.add.SetLabel(_("Add linked layers into layer tree"
+ " ({mightNotWork})".format(mightNotWork=mightNotWork)))
else:
- self.add.SetLabel(_("Add imported layers into layer tree"))
+ self.add.SetLabel(_("Add imported layers into layer tree"
+ " ({mightNotWork})".format(mightNotWork=mightNotWork)))
self.add.SetValue(UserSettings.Get(group = 'cmd', key = 'addNewLayer', subkey = 'enabled'))
@@ -1606,7 +1614,7 @@
class DxfImportDialog(ImportDialog):
"""!Dialog for bulk import of DXF layers"""
def __init__(self, parent, giface):
- ImportDialog.__init__(self, parent, itype = 'dxf',
+ ImportDialog.__init__(self, parent, giface=giface, itype='dxf',
title = _("Import DXF layers"))
self._giface = giface
self.dsnInput = filebrowse.FileBrowseButton(parent = self.panel, id = wx.ID_ANY,
Modified: grass/trunk/gui/wxpython/lmgr/layertree.py
===================================================================
--- grass/trunk/gui/wxpython/lmgr/layertree.py 2013-08-08 13:45:54 UTC (rev 57436)
+++ grass/trunk/gui/wxpython/lmgr/layertree.py 2013-08-08 16:20:37 UTC (rev 57437)
@@ -157,9 +157,9 @@
# init associated map display
pos = wx.Point((self.displayIndex + 1) * 25, (self.displayIndex + 1) * 25)
- gifaceForDisplay = LayerManagerGrassInterfaceForMapDisplay(self._giface,
- self)
- self.mapdisplay = MapFrame(self, giface = gifaceForDisplay,
+ self._gifaceForDisplay = LayerManagerGrassInterfaceForMapDisplay(self._giface,
+ self)
+ self.mapdisplay = MapFrame(self, giface=self._gifaceForDisplay,
id = wx.ID_ANY, pos = pos,
size = globalvar.MAP_WINDOW_SIZE,
style = wx.DEFAULT_FRAME_STYLE,
@@ -552,7 +552,8 @@
def OnSaveWs(self, event):
"""!Show dialog for saving web service layer into GRASS vector/raster layer"""
mapLayer = self.GetLayerInfo(self.layer_selected, key = 'maplayer')
- dlg = SaveWMSLayerDialog(parent = self, layer = mapLayer, ltree = self)
+ dlg = SaveWMSLayerDialog(parent=self, layer=mapLayer,
+ giface=self._gifaceForDisplay)
dlg.CentreOnScreen()
dlg.Show()
Modified: grass/trunk/gui/wxpython/vdigit/toolbars.py
===================================================================
--- grass/trunk/gui/wxpython/vdigit/toolbars.py 2013-08-08 13:45:54 UTC (rev 57436)
+++ grass/trunk/gui/wxpython/vdigit/toolbars.py 2013-08-08 16:20:37 UTC (rev 57437)
@@ -694,9 +694,9 @@
# add layer to map layer tree
if self.layerTree:
mapName = dlg.GetName() + '@' + grass.gisenv()['MAPSET']
- self.layerTree.AddLayer(ltype = 'vector',
- lname = mapName,
- lcmd = ['d.vect', 'map=%s' % mapName])
+ self._giface.GetLayerList().AddLayer(ltype='vector',
+ name=mapName,
+ cmd=['d.vect', 'map=%s' % mapName])
vectLayers = self.UpdateListOfLayers(updateTool = True)
selection = vectLayers.index(mapName)
Modified: grass/trunk/gui/wxpython/web_services/dialogs.py
===================================================================
--- grass/trunk/gui/wxpython/web_services/dialogs.py 2013-08-08 13:45:54 UTC (rev 57436)
+++ grass/trunk/gui/wxpython/web_services/dialogs.py 2013-08-08 16:20:37 UTC (rev 57437)
@@ -82,9 +82,8 @@
settingsFile = os.path.join(GetSettingsPath(), 'wxWS')
- self.settsManager = ManageSettingsWidget(parent = self,
- id = wx.ID_ANY,
- settingsFile = settingsFile)
+ self.settsManager = ManageSettingsWidget(parent=self,
+ settingsFile=settingsFile)
self.settingsBox = wx.StaticBox(parent = self,
id = wx.ID_ANY,
@@ -523,6 +522,16 @@
if not lcmd:
return None
+ # TODO: It is not clear how to do GetOptData in giface
+ # knowing what GetOptData is doing might help
+ # (maybe Get... is not the right name)
+ # please fix giface if you know
+ # tree -> giface
+ # GetLayerTree -> GetLayerList
+ # AddLayer -> AddLayer (but tree ones returns some layer,
+ # giface ones nothing)
+ # GetLayerInfo -> Layer object can by used instead
+ # GetOptData -> unknown
ltree = self.giface.GetLayerTree()
active_ws = self.active_ws_panel.GetWebService()
@@ -760,12 +769,12 @@
@todo Implement saving data in region of map display.
"""
- def __init__(self, parent, layer, ltree):
+ def __init__(self, parent, layer, giface):
wx.Dialog.__init__(self, parent = parent, title = ("Save web service layer"), id = wx.ID_ANY)
self.layer = layer
- self.ltree = ltree
+ self._giface = giface
self.cmd = self.layer.GetCmd()
@@ -990,12 +999,13 @@
def _addLayer(self):
"""!Add layer into layer tree.
"""
- if self.ltree.FindItemByData(key = 'name', value = self.output) is None:
+ llist = self._giface.GetLayerList()
+ if len(llist.GetLayersByName(self.output)) == 0:
cmd = ['d.rast', 'map=' + self.output]
- self.ltree.AddLayer(ltype = 'raster',
- lname = self.output,
- lcmd = cmd,
- lchecked = True)
+ llist.AddLayer(ltype='raster',
+ name=self.output,
+ cmd=cmd,
+ checked=True)
def OnCmdOutput(self, event):
"""!Handle cmd output according to debug level.
More information about the grass-commit
mailing list