From b1aaf9c9282c5c87545f909ea6a09bedfec71c6f Mon Sep 17 00:00:00 2001 From: paulojamorim Date: Mon, 19 Oct 2009 11:16:06 +0000 Subject: [PATCH] ENH: Changed wx.Event to pubsub --- invesalius/control.py | 22 +++++++++++++--------- invesalius/gui/dialogs.py | 7 +++++-- invesalius/reader/dicom_reader.py | 20 +++++++++++--------- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/invesalius/control.py b/invesalius/control.py index 619d3b1..2b862b6 100755 --- a/invesalius/control.py +++ b/invesalius/control.py @@ -35,9 +35,9 @@ class Controller(): 'Save raycasting preset') ps.Publisher().subscribe(self.OnOpenDicomGroup, 'Open DICOM group') - #ps.Publisher().subscribe(self.CancelDicomLoad, - # "Cancel DICOM load in the control") - + ps.Publisher().subscribe(self.Progress, "Update dicom load") + ps.Publisher().subscribe(self.LoadPanel, "End dicom load") + def StartImportPanel(self, pubsub_evt): # path to directory path = pubsub_evt.data @@ -47,16 +47,20 @@ class Controller(): reader.SetWindowEvent(self.frame) reader.SetDirectoryPath(path) - self.frame.Bind(reader.evt_update_progress, self.Progress) - self.frame.Bind(reader.evt_end_load_file, self.LoadPanel) + #self.frame.Bind(reader.evt_update_progress, self.Progress) + #self.frame.Bind(reader.evt_end_load_file, self.LoadPanel) def Progress(self, evt): - if (evt.progress): + print evt + data = evt.data + + if (data): if not(self.progress_dialog): self.progress_dialog = dialog.ProgressDialog( - maximum = evt.progress[1]) + maximum = data[1]) else: - if not(self.progress_dialog.Update(evt.progress[0])): + print data[0] + if not(self.progress_dialog.Update(data[0])): self.progress_dialog.Close() self.progress_dialog = None else: @@ -66,7 +70,7 @@ class Controller(): def LoadPanel(self,evt): - patient_series = evt.value + patient_series = evt.data if patient_series: ps.Publisher().sendMessage("Load import panel", patient_series) first_patient = patient_series[0] diff --git a/invesalius/gui/dialogs.py b/invesalius/gui/dialogs.py index 3629f20..2c74946 100644 --- a/invesalius/gui/dialogs.py +++ b/invesalius/gui/dialogs.py @@ -83,8 +83,11 @@ class ProgressDialog(object): ps.Publisher().sendMessage("Cancel DICOM load") def Update(self, value): - if(value != self.maximum): - self.dlg.Update(value) + if(value != self.maximum): + try: + self.dlg.Update(value) + except(wx._core.PyAssertionError): + pass return True else: return False diff --git a/invesalius/reader/dicom_reader.py b/invesalius/reader/dicom_reader.py index 8b222c3..8c5d4b4 100644 --- a/invesalius/reader/dicom_reader.py +++ b/invesalius/reader/dicom_reader.py @@ -85,7 +85,7 @@ def yGetDicomGroups(directory, recursive=True, gui=True): nfiles = len(filenames) print "TOTAL FILES:", nfiles - counter = 0.0 + counter = 0 grouper = dicom_grouper.DicomPatientGrouper() # Retrieve only DICOM files, splited into groups if recursive: @@ -123,11 +123,11 @@ def GetDicomGroups(directory, recursive=True): class ProgressDicomReader: def __init__(self): - (self.LoadFilesProgress, EVT_LOAD_FILE_PROGRESS) = wx.lib.newevent.NewEvent() - (self.EndLoadFiles, EVT_END_LOAD_FILE) = wx.lib.newevent.NewEvent() + #(self.LoadFilesProgress, EVT_LOAD_FILE_PROGRESS) = wx.lib.newevent.NewEvent() + #(self.EndLoadFiles, EVT_END_LOAD_FILE) = wx.lib.newevent.NewEvent() - self.evt_update_progress = EVT_LOAD_FILE_PROGRESS - self.evt_end_load_file = EVT_END_LOAD_FILE + #self.evt_update_progress = EVT_LOAD_FILE_PROGRESS + #self.evt_end_load_file = EVT_END_LOAD_FILE ps.Publisher().subscribe(self.CancelLoad, "Cancel DICOM load") @@ -144,12 +144,14 @@ class ProgressDicomReader: thread.start_new_thread(self.GetDicomGroups,(path,recursive)) def UpdateLoadFileProgress(self,cont_progress): - evt = self.LoadFilesProgress(progress = cont_progress) - wx.PostEvent(self.frame, evt) + ps.Publisher().sendMessage("Update dicom load", cont_progress) + #evt = self.LoadFilesProgress(progress = cont_progress) + #wx.PostEvent(self.frame, evt) def EndLoadFile(self, grouper): - evt = self.EndLoadFiles(value = grouper) - wx.PostEvent(self.frame, evt) + ps.Publisher().sendMessage("End dicom load", grouper) + #evt = self.EndLoadFiles(value = grouper) + #wx.PostEvent(self.frame, evt) def GetDicomGroups(self, path, recursive): y = yGetDicomGroups(path, recursive) -- libgit2 0.21.2