[GRASS-SVN] r63638 - in grass/branches/releasebranch_7_0: . gui/wxpython/lmgr

svn_grass at osgeo.org svn_grass at osgeo.org
Fri Dec 19 21:14:25 PST 2014


Author: wenzeslaus
Date: 2014-12-19 21:14:25 -0800 (Fri, 19 Dec 2014)
New Revision: 63638

Modified:
   grass/branches/releasebranch_7_0/
   grass/branches/releasebranch_7_0/gui/wxpython/lmgr/frame.py
Log:
wxGUI/lmgr: expand tilde for cd and hanle errors (backport of r62190, #2152)


Property changes on: grass/branches/releasebranch_7_0
___________________________________________________________________
Modified: svn:mergeinfo
   - /grass/trunk:60817,61096,61141,61994,62105,62179-62180,62182,62403,62422,62424,62437,62466,62469,62487,62491,62494,62501,62506,62508-62509,62515,62518-62519,62521,62526,62533,62539,62541,62555,62562,62566,62570,62573,62575,62585,62588,62597,62603,62606,62608-62609,62614,62618,62628,62632,62638,62642,62648-62649,62652,62654-62657,62666,62691,62705,62709,62723,62730,62739,62741,62743,62746,62750-62752,62757,62762,62785,62798,62800-62801,62803,62805,62812,62822,62824,62828,62831,62838,62845,62847,62850,62856,62879,62881,62886,62904,62907-62908,62910,62912,62914,62916,62918,62920,62925,62932-62933,62935,62940,62942,62944-62946,62949,62955-62956,62958,62960,62962,62964,62966-62968,62970,62973,62975,62977,62981,62983,62985,62987,62989,62991,62993,62995,62997,62999-63000,63003,63005,63007,63009,63011,63013,63015,63017,63020,63022,63024,63026,63028-63031,63033,63035,63037,63040,63043-63044,63047,63049,63051,63053,63055,63057,63060,63062-63064,63066,63068,63070-63071,63074,63076,
 63079,63081,63083,63085,63087,63089,63091,63093,63095,63098,63100,63102,63105,63107,63109,63111,63113-63114,63116,63119,63121,63123,63125,63130,63132-63133,63135,63137,63140,63143,63145,63147,63149,63151,63153-63154,63157,63160,63165,63170,63173,63175,63187,63192-63193,63196,63199-63200,63202,63209,63216,63220-63221,63224,63227,63240,63246,63250,63255,63259,63261,63276,63279,63281,63283,63287,63290,63292,63297,63302,63304-63307,63315,63319,63327,63330,63332,63339,63342,63345,63362,63367,63379,63389,63391,63393,63402,63408-63409,63416-63417,63425,63427,63429,63431,63433,63448,63451,63453,63457,63459,63464-63470,63473,63482,63497,63505,63508,63510,63515,63521-63524,63526,63536-63537,63551-63552,63554,63556,63558-63559,63562,63570,63576,63582,63589-63593,63602,63616,63624,63626,63628,63630,63634
   + /grass/trunk:60817,61096,61141,61994,62105,62179-62180,62182,62190,62403,62422,62424,62437,62466,62469,62487,62491,62494,62501,62506,62508-62509,62515,62518-62519,62521,62526,62533,62539,62541,62555,62562,62566,62570,62573,62575,62585,62588,62597,62603,62606,62608-62609,62614,62618,62628,62632,62638,62642,62648-62649,62652,62654-62657,62666,62691,62705,62709,62723,62730,62739,62741,62743,62746,62750-62752,62757,62762,62785,62798,62800-62801,62803,62805,62812,62822,62824,62828,62831,62838,62845,62847,62850,62856,62879,62881,62886,62904,62907-62908,62910,62912,62914,62916,62918,62920,62925,62932-62933,62935,62940,62942,62944-62946,62949,62955-62956,62958,62960,62962,62964,62966-62968,62970,62973,62975,62977,62981,62983,62985,62987,62989,62991,62993,62995,62997,62999-63000,63003,63005,63007,63009,63011,63013,63015,63017,63020,63022,63024,63026,63028-63031,63033,63035,63037,63040,63043-63044,63047,63049,63051,63053,63055,63057,63060,63062-63064,63066,63068,63070-63071,63074,
 63076,63079,63081,63083,63085,63087,63089,63091,63093,63095,63098,63100,63102,63105,63107,63109,63111,63113-63114,63116,63119,63121,63123,63125,63130,63132-63133,63135,63137,63140,63143,63145,63147,63149,63151,63153-63154,63157,63160,63165,63170,63173,63175,63187,63192-63193,63196,63199-63200,63202,63209,63216,63220-63221,63224,63227,63240,63246,63250,63255,63259,63261,63276,63279,63281,63283,63287,63290,63292,63297,63302,63304-63307,63315,63319,63327,63330,63332,63339,63342,63345,63362,63367,63379,63389,63391,63393,63402,63408-63409,63416-63417,63425,63427,63429,63431,63433,63448,63451,63453,63457,63459,63464-63470,63473,63482,63497,63505,63508,63510,63515,63521-63524,63526,63536-63537,63551-63552,63554,63556,63558-63559,63562,63570,63576,63582,63589-63593,63602,63616,63624,63626,63628,63630,63634

Modified: grass/branches/releasebranch_7_0/gui/wxpython/lmgr/frame.py
===================================================================
--- grass/branches/releasebranch_7_0/gui/wxpython/lmgr/frame.py	2014-12-20 05:05:23 UTC (rev 63637)
+++ grass/branches/releasebranch_7_0/gui/wxpython/lmgr/frame.py	2014-12-20 05:14:25 UTC (rev 63638)
@@ -205,6 +205,7 @@
             except:
                 pass
         else:
+            # does center (of screen) make sense for lmgr?
             self.Centre()
         
         self.Layout()
@@ -966,8 +967,12 @@
         :param cmd: command as a list (must start with 'cd')
         """
         # local functions
-        def write_beginning(directory):
-            self._giface.WriteCmdLog('cd "' + directory + '"')
+        def write_beginning(parameter=None, command=None):
+            if parameter:
+                self._giface.WriteCmdLog('cd "' + parameter + '"')
+            else:
+                # naive concat but will be enough most of the time
+                self._giface.WriteCmdLog(' '.join(command))
 
         def write_changed():
             self._giface.WriteLog(_("Working directory changed to:\n\"%s\"")
@@ -976,21 +981,42 @@
         def write_end():
             self._giface.WriteCmdLog(' ')
 
+        def write_help():
+            self._giface.WriteLog(_("Changes current working directory"
+                                    " for this GUI."))
+            self._giface.WriteLog(_("Usage: cd [directory]"))
+            self._giface.WriteLog(_("Without parameters it opens a dialog."))
+            # TODO: the following is longer then 80 chars
+            # but this should be solved by the function not caller
+            # also because of translations
+            self._giface.WriteLog(_("If ~ (tilde) is present as the first"
+                " directory on the path, it is replaced"
+                " by user's home directory."))
+
         # check correctness of cmd
-        if cmd and (cmd[0] != 'cd' or len(cmd) > 2):
-            raise ValueError("OnChangeCWD cmd parameter must be list with"
+        if cmd and cmd[0] != 'cd':
+            # this is programmer's error
+            # can be relaxed in future
+            # but keep it strict unless needed otherwise
+            raise ValueError("OnChangeCWD cmd parameter must be list of"
                              " lenght 1 or 2 and 'cd' as a first item")
+        if cmd and len(cmd) > 2:
+            # this might be a user error
+            write_beginning(command=cmd)
+            self._giface.WriteError(_("More than one parameter provided."))
+            write_help()
+            write_end()
+            return
         # use chdir or dialog
         if cmd and len(cmd) == 2:
-            write_beginning(cmd[1])
-            if cmd[1] in ['-h', '--h', '--help']:
-                self._giface.WriteLog(_("Changes current working directory"
-                                        " for this GUI."))
-                self._giface.WriteLog(_("Usage: cd [directory]"))
+            write_beginning(parameter=cmd[1])
+            if cmd[1] in ['-h', '--h', '--help', 'help']:
+                write_help()
                 write_end()
                 return
             try:
-                os.chdir(cmd[1])
+                path = os.path.expanduser(cmd[1])
+                os.chdir(path)
                 write_changed()
             except OSError as error:
                 self._giface.WriteError(str(error))
@@ -1003,7 +1029,7 @@
 
             if dlg.ShowModal() == wx.ID_OK:
                 self.cwdPath = dlg.GetPath()  # is saved in the workspace
-                write_beginning(self.cwdPath)
+                write_beginning(parameter=self.cwdPath)
                 write_changed()
                 write_end()
 



More information about the grass-commit mailing list