Commit 78e76ccd78cc642e5253e090604f35dc2383f362
1 parent
8a638525
Exists in
master
and in
67 other branches
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 | 39 | #from wx.lib.pubsub import Publisher |
40 | 40 | #import wx.lib.pubsub as ps |
41 | 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 | 51 | import gui.language_dialog as lang_dlg |
51 | 52 | import i18n |
... | ... | @@ -63,10 +64,9 @@ class InVesalius(wx.App): |
63 | 64 | Initialize splash screen and main frame. |
64 | 65 | """ |
65 | 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 | 70 | return True |
71 | 71 | |
72 | 72 | def MacOpenFile(self, filename): |
... | ... | @@ -76,6 +76,10 @@ class InVesalius(wx.App): |
76 | 76 | path = os.path.abspath(filename) |
77 | 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 | 85 | class SplashScreen(wx.SplashScreen): |
... | ... | @@ -128,8 +132,6 @@ class SplashScreen(wx.SplashScreen): |
128 | 132 | shutil.rmtree(invdir) |
129 | 133 | sys.exit() |
130 | 134 | |
131 | - | |
132 | - | |
133 | 135 | # Session file should be created... So we set the recent |
134 | 136 | # choosen language |
135 | 137 | if (create_session): |
... | ... | @@ -139,6 +141,7 @@ class SplashScreen(wx.SplashScreen): |
139 | 141 | |
140 | 142 | session.SaveConfigFileBackup() |
141 | 143 | |
144 | + | |
142 | 145 | # Only after language was defined, splash screen will be |
143 | 146 | # shown |
144 | 147 | if lang: |
... | ... | @@ -160,17 +163,23 @@ class SplashScreen(wx.SplashScreen): |
160 | 163 | id=-1, |
161 | 164 | parent=None) |
162 | 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 | 184 | def OnClose(self, evt): |
176 | 185 | # Make sure the default handler runs too so this window gets | ... | ... |