diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-09-10 00:35:53 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2006-09-10 00:35:53 (GMT) |
commit | 47cc58b1e648a586252046eb79339357cd38f939 (patch) | |
tree | 90ab614b2dc05472686b4dbe593d580735a4e16f /shell/Session.py | |
parent | f4f70d22f1d29d24b7234e9a6fb3203deec5adfa (diff) |
Make part of the session public so that it can used by tests
Diffstat (limited to 'shell/Session.py')
-rw-r--r-- | shell/Session.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/shell/Session.py b/shell/Session.py new file mode 100644 index 0000000..07337d6 --- /dev/null +++ b/shell/Session.py @@ -0,0 +1,62 @@ +import os +import gtk + +from Shell import Shell +from ConsoleWindow import ConsoleWindow +from sugar import env +from sugar import logger + +from sugar.session.Process import Process +from sugar.session.DbusProcess import DbusProcess +from sugar.session.MatchboxProcess import MatchboxProcess + +from FirstTimeDialog import FirstTimeDialog +import conf + +class DBusMonitorProcess(Process): + def __init__(self): + Process.__init__(self, "dbus-monitor --session") + + def get_name(self): + return 'dbus-monitor' + +class Session: + """Takes care of running the shell and all the sugar processes""" + + def _check_profile(self): + profile = conf.get_profile() + + if profile.get_nick_name() == None: + dialog = FirstTimeDialog() + dialog.run() + profile.save() + + env.setup_user(profile) + + def start(self): + """Start the session""" + process = MatchboxProcess() + process.start() + + self._check_profile() + + process = DbusProcess() + process.start() + + if os.environ.has_key('SUGAR_DBUS_MONITOR'): + dbm = DBusMonitorProcess() + dbm.start() + + console = ConsoleWindow() + logger.start('Shell', console) + + shell = Shell() + shell.set_console(console) + + from sugar import TracebackUtils + tbh = TracebackUtils.TracebackHelper() + try: + gtk.main() + except KeyboardInterrupt: + print 'Ctrl+C pressed, exiting...' + del tbh |