source: src/mlx/mlx.py@ 40:aaf5cd877e21

Last change on this file since 40:aaf5cd877e21 was 40:aaf5cd877e21, checked in by István Váradi <ivaradi@…>, 12 years ago

Added support to load and save the configuration

File size: 1.5 KB
RevLine 
[18]1# The main program
2
[28]3from .gui.gui import GUI
[36]4
5from config import Config
[27]6
[29]7import os
[36]8import sys
[27]9
[38]10if os.name=="nt":
11 import win32api
12
[36]13#--------------------------------------------------------------------------------------
14
15class StdIOHandler(object):
16 """Handler for the standard I/O messages."""
17 def __init__(self, gui):
18 """Construct the handler."""
19 self._gui = gui
20
21 def write(self, text):
22 """Write the given text into the log."""
23 self._gui.writeStdIO(text)
24
25#--------------------------------------------------------------------------------------
26
27def main():
[29]28 """The main operation of the program."""
[36]29 programDirectory = os.path.dirname(sys.argv[0])
30
31 config = Config()
[40]32 config.load()
33
[36]34 gui = GUI(programDirectory, config)
[38]35
[36]36 sys.stdout = StdIOHandler(gui)
37 sys.stderr = StdIOHandler(gui)
38
[38]39 try:
40 gui.build(programDirectory)
41
42 gui.run()
43 finally:
44 gui.flushStdIO()
45 sys.stdout = sys.__stdout__
46 sys.stderr = sys.__stderr__
[27]47
[40]48 config.save()
49
[38]50 if gui.toRestart:
51 programPath = os.path.join(os.path.dirname(sys.argv[0]),
52 "runmlx.exe" if os.name=="nt" else "runmlx.sh")
53 if os.name=="nt":
54 programPath = win32api.GetShortPathName(programPath)
55
56 os.execl(programPath, programPath)
[27]57
[36]58#--------------------------------------------------------------------------------------
59
[20]60if __name__ == "__main__":
[36]61 main()
Note: See TracBrowser for help on using the repository browser.