Browse Source

wxGUI: fix problems with imports from https://trac.osgeo.org/grass/changeset/71332 which caused GUI crash

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@71346 15284696-431f-4ddb-bdfa-cd5b030d7da7
Anna Petrášová 7 years ago
parent
commit
6bb347d63b
2 changed files with 26 additions and 10 deletions
  1. 11 4
      gui/wxpython/core/globalvar.py
  2. 15 6
      gui/wxpython/wxgui.py

+ 11 - 4
gui/wxpython/core/globalvar.py

@@ -55,10 +55,17 @@ def CheckWxPhoenix():
 def CheckWxVersion(version):
     """Check wx version"""
     ver = wx.__version__
-    # don't fail on wxPython 4.0.0aX
-    if 'a' in ver: # can be removed when 4.0.0 will be out
-        ver = ver[0:ver.find('a')]
-    if list(map(int, ver.split('.'))) < version:
+    try:
+        split_ver = ver.split('.')
+        parsed_version = list(map(int, split_ver))
+    except ValueError:
+        # wxPython 4.0.0aX
+        for i, c in enumerate(split_ver[-1]):
+            if not c.isdigit():
+                break
+        parsed_version = list(map(int, split_ver[:-1])) + [int(split_ver[-1][:i])]
+
+    if parsed_version < version:
         return False
 
     return True

+ 15 - 6
gui/wxpython/wxgui.py

@@ -77,12 +77,21 @@ class GMApp(wx.App):
                     weight=wx.BOLD))
             splash.SetTextPosition((150, 430))
         else:
-            wx.SplashScreen(
-                bitmap=introBmp,
-                splashStyle=wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT,
-                milliseconds=2000,
-                parent=None,
-                id=wx.ID_ANY)
+            if globalvar.wxPythonPhoenix:
+                import wx.adv as wxadv
+                wxadv.SplashScreen(
+                    bitmap=introBmp,
+                    splashStyle=wxadv.SPLASH_CENTRE_ON_SCREEN | wxadv.SPLASH_TIMEOUT,
+                    milliseconds=2000,
+                    parent=None,
+                    id=wx.ID_ANY)
+            else:
+                wx.SplashScreen(
+                    bitmap=introBmp,
+                    splashStyle=wx.SPLASH_CENTRE_ON_SCREEN | wx.SPLASH_TIMEOUT,
+                    milliseconds=2000,
+                    parent=None,
+                    id=wx.ID_ANY)
 
         wx.Yield()