|
@@ -11,7 +11,7 @@ List of classes:
|
|
- SavedRegion
|
|
- SavedRegion
|
|
- DecorationDialog
|
|
- DecorationDialog
|
|
- TextLayerDialog
|
|
- TextLayerDialog
|
|
- - AddMapLayersDialog
|
|
|
|
|
|
+ - MapLayersDialog
|
|
- ImportDialog
|
|
- ImportDialog
|
|
- GdalImportDialog
|
|
- GdalImportDialog
|
|
- GdalOutputDialog
|
|
- GdalOutputDialog
|
|
@@ -903,32 +903,28 @@ class TextLayerDialog(wx.Dialog):
|
|
'coords' : self.currCoords,
|
|
'coords' : self.currCoords,
|
|
'active' : self.chkbox.IsChecked() }
|
|
'active' : self.chkbox.IsChecked() }
|
|
|
|
|
|
-class AddMapLayersDialog(wx.Dialog):
|
|
|
|
- """!Add selected map layers (raster, vector) into layer tree"""
|
|
|
|
- def __init__(self, parent, title, style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER):
|
|
|
|
- wx.Dialog.__init__(self, parent = parent, id = wx.ID_ANY, title = title, style = style)
|
|
|
|
-
|
|
|
|
- self.parent = parent # GMFrame
|
|
|
|
|
|
+class MapLayersDialog(wx.Dialog):
|
|
|
|
+ def __init__(self, parent, title,
|
|
|
|
+ style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER, **kwargs):
|
|
|
|
+ """!Dialog for selecting map layers (raster, vector)"""
|
|
|
|
+ wx.Dialog.__init__(self, parent = parent, id = wx.ID_ANY, title = title,
|
|
|
|
+ style = style, **kwargs)
|
|
|
|
+
|
|
|
|
+ self.parent = parent # GMFrame or ?
|
|
|
|
|
|
- #
|
|
|
|
# dialog body
|
|
# dialog body
|
|
- #
|
|
|
|
- self.bodySizer = self.__createDialogBody()
|
|
|
|
|
|
+ self.bodySizer = self._createDialogBody()
|
|
# update list of layer to be loaded
|
|
# update list of layer to be loaded
|
|
self.map_layers = [] # list of map layers (full list type/mapset)
|
|
self.map_layers = [] # list of map layers (full list type/mapset)
|
|
self.LoadMapLayers(self.layerType.GetStringSelection()[:4],
|
|
self.LoadMapLayers(self.layerType.GetStringSelection()[:4],
|
|
self.mapset.GetStringSelection())
|
|
self.mapset.GetStringSelection())
|
|
- #
|
|
|
|
|
|
+
|
|
# buttons
|
|
# buttons
|
|
- #
|
|
|
|
btnCancel = wx.Button(parent = self, id = wx.ID_CANCEL)
|
|
btnCancel = wx.Button(parent = self, id = wx.ID_CANCEL)
|
|
- btnOk = wx.Button(parent = self, id = wx.ID_OK, label = _("&Add"))
|
|
|
|
|
|
+ btnOk = wx.Button(parent = self, id = wx.ID_OK)
|
|
btnOk.SetDefault()
|
|
btnOk.SetDefault()
|
|
- btnOk.SetToolTipString(_("Add selected map layers to current display"))
|
|
|
|
-
|
|
|
|
- #
|
|
|
|
|
|
+
|
|
# sizers & do layout
|
|
# sizers & do layout
|
|
- #
|
|
|
|
btnSizer = wx.StdDialogButtonSizer()
|
|
btnSizer = wx.StdDialogButtonSizer()
|
|
btnSizer.AddButton(btnCancel)
|
|
btnSizer.AddButton(btnCancel)
|
|
btnSizer.AddButton(btnOk)
|
|
btnSizer.AddButton(btnOk)
|
|
@@ -946,7 +942,7 @@ class AddMapLayersDialog(wx.Dialog):
|
|
# set dialog min size
|
|
# set dialog min size
|
|
self.SetMinSize(self.GetSize())
|
|
self.SetMinSize(self.GetSize())
|
|
|
|
|
|
- def __createDialogBody(self):
|
|
|
|
|
|
+ def _createDialogBody(self):
|
|
bodySizer = wx.GridBagSizer(vgap = 3, hgap = 3)
|
|
bodySizer = wx.GridBagSizer(vgap = 3, hgap = 3)
|
|
bodySizer.AddGrowableCol(1)
|
|
bodySizer.AddGrowableCol(1)
|
|
bodySizer.AddGrowableRow(3)
|
|
bodySizer.AddGrowableRow(3)
|
|
@@ -955,13 +951,13 @@ class AddMapLayersDialog(wx.Dialog):
|
|
bodySizer.Add(item = wx.StaticText(parent = self, label = _("Map layer type:")),
|
|
bodySizer.Add(item = wx.StaticText(parent = self, label = _("Map layer type:")),
|
|
flag = wx.ALIGN_CENTER_VERTICAL,
|
|
flag = wx.ALIGN_CENTER_VERTICAL,
|
|
pos = (0,0))
|
|
pos = (0,0))
|
|
-
|
|
|
|
|
|
+
|
|
self.layerType = wx.Choice(parent = self, id = wx.ID_ANY,
|
|
self.layerType = wx.Choice(parent = self, id = wx.ID_ANY,
|
|
choices = ['raster', 'vector'], size = (100,-1))
|
|
choices = ['raster', 'vector'], size = (100,-1))
|
|
self.layerType.SetSelection(0)
|
|
self.layerType.SetSelection(0)
|
|
bodySizer.Add(item = self.layerType,
|
|
bodySizer.Add(item = self.layerType,
|
|
pos = (0,1))
|
|
pos = (0,1))
|
|
-
|
|
|
|
|
|
+
|
|
# select toggle
|
|
# select toggle
|
|
self.toggle = wx.CheckBox(parent = self, id = wx.ID_ANY,
|
|
self.toggle = wx.CheckBox(parent = self, id = wx.ID_ANY,
|
|
label = _("Select toggle"))
|
|
label = _("Select toggle"))
|
|
@@ -974,24 +970,24 @@ class AddMapLayersDialog(wx.Dialog):
|
|
bodySizer.Add(item = wx.StaticText(parent = self, label = _("Mapset:")),
|
|
bodySizer.Add(item = wx.StaticText(parent = self, label = _("Mapset:")),
|
|
flag = wx.ALIGN_CENTER_VERTICAL,
|
|
flag = wx.ALIGN_CENTER_VERTICAL,
|
|
pos = (1,0))
|
|
pos = (1,0))
|
|
-
|
|
|
|
|
|
+
|
|
self.mapset = gselect.MapsetSelect(parent = self)
|
|
self.mapset = gselect.MapsetSelect(parent = self)
|
|
self.mapset.SetStringSelection(grass.gisenv()['MAPSET'])
|
|
self.mapset.SetStringSelection(grass.gisenv()['MAPSET'])
|
|
bodySizer.Add(item = self.mapset,
|
|
bodySizer.Add(item = self.mapset,
|
|
pos = (1,1), span = (1, 2))
|
|
pos = (1,1), span = (1, 2))
|
|
-
|
|
|
|
|
|
+
|
|
# map name filter
|
|
# map name filter
|
|
bodySizer.Add(item = wx.StaticText(parent = self, label = _("Filter:")),
|
|
bodySizer.Add(item = wx.StaticText(parent = self, label = _("Filter:")),
|
|
flag = wx.ALIGN_CENTER_VERTICAL,
|
|
flag = wx.ALIGN_CENTER_VERTICAL,
|
|
pos = (2,0))
|
|
pos = (2,0))
|
|
-
|
|
|
|
|
|
+
|
|
self.filter = wx.TextCtrl(parent = self, id = wx.ID_ANY,
|
|
self.filter = wx.TextCtrl(parent = self, id = wx.ID_ANY,
|
|
value = "",
|
|
value = "",
|
|
size = (250,-1))
|
|
size = (250,-1))
|
|
bodySizer.Add(item = self.filter,
|
|
bodySizer.Add(item = self.filter,
|
|
flag = wx.EXPAND,
|
|
flag = wx.EXPAND,
|
|
pos = (2,1), span = (1, 2))
|
|
pos = (2,1), span = (1, 2))
|
|
-
|
|
|
|
|
|
+
|
|
# layer list
|
|
# layer list
|
|
bodySizer.Add(item = wx.StaticText(parent = self, label = _("List of maps:")),
|
|
bodySizer.Add(item = wx.StaticText(parent = self, label = _("List of maps:")),
|
|
flag = wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_TOP,
|
|
flag = wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_TOP,
|
|
@@ -1002,7 +998,7 @@ class AddMapLayersDialog(wx.Dialog):
|
|
bodySizer.Add(item = self.layers,
|
|
bodySizer.Add(item = self.layers,
|
|
flag = wx.EXPAND,
|
|
flag = wx.EXPAND,
|
|
pos = (3,1), span = (1, 2))
|
|
pos = (3,1), span = (1, 2))
|
|
-
|
|
|
|
|
|
+
|
|
# bindings
|
|
# bindings
|
|
self.layerType.Bind(wx.EVT_CHOICE, self.OnChangeParams)
|
|
self.layerType.Bind(wx.EVT_CHOICE, self.OnChangeParams)
|
|
self.mapset.Bind(wx.EVT_COMBOBOX, self.OnChangeParams)
|
|
self.mapset.Bind(wx.EVT_COMBOBOX, self.OnChangeParams)
|
|
@@ -1023,15 +1019,15 @@ class AddMapLayersDialog(wx.Dialog):
|
|
# check all items by default
|
|
# check all items by default
|
|
for item in range(self.layers.GetCount()):
|
|
for item in range(self.layers.GetCount()):
|
|
self.layers.Check(item)
|
|
self.layers.Check(item)
|
|
-
|
|
|
|
|
|
+
|
|
def OnChangeParams(self, event):
|
|
def OnChangeParams(self, event):
|
|
"""!Filter parameters changed by user"""
|
|
"""!Filter parameters changed by user"""
|
|
# update list of layer to be loaded
|
|
# update list of layer to be loaded
|
|
self.LoadMapLayers(self.layerType.GetStringSelection()[:4],
|
|
self.LoadMapLayers(self.layerType.GetStringSelection()[:4],
|
|
self.mapset.GetStringSelection())
|
|
self.mapset.GetStringSelection())
|
|
-
|
|
|
|
|
|
+
|
|
event.Skip()
|
|
event.Skip()
|
|
-
|
|
|
|
|
|
+
|
|
def OnMenu(self, event):
|
|
def OnMenu(self, event):
|
|
"""!Table description area, context menu"""
|
|
"""!Table description area, context menu"""
|
|
if not hasattr(self, "popupID1"):
|
|
if not hasattr(self, "popupID1"):
|
|
@@ -1042,21 +1038,21 @@ class AddMapLayersDialog(wx.Dialog):
|
|
self.Bind(wx.EVT_MENU, self.OnSelectAll, id = self.popupDataID1)
|
|
self.Bind(wx.EVT_MENU, self.OnSelectAll, id = self.popupDataID1)
|
|
self.Bind(wx.EVT_MENU, self.OnSelectInvert, id = self.popupDataID2)
|
|
self.Bind(wx.EVT_MENU, self.OnSelectInvert, id = self.popupDataID2)
|
|
self.Bind(wx.EVT_MENU, self.OnDeselectAll, id = self.popupDataID3)
|
|
self.Bind(wx.EVT_MENU, self.OnDeselectAll, id = self.popupDataID3)
|
|
-
|
|
|
|
|
|
+
|
|
# generate popup-menu
|
|
# generate popup-menu
|
|
menu = wx.Menu()
|
|
menu = wx.Menu()
|
|
menu.Append(self.popupDataID1, _("Select all"))
|
|
menu.Append(self.popupDataID1, _("Select all"))
|
|
menu.Append(self.popupDataID2, _("Invert selection"))
|
|
menu.Append(self.popupDataID2, _("Invert selection"))
|
|
menu.Append(self.popupDataID3, _("Deselect all"))
|
|
menu.Append(self.popupDataID3, _("Deselect all"))
|
|
-
|
|
|
|
|
|
+
|
|
self.PopupMenu(menu)
|
|
self.PopupMenu(menu)
|
|
menu.Destroy()
|
|
menu.Destroy()
|
|
-
|
|
|
|
|
|
+
|
|
def OnSelectAll(self, event):
|
|
def OnSelectAll(self, event):
|
|
"""!Select all map layer from list"""
|
|
"""!Select all map layer from list"""
|
|
for item in range(self.layers.GetCount()):
|
|
for item in range(self.layers.GetCount()):
|
|
self.layers.Check(item, True)
|
|
self.layers.Check(item, True)
|
|
-
|
|
|
|
|
|
+
|
|
def OnSelectInvert(self, event):
|
|
def OnSelectInvert(self, event):
|
|
"""!Invert current selection"""
|
|
"""!Invert current selection"""
|
|
for item in range(self.layers.GetCount()):
|
|
for item in range(self.layers.GetCount()):
|
|
@@ -1069,13 +1065,13 @@ class AddMapLayersDialog(wx.Dialog):
|
|
"""!Select all map layer from list"""
|
|
"""!Select all map layer from list"""
|
|
for item in range(self.layers.GetCount()):
|
|
for item in range(self.layers.GetCount()):
|
|
self.layers.Check(item, False)
|
|
self.layers.Check(item, False)
|
|
-
|
|
|
|
|
|
+
|
|
def OnFilter(self, event):
|
|
def OnFilter(self, event):
|
|
"""!Apply filter for map names"""
|
|
"""!Apply filter for map names"""
|
|
if len(event.GetString()) == 0:
|
|
if len(event.GetString()) == 0:
|
|
self.layers.Set(self.map_layers)
|
|
self.layers.Set(self.map_layers)
|
|
return
|
|
return
|
|
-
|
|
|
|
|
|
+
|
|
list = []
|
|
list = []
|
|
for layer in self.map_layers:
|
|
for layer in self.map_layers:
|
|
try:
|
|
try:
|
|
@@ -1083,18 +1079,18 @@ class AddMapLayersDialog(wx.Dialog):
|
|
list.append(layer)
|
|
list.append(layer)
|
|
except:
|
|
except:
|
|
pass
|
|
pass
|
|
-
|
|
|
|
|
|
+
|
|
self.layers.Set(list)
|
|
self.layers.Set(list)
|
|
self.OnSelectAll(None)
|
|
self.OnSelectAll(None)
|
|
|
|
|
|
event.Skip()
|
|
event.Skip()
|
|
-
|
|
|
|
|
|
+
|
|
def OnToggle(self, event):
|
|
def OnToggle(self, event):
|
|
"""!Select toggle (check or uncheck all layers)"""
|
|
"""!Select toggle (check or uncheck all layers)"""
|
|
check = event.Checked()
|
|
check = event.Checked()
|
|
for item in range(self.layers.GetCount()):
|
|
for item in range(self.layers.GetCount()):
|
|
self.layers.Check(item, check)
|
|
self.layers.Check(item, check)
|
|
-
|
|
|
|
|
|
+
|
|
event.Skip()
|
|
event.Skip()
|
|
|
|
|
|
def GetMapLayers(self):
|
|
def GetMapLayers(self):
|
|
@@ -1103,14 +1099,14 @@ class AddMapLayersDialog(wx.Dialog):
|
|
for indx in self.layers.GetSelections():
|
|
for indx in self.layers.GetSelections():
|
|
# layers.append(self.layers.GetStringSelec(indx))
|
|
# layers.append(self.layers.GetStringSelec(indx))
|
|
pass
|
|
pass
|
|
-
|
|
|
|
|
|
+
|
|
# return fully qualified map names
|
|
# return fully qualified map names
|
|
mapset = self.mapset.GetStringSelection()
|
|
mapset = self.mapset.GetStringSelection()
|
|
for item in range(self.layers.GetCount()):
|
|
for item in range(self.layers.GetCount()):
|
|
if not self.layers.IsChecked(item):
|
|
if not self.layers.IsChecked(item):
|
|
continue
|
|
continue
|
|
layerNames.append(self.layers.GetString(item) + '@' + mapset)
|
|
layerNames.append(self.layers.GetString(item) + '@' + mapset)
|
|
-
|
|
|
|
|
|
+
|
|
return layerNames
|
|
return layerNames
|
|
|
|
|
|
def GetLayerType(self):
|
|
def GetLayerType(self):
|