"""
from __future__ import absolute_import
-import sys
-import warnings
from optparse import OptionParser
from Cura.util import profile
parser = OptionParser(usage="usage: %prog [options] <filename>.stl")
parser.add_option("-i", "--ini", action="store", type="string", dest="profileini",
help="Load settings from a profile ini file")
- parser.add_option("-P", "--project", action="store_true", dest="openprojectplanner",
- help="Open the project planner")
- parser.add_option("-F", "--flat", action="store_true", dest="openflatslicer",
- help="Open the 2D SVG slicer (unfinished)")
parser.add_option("-r", "--print", action="store", type="string", dest="printfile",
help="Open the printing interface, instead of the normal cura interface.")
parser.add_option("-p", "--profile", action="store", type="string", dest="profile",
if options.profileini is not None:
profile.loadGlobalProfile(options.profileini)
- if options.openprojectplanner is not None:
- from Cura.gui import projectPlanner
- projectPlanner.main()
- elif options.openflatslicer is not None:
- from Cura.gui import flatSlicerWindow
- flatSlicerWindow.main()
- elif options.printfile is not None:
+ if options.printfile is not None:
from Cura.gui import printWindow
printWindow.startPrintInterface(options.printfile)
elif options.slice is not None:
from Cura.util import sliceRun
sliceRun.runSlice(args)
else:
+ #Place any unused arguments as last file, so Cura starts with opening those files.
if len(args) > 0:
profile.putPreference('lastFile', ';'.join(args))
- import wx._core
- from Cura.gui import splashScreen
-
- class CuraApp(wx.App):
- def MacOpenFile(self, path):
- try:
- pass
- except Exception as e:
- warnings.warn("File at {p} cannot be read: {e}".format(p=path, e=str(e)))
-
- def mainWindowRunCallback(splash):
- from Cura.gui import mainWindow
- if splash is not None:
- splash.Show(False)
- mainWindow.main()
-
- app = CuraApp(False)
- # Apple discourages usage of splash screens on a mac.
- if sys.platform.startswith('darwin'):
- mainWindowRunCallback(None)
- else:
- splashScreen.splashScreen(mainWindowRunCallback)
- app.MainLoop()
+ from Cura.gui import app
+ app.CuraApp().MainLoop()
if __name__ == '__main__':
main()
--- /dev/null
+from __future__ import absolute_import
+
+import sys
+import os
+import platform
+import shutil
+import glob
+import warnings
+
+#Only import the _core to save import time
+import wx._core
+
+from Cura.gui import splashScreen
+from Cura.util import profile
+
+class CuraApp(wx.App):
+ def __init__(self):
+ if platform.system() == "Windows":
+ super(CuraApp, self).__init__(redirect = True, filename = 'output.txt')
+ else:
+ super(CuraApp, self).__init__(redirect = False)
+
+ self.mainWindow = None
+ self.splash = None
+
+ if sys.platform.startswith('darwin'):
+ #Do not show a splashscreen on OSX, as by Apple guidelines
+ self.afterSplashCallback()
+ else:
+ self.splash = splashScreen.splashScreen(self.afterSplashCallback)
+
+ def MacOpenFile(self, path):
+ try:
+ self.mainWindow._loadModels([path])
+ except Exception as e:
+ warnings.warn("File at {p} cannot be read: {e}".format(p=path, e=str(e)))
+
+ def afterSplashCallback(self):
+ #These imports take most of the time and thus should be done after showing the splashscreen
+ from Cura.gui import mainWindow
+ from Cura.gui import configWizard
+
+ #If we haven't run it before, run the configuration wizard.
+ if profile.getPreference('machine_type') == 'unknown':
+ if platform.system() == "Darwin":
+ #Check if we need to copy our examples
+ exampleFile = os.path.expanduser('~/CuraExamples/UltimakerRobot_support.stl')
+ if not os.path.isfile(exampleFile):
+ try:
+ os.makedirs(os.path.dirname(exampleFile))
+ except:
+ pass
+ for filename in glob.glob(os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'example', '*.*'))):
+ shutil.copy(filename, os.path.join(os.path.dirname(exampleFile), os.path.basename(filename)))
+ profile.putPreference('lastFile', exampleFile)
+ configWizard.configWizard()
+
+ #Hide the splashscreen before showing the main window.
+ if self.splash is not None:
+ self.splash.Show(False)
+ self.mainWindow = mainWindow.mainWindow()
glEnd()
glFlush()
-
-def main():
- app = wx.App(False)
- flatSlicerWindow().Show(True)
- app.MainLoop()
-
-if __name__ == '__main__':
- main()
-
from Cura.util import sliceRun
from Cura.util import meshLoader
-def main():
- if profile.getPreference('machine_type') == 'unknown':
- if platform.system() == "Darwin":
- #Check if we need to copy our examples
- exampleFile = os.path.expanduser('~/CuraExamples/UltimakerRobot_support.stl')
- if not os.path.isfile(exampleFile):
- try:
- os.makedirs(os.path.dirname(exampleFile))
- except:
- pass
- for filename in glob.glob(os.path.normpath(os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', 'example', '*.*'))):
- shutil.copy(filename, os.path.join(os.path.dirname(exampleFile), os.path.basename(filename)))
- profile.putPreference('lastFile', exampleFile)
- configWizard.configWizard()
- mainWindow()
-
class mainWindow(wx.Frame):
def __init__(self):
super(mainWindow, self).__init__(None, title='Cura - ' + version.getVersion())
self.SetSize((400,300))
self.Centre()
self.Show(True)
-
-def main():
- app = wx.App(False)
- projectPlanner().Show(True)
- app.MainLoop()
-
-if __name__ == '__main__':
- main()
from Cura.util.resources import getPathForImage
-
class splashScreen(wx.SplashScreen):
def __init__(self, callback):
self.callback = callback
wx.CallAfter(self.DoCallback)
def DoCallback(self):
- self.callback(self)
+ self.callback()
self.Destroy()
-
-
-def showSplash(callback):
- from Cura.cura import CuraApp
- app = CuraApp(False)
- splashScreen(callback)
- app.MainLoop()
-
-
-def testCallback(splashscreen):
- print "Callback!"
- import time
-
- time.sleep(2)
- print "!Callback"
-
-
-def main():
- showSplash(testCallback)
-
-if __name__ == u'__main__':
- main()