[GRASS-SVN] r41625 - in grass/trunk/gui/wxpython: . gui_modules xml
svn_grass at osgeo.org
svn_grass at osgeo.org
Tue Mar 30 11:12:40 EDT 2010
Author: martinl
Date: 2010-03-30 11:12:39 -0400 (Tue, 30 Mar 2010)
New Revision: 41625
Modified:
grass/trunk/gui/wxpython/gui_modules/layertree.py
grass/trunk/gui/wxpython/gui_modules/menuform.py
grass/trunk/gui/wxpython/wxgui.py
grass/trunk/gui/wxpython/xml/menudata.xml
Log:
wxGUI: track changes in workspace
Modified: grass/trunk/gui/wxpython/gui_modules/layertree.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/layertree.py 2010-03-30 13:20:03 UTC (rev 41624)
+++ grass/trunk/gui/wxpython/gui_modules/layertree.py 2010-03-30 15:12:39 UTC (rev 41625)
@@ -176,10 +176,6 @@
self.AssignImageList(il)
- # use when groups implemented
- ## self.tree.SetItemImage(self.root, fldridx, wx.TreeItemIcon_Normal)
- ## self.tree.SetItemImage(self.root, fldropenidx, wx.TreeItemIcon_Expanded)
-
self.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.OnExpandNode)
self.Bind(wx.EVT_TREE_ITEM_COLLAPSED, self.OnCollapseNode)
self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnActivateLayer)
@@ -187,11 +183,8 @@
self.Bind(CT.EVT_TREE_ITEM_CHECKED, self.OnLayerChecked)
self.Bind(wx.EVT_TREE_DELETE_ITEM, self.OnDeleteLayer)
self.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK, self.OnLayerContextMenu)
- #self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnDrag)
self.Bind(wx.EVT_TREE_END_DRAG, self.OnEndDrag)
- #self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnChangeLayerName)
self.Bind(wx.EVT_KEY_UP, self.OnKeyUp)
- # self.Bind(wx.EVT_CLOSE, self.OnCloseWindow)
self.Bind(wx.EVT_IDLE, self.OnIdle)
def GetMap(self):
@@ -916,24 +909,25 @@
def OnActivateLayer(self, event):
"""!Double click on the layer item.
- Launch property dialog, or expand/collapse group of items, etc."""
-
+ Launch property dialog, or expand/collapse group of items, etc.
+ """
+ self.lmgr.WorkspaceChanged()
layer = event.GetItem()
self.layer_selected = layer
-
+
self.PropertiesDialog (layer)
-
+
if self.GetPyData(layer)[0]['type'] == 'group':
if self.IsExpanded(layer):
self.Collapse(layer)
else:
self.Expand(layer)
-
+
def OnDeleteLayer(self, event):
"""!Remove selected layer item from the layer tree"""
-
+ self.lmgr.WorkspaceChanged()
item = event.GetItem()
-
+
try:
item.properties.Close(True)
except:
@@ -972,6 +966,8 @@
def OnLayerChecked(self, event):
"""!Enable/disable data layer"""
+ self.lmgr.WorkspaceChanged()
+
item = event.GetItem()
checked = item.IsChecked()
@@ -1137,16 +1133,14 @@
self.mapdisplay.nvizToolWin.page['settings']['id'] = 1
def OnCollapseNode(self, event):
+ """!Collapse node
"""
- Collapse node
- """
if self.GetPyData(self.layer_selected)[0]['type'] == 'group':
self.SetItemImage(self.layer_selected, self.folder)
def OnExpandNode(self, event):
+ """!Expand node
"""
- Expand node
- """
self.layer_selected = event.GetItem()
if self.GetPyData(self.layer_selected)[0]['type'] == 'group':
self.SetItemImage(self.layer_selected, self.folder_open)
Modified: grass/trunk/gui/wxpython/gui_modules/menuform.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/menuform.py 2010-03-30 13:20:03 UTC (rev 41624)
+++ grass/trunk/gui/wxpython/gui_modules/menuform.py 2010-03-30 15:12:39 UTC (rev 41625)
@@ -400,7 +400,11 @@
"""
Set param value/values.
"""
- param = self.get_param(aParam)
+ try:
+ param = self.get_param(aParam)
+ except ValueError:
+ return
+
param['value'] = aValue
def get_flag(self, aFlag):
@@ -416,7 +420,11 @@
"""
Enable / disable flag.
"""
- param = self.get_flag(aFlag)
+ try:
+ param = self.get_flag(aFlag)
+ except ValueError:
+ return
+
param['value'] = aValue
def getCmd(self, ignoreErrors = False):
Modified: grass/trunk/gui/wxpython/wxgui.py
===================================================================
--- grass/trunk/gui/wxpython/wxgui.py 2010-03-30 13:20:03 UTC (rev 41624)
+++ grass/trunk/gui/wxpython/wxgui.py 2010-03-30 15:12:39 UTC (rev 41625)
@@ -22,7 +22,6 @@
import sys
import os
import time
-import traceback
import re
import string
import getopt
@@ -98,10 +97,9 @@
UserSettings = preferences.globalSettings
class GMFrame(wx.Frame):
- """!
- GIS Manager frame with notebook widget for controlling
- GRASS GIS. Includes command console page for typing GRASS
- (and other) commands, tree widget page for managing map layers.
+ """!Layer Manager frame with notebook widget for controlling GRASS
+ GIS. Includes command console page for typing GRASS (and other)
+ commands, tree widget page for managing map layers.
"""
def __init__(self, parent, id=wx.ID_ANY, title=_("GRASS GIS Layer Manager"),
workspace=None):
@@ -124,6 +122,7 @@
self.curr_page = '' # currently selected page for layer tree notebook
self.curr_pagenum = '' # currently selected page number for layer tree notebook
self.workspaceFile = workspace # workspace file
+ self.workspaceChanged = False # track changes in workspace
self.georectifying = None # reference to GCP class or None
# list of open dialogs
self.dialogs = dict()
@@ -188,11 +187,13 @@
self.goutput.Redirect()
# fix goutput's pane size
self.goutput.SetSashPosition(int(self.GetSize()[1] * .45))
+
+ self.workspaceChanged = False
# start with layer manager on top
self.curr_page.maptree.mapdisplay.Raise()
self.Raise()
-
+
def __createNoteBook(self):
"""!Creates notebook widgets"""
@@ -244,6 +245,14 @@
return self.toolbar
+ def WorkspaceChanged(self):
+ """!Update window title"""
+ if self.workspaceFile and not self.workspaceChanged:
+ self.workspaceChanged = True
+
+ if self.workspaceFile:
+ self.SetTitle(self.baseTitle + " - " + os.path.basename(self.workspaceFile) + '*')
+
def OnGeorectify(self, event):
"""
Launch georectifier module
@@ -673,7 +682,7 @@
if maptree:
# reverse list of map layers
maptree.Map.ReverseListOfLayers()
-
+
for mdisp in mapdisplay:
mdisp.MapWindow2D.UpdateMap()
@@ -747,7 +756,6 @@
def OnWorkspaceSaveAs(self, event=None):
"""!Save workspace definition to selected file"""
-
dlg = wx.FileDialog(parent=self, message=_("Choose file to save current workspace"),
defaultDir=os.getcwd(), wildcard=_("GRASS Workspace File (*.gxw)|*.gxw"), style=wx.FD_SAVE)
@@ -1442,7 +1450,8 @@
return
maptree = self.curr_page.maptree
- if UserSettings.Get(group='manager', key='askOnQuit', subkey='enabled'):
+ if self.workspaceChanged and \
+ UserSettings.Get(group='manager', key='askOnQuit', subkey='enabled'):
if self.workspaceFile:
message = _("Do you want to save changes in the workspace?")
else:
Modified: grass/trunk/gui/wxpython/xml/menudata.xml
===================================================================
--- grass/trunk/gui/wxpython/xml/menudata.xml 2010-03-30 13:20:03 UTC (rev 41624)
+++ grass/trunk/gui/wxpython/xml/menudata.xml 2010-03-30 15:12:39 UTC (rev 41625)
@@ -654,7 +654,7 @@
<label>Exit GUI</label>
<help>Quit wxGUI session</help>
<handler>OnCloseWindow</handler>
- <shortcut>Ctrl+E</shortcut>
+ <shortcut>Ctrl+W</shortcut>
</menuitem>
<menuitem>
<label>Quit GRASS GIS</label>
More information about the grass-commit
mailing list