[GRASS-SVN] r52761 - in grass/branches/develbranch_6/gui/wxpython: . gui_core location_wizard

svn_grass at osgeo.org svn_grass at osgeo.org
Mon Aug 20 04:44:12 PDT 2012


Author: annakrat
Date: 2012-08-20 04:44:12 -0700 (Mon, 20 Aug 2012)
New Revision: 52761

Modified:
   grass/branches/develbranch_6/gui/wxpython/gis_set.py
   grass/branches/develbranch_6/gui/wxpython/gui_core/ghelp.py
   grass/branches/develbranch_6/gui/wxpython/location_wizard/base.py
   grass/branches/develbranch_6/gui/wxpython/location_wizard/wizard.py
Log:
wxGUI/locationWizard: added help button to wizard, tooltips, HelpFrame base class changed to dialog (merged from releasebranch, r52759)

Modified: grass/branches/develbranch_6/gui/wxpython/gis_set.py
===================================================================
--- grass/branches/develbranch_6/gui/wxpython/gis_set.py	2012-08-20 10:46:26 UTC (rev 52760)
+++ grass/branches/develbranch_6/gui/wxpython/gis_set.py	2012-08-20 11:44:12 UTC (rev 52761)
@@ -783,7 +783,7 @@
         # help text in lib/init/helptext.html
         file = os.path.join(self.gisbase, "docs", "html", "helptext.html")
 
