From bb6f3c391e9373c83886f968a53c491513bc86d7 Mon Sep 17 00:00:00 2001 From: paulojamorim Date: Tue, 5 Jan 2010 17:33:35 +0000 Subject: [PATCH] ENH: FIX #77 save session file using python config --- invesalius/invesalius.py | 7 +++++-- invesalius/session.py | 55 +++++++++++++++++++++++++++++++------------------------ 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/invesalius/invesalius.py b/invesalius/invesalius.py index 15ed9e4..0611a73 100755 --- a/invesalius/invesalius.py +++ b/invesalius/invesalius.py @@ -105,14 +105,17 @@ def parse_comand_line(): parser.add_option("-i", "--import", action="store", dest="dicom_dir") options, args = parser.parse_args() - + + session = Session() + if not (session.ReadSession()): + session.CreateItens() + if options.debug: # The user passed the debug option? # Yes! # Then all pubsub message must be printed. ps.Publisher().subscribe(print_events, ps.ALL_TOPICS) - session = Session() session.debug = 1 if options.dicom_dir: diff --git a/invesalius/session.py b/invesalius/session.py index 20eb73e..f7fd119 100644 --- a/invesalius/session.py +++ b/invesalius/session.py @@ -8,12 +8,22 @@ import constants as const from utils import Singleton import wx.lib.pubsub as ps + class Session(object): # Only one session will be initialized per time. Therefore, we use # Singleton design pattern for implementing it __metaclass__= Singleton def __init__(self): + # ? + self.temp_item = False + + ws = self.ws = WriteSession(self) + ws.start() + + ps.Publisher().subscribe(self.StopRecording, "Stop Config Recording") + + def CreateItens(self): self.project_path = () self.debug = False @@ -31,24 +41,16 @@ class Session(object): if not os.path.isdir(invdir): os.makedirs(invdir) self.invdir = invdir - - # ? - self.temp_item = False - - # Recent projects list - self.recent_projects = [] - - ws = self.ws = WriteSession(self) - ws.start() - ps.Publisher().subscribe(self.StopRecording, "Stop Config Recording") + # GUI language + self.language = "" # "pt_BR", "es" + # Recent projects list + self.recent_projects = [] def StopRecording(self, pubsub_evt): self.ws.Stop() - - # GUI language - self.language = "en_GB" # "pt_BR", "es" + def CloseProject(self): print "-- CloseProject" @@ -126,17 +128,22 @@ class Session(object): setattr(self, key, dict[key]) def ReadSession(self): - config = ConfigParser.ConfigParser() - path = os.path.join(self.homedir ,'.invesalius', 'config.cfg') - config.read(path) - - self.mode = config.get('session', 'mode') - self.project_status = config.get('session', 'status') - self.debug = config.get('session','debug') - self.recent_projects = eval(config.get('project','recent_projects')) - self.homedir = config.get('paths','homedir') - self.invdir = config.get('paths','invdir') + config = ConfigParser.ConfigParser() + home_path = os.path.expanduser('~') + path = os.path.join(home_path ,'.invesalius', 'config.cfg') + try: + config.read(path) + self.mode = config.get('session', 'mode') + self.project_status = config.get('session', 'status') + self.debug = config.get('session','debug') + self.language = config.get('session','language') + self.recent_projects = eval(config.get('project','recent_projects')) + self.homedir = config.get('paths','homedir') + self.invdir = config.get('paths','invdir') + return True + except(ConfigParser.NoSectionError): + return False class WriteSession(Thread): @@ -151,7 +158,6 @@ class WriteSession(Thread): self.Write() def Stop(self): - print "VAI PARAR A THREAD................" self.runing = 0 def Write(self): @@ -162,6 +168,7 @@ class WriteSession(Thread): config.set('session', 'mode', self.session.mode) config.set('session', 'status', self.session.project_status) config.set('session','debug', self.session.debug) + config.set('session', 'language', self.session.language) config.add_section('project') config.set('project', 'recent_projects', self.session.recent_projects) -- libgit2 0.21.2