Commit 78e76ccd78cc642e5253e090604f35dc2383f362

Authored by ruppert
1 parent 8a638525

FIX: splashscreen was empty on linux

Showing 1 changed file with 29 additions and 20 deletions   Show diff stats
invesalius/invesalius.py
@@ -39,13 +39,14 @@ from wx.lib.pubsub import setuparg1# as psv1 @@ -39,13 +39,14 @@ from wx.lib.pubsub import setuparg1# as psv1
39 #from wx.lib.pubsub import Publisher 39 #from wx.lib.pubsub import Publisher
40 #import wx.lib.pubsub as ps 40 #import wx.lib.pubsub as ps
41 from wx.lib.pubsub import pub as Publisher 41 from wx.lib.pubsub import pub as Publisher
42 -import wx.lib.agw.advancedsplash as agw  
43 42
44 -if sys.platform == 'linux2':  
45 - _SplashScreen = agw.AdvancedSplash  
46 -else:  
47 - if sys.platform != 'darwin':  
48 - _SplashScreen = wx.SplashScreen 43 +#import wx.lib.agw.advancedsplash as agw
  44 +#if sys.platform == 'linux2':
  45 +# _SplashScreen = agw.AdvancedSplash
  46 +#else:
  47 +# if sys.platform != 'darwin':
  48 +# _SplashScreen = wx.SplashScreen
  49 +
49 50
50 import gui.language_dialog as lang_dlg 51 import gui.language_dialog as lang_dlg
51 import i18n 52 import i18n
@@ -63,10 +64,9 @@ class InVesalius(wx.App): @@ -63,10 +64,9 @@ class InVesalius(wx.App):
63 Initialize splash screen and main frame. 64 Initialize splash screen and main frame.
64 """ 65 """
65 self.SetAppName("InVesalius 3") 66 self.SetAppName("InVesalius 3")
66 - splash = SplashScreen()  
67 - self.control = splash.control  
68 - self.frame = splash.main  
69 - splash.Show() 67 + self.splash = SplashScreen()
  68 + self.splash.Show()
  69 + wx.CallLater(1000,self.Startup2)
70 return True 70 return True
71 71
72 def MacOpenFile(self, filename): 72 def MacOpenFile(self, filename):
@@ -76,6 +76,10 @@ class InVesalius(wx.App): @@ -76,6 +76,10 @@ class InVesalius(wx.App):
76 path = os.path.abspath(filename) 76 path = os.path.abspath(filename)
77 Publisher.sendMessage('Open project', path) 77 Publisher.sendMessage('Open project', path)
78 78
  79 + def Startup2(self):
  80 + self.control = self.splash.control
  81 + self.frame = self.splash.main
  82 +
79 # ------------------------------------------------------------------ 83 # ------------------------------------------------------------------
80 84
81 class SplashScreen(wx.SplashScreen): 85 class SplashScreen(wx.SplashScreen):
@@ -128,8 +132,6 @@ class SplashScreen(wx.SplashScreen): @@ -128,8 +132,6 @@ class SplashScreen(wx.SplashScreen):
128 shutil.rmtree(invdir) 132 shutil.rmtree(invdir)
129 sys.exit() 133 sys.exit()
130 134
131 -  
132 -  
133 # Session file should be created... So we set the recent 135 # Session file should be created... So we set the recent
134 # choosen language 136 # choosen language
135 if (create_session): 137 if (create_session):
@@ -139,6 +141,7 @@ class SplashScreen(wx.SplashScreen): @@ -139,6 +141,7 @@ class SplashScreen(wx.SplashScreen):
139 141
140 session.SaveConfigFileBackup() 142 session.SaveConfigFileBackup()
141 143
  144 +
142 # Only after language was defined, splash screen will be 145 # Only after language was defined, splash screen will be
143 # shown 146 # shown
144 if lang: 147 if lang:
@@ -160,17 +163,23 @@ class SplashScreen(wx.SplashScreen): @@ -160,17 +163,23 @@ class SplashScreen(wx.SplashScreen):
160 id=-1, 163 id=-1,
161 parent=None) 164 parent=None)
162 self.Bind(wx.EVT_CLOSE, self.OnClose) 165 self.Bind(wx.EVT_CLOSE, self.OnClose)
  166 + wx.Yield()
  167 + wx.CallLater(200,self.Startup)
  168 +
163 169
164 - # Importing takes sometime, therefore it will be done  
165 - # while splash is being shown  
166 - from gui.frame import Frame  
167 - from control import Controller  
168 - from project import Project 170 + def Startup(self):
  171 + # Importing takes sometime, therefore it will be done
  172 + # while splash is being shown
  173 + from gui.frame import Frame
  174 + from control import Controller
  175 + from project import Project
  176 +
  177 + self.main = Frame(None)
  178 + self.control = Controller(self.main)
  179 +
  180 + self.fc = wx.FutureCall(1, self.ShowMain)
169 181
170 - self.main = Frame(None)  
171 - self.control = Controller(self.main)  
172 182
173 - self.fc = wx.FutureCall(1, self.ShowMain)  
174 183
175 def OnClose(self, evt): 184 def OnClose(self, evt):
176 # Make sure the default handler runs too so this window gets 185 # Make sure the default handler runs too so this window gets