-        helpFrame = HelpFrame(parent = self, id = wx.ID_ANY,
+        helpFrame = HelpFrame(parent = None, id = wx.ID_ANY,
                               title = _("GRASS Quickstart"),
                               size = (640, 480),
                               file = file)

Modified: grass/branches/develbranch_6/gui/wxpython/gui_core/ghelp.py
===================================================================
--- grass/branches/develbranch_6/gui/wxpython/gui_core/ghelp.py	2012-08-20 10:46:26 UTC (rev 52760)
+++ grass/branches/develbranch_6/gui/wxpython/gui_core/ghelp.py	2012-08-20 11:44:12 UTC (rev 52761)
@@ -726,10 +726,16 @@
         """!Close window"""
         self.Close()
 
-class HelpFrame(wx.Frame):
-    """!GRASS Quickstart help window"""
+class HelpFrame(wx.Dialog):
+    """!GRASS Quickstart help window
+
+    As a base class wx.Dialog is used, because of not working
+    close button with wx.Frame when dialog is called from wizard.
+    If parent is None, application TopLevelWindow is used (wxPython standard behaviour).
+    """
     def __init__(self, parent, id, title, size, file):
-        wx.Frame.__init__(self, parent = parent, id = id, title = title, size = size)
+        wx.Dialog.__init__(self, parent = parent, id = id, title = title,
+                           size = size, style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.MINIMIZE_BOX)
         
         sizer = wx.BoxSizer(wx.VERTICAL)
         
@@ -743,6 +749,7 @@
         self.SetSizer(sizer)
         self.Layout()
 
+
 class HelpWindow(wx.html.HtmlWindow):
     """!This panel holds the text from GRASS docs.
     

Modified: grass/branches/develbranch_6/gui/wxpython/location_wizard/base.py
===================================================================
--- grass/branches/develbranch_6/gui/wxpython/location_wizard/base.py	2012-08-20 10:46:26 UTC (rev 52760)
+++ grass/branches/develbranch_6/gui/wxpython/location_wizard/base.py	2012-08-20 11:44:12 UTC (rev 52761)
@@ -23,23 +23,32 @@
     def __init__(self):
         pass
 
-    def MakeLabel(self, text = "", style = wx.ALIGN_LEFT, parent = None):
+    def MakeLabel(self, text = "", style = wx.ALIGN_LEFT, parent = None, tooltip = None):
         """!Make aligned label"""
         if not parent:
             parent = self
-        return wx.StaticText(parent = parent, id = wx.ID_ANY, label = text,
-                             style = style)
+        label =  wx.StaticText(parent = parent, id = wx.ID_ANY, label = text,
+                              style = style)
+        if tooltip:
+            label.SetToolTipString(tooltip)
+        return label
 
-    def MakeTextCtrl(self, text = '', size = (100,-1), style = 0, parent = None):
+    def MakeTextCtrl(self, text = '', size = (100,-1), style = 0, parent = None, tooltip = None):
         """!Generic text control"""
         if not parent:
             parent = self
-        return wx.TextCtrl(parent = parent, id = wx.ID_ANY, value = text,
-                           size = size, style = style)
+        textCtrl = wx.TextCtrl(parent = parent, id = wx.ID_ANY, value = text,
+                               size = size, style = style)
+        if tooltip:
+            textCtrl.SetToolTipString(tooltip)
+        return textCtrl
 
-    def MakeButton(self, text, id = wx.ID_ANY, size = (-1,-1), parent = None):
+    def MakeButton(self, text, id = wx.ID_ANY, size = (-1,-1), parent = None, tooltip = None):
         """!Generic button"""
         if not parent:
             parent = self
-        return wx.Button(parent = parent, id = id, label = text,
-                         size = size)
+        button = wx.Button(parent = parent, id = id, label = text,
+                           size = size)
+        if tooltip:
+            button.SetToolTipString(tooltip)
+        return button

Modified: grass/branches/develbranch_6/gui/wxpython/location_wizard/wizard.py
===================================================================
--- grass/branches/develbranch_6/gui/wxpython/location_wizard/wizard.py	2012-08-20 10:46:26 UTC (rev 52760)
+++ grass/branches/develbranch_6/gui/wxpython/location_wizard/wizard.py	2012-08-20 11:44:12 UTC (rev 52761)
@@ -19,6 +19,7 @@
  - wizard::CustomPage
  - wizard::SummaryPage
  - wizard::LocationWizard
+ - wizard::WizardWithHelpButton
 
 (C) 2007-2011 by the GRASS Development Team
 
@@ -40,6 +41,7 @@
 from core                    import globalvar
 from core                    import utils
 from core.gcmd               import RunCommand, GError, GMessage, GWarning
+from gui_core.ghelp          import HelpFrame
 from location_wizard.base    import BaseClass
 from location_wizard.dialogs import RegionDef, SelectTransformDialog
 
@@ -120,7 +122,8 @@
                        wx.ALL, border = 5,
                        pos = (1, 3))
         
-        self.sizer.Add(item = self.MakeLabel("%s:" % _("Project Location")),
+        self.sizer.Add(item = self.MakeLabel("%s:" % _("Project Location"),
+                                             tooltip = _("Name of location directory in GIS Data Directory")),
                        flag = wx.ALIGN_RIGHT |
                        wx.ALIGN_CENTER_VERTICAL |
                        wx.ALL, border = 5,
@@ -131,7 +134,9 @@
                        wx.ALL, border = 5,
                        pos = (2, 2))
 
-        self.sizer.Add(item = self.MakeLabel("%s:" % _("Location Title")),
+        self.sizer.Add(item = self.MakeLabel("%s:" % _("Location Title"),
+                                             tooltip = _("Optional location title, "
+                                                         "you can leave this field blank.")),
                        flag = wx.ALIGN_RIGHT |
                        wx.ALIGN_TOP | wx.ALIGN_CENTER_VERTICAL |
                        wx.ALL, border = 5,
@@ -1711,8 +1716,10 @@
         #
         # define wizard pages
         #
-        self.wizard = wiz.Wizard(parent, id = wx.ID_ANY, title = _("Define new GRASS Location"),
-                                 bitmap = wizbmp, style = wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER)
+        self.wizard = WizardWithHelpButton(parent, id = wx.ID_ANY, title = _("Define new GRASS Location"),
+                                           bitmap = wizbmp)
+        self.wizard.Bind(wiz.EVT_WIZARD_HELP, self.OnHelp)
+
         self.startpage = DatabasePage(self.wizard, self, grassdatabase)
         self.csystemspage = CoordinateSystemPage(self.wizard, self)
         self.projpage = ProjectionsPage(self.wizard, self)
@@ -2048,3 +2055,22 @@
         proj4string = '%s +no_defs' % proj4string
         
         return proj4string
+
+    def OnHelp(self, event):
+        """'Help' button clicked"""
+        # help text in lib/init/helptext.html
+        filePath = os.path.join(os.getenv('GISBASE'), "docs", "html", "helptext.html")
+
+        helpFrame = HelpFrame(parent = None, id = wx.ID_ANY,
+                              title = _("GRASS Quickstart"),
+                              size = (640, 480),
+                              file = filePath)
+        helpFrame.Show(True)
+
+
+class WizardWithHelpButton(wiz.Wizard):
+    def __init__(self, parent, id, title, bitmap):
+        pre = wiz.PreWizard()
+        pre.SetExtraStyle(wx.wizard.WIZARD_EX_HELPBUTTON)
+        pre.Create(parent = parent, id = id, title = title, bitmap = bitmap)
+        self.PostCreate(pre)



More information about the grass-commit mailing list