From: daid Date: Thu, 30 Aug 2012 09:47:20 +0000 (+0200) Subject: Added a loading splashscreen. (needs better artwork) X-Git-Tag: 13.03~364 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=600fdae59b6551166932dc5b42a801b98f6a1b14;p=cura.git Added a loading splashscreen. (needs better artwork) --- diff --git a/Cura/cura.py b/Cura/cura.py index 2374f988..215be473 100644 --- a/Cura/cura.py +++ b/Cura/cura.py @@ -73,8 +73,12 @@ def main(): else: if len(args) > 0: profile.putPreference('lastFile', ';'.join(args)) - from gui import mainWindow - mainWindow.main() + from gui import splashScreen + splashScreen.showSplash(mainWindowRunCallback) + +def mainWindowRunCallback(): + from gui import mainWindow + mainWindow.main() if __name__ == '__main__': main() diff --git a/Cura/gui/mainWindow.py b/Cura/gui/mainWindow.py index 6822e680..7523ce89 100644 --- a/Cura/gui/mainWindow.py +++ b/Cura/gui/mainWindow.py @@ -24,7 +24,7 @@ from util import version from util import sliceRun def main(): - app = wx.App(False) + #app = wx.App(False) if profile.getPreference('wizardDone') == 'False': configWizard.configWizard() profile.putPreference("wizardDone", "True") @@ -32,7 +32,7 @@ def main(): simpleMode.simpleModeWindow() else: mainWindow() - app.MainLoop() + #app.MainLoop() class mainWindow(configBase.configWindowBase): "Main user interface window" diff --git a/Cura/gui/splashScreen.py b/Cura/gui/splashScreen.py new file mode 100644 index 00000000..276cc79e --- /dev/null +++ b/Cura/gui/splashScreen.py @@ -0,0 +1,36 @@ +import sys, os +#We only need the core here, which speeds up the import. As we want to show the splashscreen ASAP. +import wx._core + +def getBitmapImage(filename): + #The frozen executable has the script files in a zip, so we need to exit another level to get to our images. + if hasattr(sys, 'frozen'): + return wx.Bitmap(os.path.normpath(os.path.join(os.path.split(__file__)[0], "../../images", filename))) + else: + return wx.Bitmap(os.path.normpath(os.path.join(os.path.split(__file__)[0], "../images", filename))) + +class splashScreen(wx.SplashScreen): + def __init__(self, callback): + self.callback = callback + bitmap = getBitmapImage("splash.png") + super(splashScreen, self).__init__(bitmap, wx.SPLASH_CENTRE_ON_SCREEN, 0, None) + wx.CallAfter(callback) + wx.CallAfter(self.Destroy) + +def showSplash(callback): + app = wx.App(False) + splashScreen(callback) + app.MainLoop() + +def testCallback(): + print "Callback!" + import time + time.sleep(2) + print "!Callback" + +def main(): + showSplash(testCallback) + +if __name__ == u'__main__': + main() + diff --git a/Cura/images/splash.png b/Cura/images/splash.png new file mode 100644 index 00000000..82bf83b8 Binary files /dev/null and b/Cura/images/splash.png differ