浏览代码

wxGUI: statusbar mode for displays added to preferences (merge devbr6, https://trac.osgeo.org/grass/changeset/31639)

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@31640 15284696-431f-4ddb-bdfa-cd5b030d7da7
Martin Landa 17 年之前
父节点
当前提交
8e91e2a24c
共有 3 个文件被更改,包括 35 次插入9 次删除
  1. 8 0
      gui/wxpython/gui_modules/globalvar.py
  2. 2 8
      gui/wxpython/gui_modules/mapdisp.py
  3. 25 1
      gui/wxpython/gui_modules/preferences.py

+ 8 - 0
gui/wxpython/gui_modules/globalvar.py

@@ -83,6 +83,14 @@ DIALOG_TEXTCTRL_SIZE = (400, -1)
 MAP_WINDOW_SIZE = (680, 520)
 HIST_WINDOW_SIZE = (500, 350)
 
+MAP_DISPLAY_STATUSBAR_MODE = [_("Coordinates"),
+                              _("Extent"),
+                              _("Comp. region"),
+                              _("Show comp. extent"),
+                              _("Display mode"),
+                              _("Display geometry"),
+                              _("Map scale")]
+
 """File name extension binaries/scripts"""
 if subprocess.mswindows:
     EXT_BIN = '.exe'

+ 2 - 8
gui/wxpython/gui_modules/mapdisp.py

@@ -2318,14 +2318,8 @@ class MapFrame(wx.Frame):
         self.statusbar = self.CreateStatusBar(number=3, style=0)
         self.statusbar.SetStatusWidths([-5, -2, -1])
         self.toggleStatus = wx.Choice(self.statusbar, wx.ID_ANY,
-                                      choices = [_("Coordinates"),
-                                                 _("Extent"),
-                                                 _("Comp. region"),
-                                                 _("Show comp. extent"),
-                                                 _("Display mode"),
-                                                 _("Display geometry"),
-                                                 _("Map scale")])
-	self.toggleStatus.SetSelection(0)
+                                      choices = globalvar.MAP_DISPLAY_STATUSBAR_MODE)
+	self.toggleStatus.SetSelection(UserSettings.Get(group='display', key='statusbarMode', subkey='selection'))
         self.statusbar.Bind(wx.EVT_CHOICE, self.OnToggleStatus, self.toggleStatus)
         # auto-rendering checkbox
         self.autoRender = wx.CheckBox(parent=self.statusbar, id=wx.ID_ANY,

+ 25 - 1
gui/wxpython/gui_modules/preferences.py

@@ -35,6 +35,7 @@ from wx.lib.wordwrap import wordwrap
 import gcmd
 import grassenv
 import utils
+import globalvar
 from debug import Debug as Debug
 
 class Settings:
@@ -73,6 +74,7 @@ class Settings:
                 'driver': { 'type': 'default' },
                 'compResolution' : { 'enabled' : False },
                 'autoRendering': { 'enabled' : False },
+                'statusbarMode': { 'selection' : 0 },
                 },
             #
             # advanced
@@ -232,6 +234,7 @@ class Settings:
                                                                 'verbose',
                                                                 'quiet']
         self.internalSettings['display']['driver']['choices'] = ['default']
+        self.internalSettings['display']['statusbarMode']['choices'] = globalvar.MAP_DISPLAY_STATUSBAR_MODE
         
     def GetMapsetPath(self):
         """Store mapset search path"""
@@ -653,7 +656,27 @@ class PreferencesDialog(wx.Dialog):
 
 
         #
-        # display mode (use computation resolution?)
+        # Statusbar mode
+        #
+        row += 1
+        gridSizer.Add(item=wx.StaticText(parent=panel, id=wx.ID_ANY,
+                                         label=_("Statusbar mode:")),
+                      flag=wx.ALIGN_LEFT |
+                      wx.ALIGN_CENTER_VERTICAL,
+                      pos=(row, 0))
+        listOfModes = self.settings.Get(group='display', key='statusbarMode', subkey='choices', internal=True)
+        statusbarMode = wx.Choice(parent=panel, id=wx.ID_ANY, size=(150, -1),
+                                  choices=listOfModes,
+                                  name="GetSelection")
+        statusbarMode.SetSelection(self.settings.Get(group='display', key='statusbarMode', subkey='selection'))
+        self.winId['display:statusbarMode:selection'] = statusbarMode.GetId()
+
+        gridSizer.Add(item=statusbarMode,
+                      flag=wx.ALIGN_RIGHT,
+                      pos=(row, 1))
+
+        #
+        # Use computation resolution
         #
         row += 1
         compResolution = wx.CheckBox(parent=panel, id=wx.ID_ANY,
@@ -1078,6 +1101,7 @@ class PreferencesDialog(wx.Dialog):
                 value = win.GetStringSelection()
             else:
                 value = win.GetValue()
+
             self.settings.Set(group, key, subkey, value)
 
         #