浏览代码

wxGUI: don't crash when wxnviz is broken
(merge https://trac.osgeo.org/grass/changeset/43149 from trunk)


git-svn-id: https://svn.osgeo.org/grass/grass/trunk@43151 15284696-431f-4ddb-bdfa-cd5b030d7da7

Martin Landa 14 年之前
父节点
当前提交
8401a6619f
共有 3 个文件被更改,包括 16 次插入24 次删除
  1. 5 3
      gui/wxpython/gui_modules/nviz_tools.py
  2. 2 7
      gui/wxpython/gui_modules/toolbars.py
  3. 9 14
      gui/wxpython/gui_modules/wxnviz.py

+ 5 - 3
gui/wxpython/gui_modules/nviz_tools.py

@@ -36,11 +36,13 @@ import globalvar
 import gselect
 import gselect
 import gcmd
 import gcmd
 from preferences import globalSettings as UserSettings
 from preferences import globalSettings as UserSettings
-from nviz_mapdisp import wxUpdateView, wxUpdateLight, wxUpdateProperties
+try:
+    from nviz_mapdisp import wxUpdateView, wxUpdateLight, wxUpdateProperties
+    import wxnviz
+except ImportError:
+    pass
 from debug import Debug
 from debug import Debug
 
 
-import wxnviz
-
 class NvizToolWindow(FN.FlatNotebook):
 class NvizToolWindow(FN.FlatNotebook):
     """!Nviz (3D view) tools panel
     """!Nviz (3D view) tools panel
     """
     """

+ 2 - 7
gui/wxpython/gui_modules/toolbars.py

@@ -184,14 +184,9 @@ class MapToolbar(AbstractToolbar):
             choices.append(_('3D view'))
             choices.append(_('3D view'))
             self.toolId['3d'] = 1
             self.toolId['3d'] = 1
         else:
         else:
-            from nviz import errorMsg as errorMsg1
-            from wxnviz import errorMsg as errorMsg2
-            if errorMsg2:
-                errorMsg = str(errorMsg1) + ' (' + str(errorMsg2) + ')'
-            else:
-                errorMsg = str(errorMsg1)
+            from nviz import errorMsg
             log.WriteCmdLog(_('3D view mode not available'))
             log.WriteCmdLog(_('3D view mode not available'))
-            log.WriteWarning(_('Reason: %s') % errorMsg)
+            log.WriteWarning(_('Reason: %s') % str(errorMsg))
             log.WriteLog(_('Note that the 3D view mode is currently not working under MS Windows '
             log.WriteLog(_('Note that the 3D view mode is currently not working under MS Windows '
                            '(hopefully this will be fixed soon). '
                            '(hopefully this will be fixed soon). '
                            'Please keep an eye out for updated versions of GRASS.'), wrap = 60)
                            'Please keep an eye out for updated versions of GRASS.'), wrap = 60)

+ 9 - 14
gui/wxpython/gui_modules/wxnviz.py

@@ -22,14 +22,15 @@ import sys
 from threading import Thread
 from threading import Thread
 
 
 from ctypes import *
 from ctypes import *
-try:
-    from grass.lib.grass import *
-    from grass.lib.g3d   import *
-    from grass.lib.ogsf  import *
-    from grass.lib.nviz  import *
-    errorMsg = ''
-except ImportError, err:
-    errorMsg = err
+from grass.lib.grass import *
+from grass.lib.g3d   import *
+from grass.lib.ogsf  import *
+from grass.lib.nviz  import *
+
+errtype = CFUNCTYPE(UNCHECKED(c_int), String, c_int)
+errfunc = errtype(print_error)
+pertype = CFUNCTYPE(UNCHECKED(c_int), c_int)
+perfunc = pertype(print_progress)
 
 
 from debug import Debug
 from debug import Debug
 
 
@@ -56,12 +57,6 @@ def print_progress(value):
     
     
     return 0
     return 0
 
 
-errtype = CFUNCTYPE(UNCHECKED(c_int), String, c_int)
-errfunc = errtype(print_error)
-
-pertype = CFUNCTYPE(UNCHECKED(c_int), c_int)
-perfunc = pertype(print_progress)
-
 class Nviz(object):
 class Nviz(object):
     def __init__(self, glog, gprogress):
     def __init__(self, glog, gprogress):
         """!Initialize Nviz class instance
         """!Initialize Nviz class instance