Commit cd7f4721c6d1ab9a3838a070ece6b10263a4af71

Authored by tfmoraes
1 parent 0586bd4a

ENH: Now it's possible to cancel a import

Showing 1 changed file with 8 additions and 18 deletions   Show diff stats
invesalius/reader/dicom_reader.py
@@ -120,17 +120,11 @@ def yGetDicomGroups(directory, recursive=True, gui=True): @@ -120,17 +120,11 @@ def yGetDicomGroups(directory, recursive=True, gui=True):
120 def GetDicomGroups(directory, recursive=True): 120 def GetDicomGroups(directory, recursive=True):
121 return yGetDicomGroups(directory, recursive, gui=False).next() 121 return yGetDicomGroups(directory, recursive, gui=False).next()
122 122
  123 +
123 class ProgressDicomReader: 124 class ProgressDicomReader:
124 -  
125 def __init__(self): 125 def __init__(self):
126 - #(self.LoadFilesProgress, EVT_LOAD_FILE_PROGRESS) = wx.lib.newevent.NewEvent()  
127 - #(self.EndLoadFiles, EVT_END_LOAD_FILE) = wx.lib.newevent.NewEvent()  
128 -  
129 - #self.evt_update_progress = EVT_LOAD_FILE_PROGRESS  
130 - #self.evt_end_load_file = EVT_END_LOAD_FILE  
131 -  
132 ps.Publisher().subscribe(self.CancelLoad, "Cancel DICOM load") 126 ps.Publisher().subscribe(self.CancelLoad, "Cancel DICOM load")
133 - 127 +
134 def CancelLoad(self, evt_pubsub): 128 def CancelLoad(self, evt_pubsub):
135 self.running = False 129 self.running = False
136 self.stoped = True 130 self.stoped = True
@@ -142,29 +136,25 @@ class ProgressDicomReader: @@ -142,29 +136,25 @@ class ProgressDicomReader:
142 self.running = True 136 self.running = True
143 self.stoped = False 137 self.stoped = False
144 self.GetDicomGroups(path,recursive) 138 self.GetDicomGroups(path,recursive)
145 - 139 +
146 def UpdateLoadFileProgress(self,cont_progress): 140 def UpdateLoadFileProgress(self,cont_progress):
147 ps.Publisher().sendMessage("Update dicom load", cont_progress) 141 ps.Publisher().sendMessage("Update dicom load", cont_progress)
148 - #evt = self.LoadFilesProgress(progress = cont_progress)  
149 - #wx.PostEvent(self.frame, evt)  
150 - 142 +
151 def EndLoadFile(self, grouper): 143 def EndLoadFile(self, grouper):
152 ps.Publisher().sendMessage("End dicom load", grouper) 144 ps.Publisher().sendMessage("End dicom load", grouper)
153 - #evt = self.EndLoadFiles(value = grouper)  
154 - #wx.PostEvent(self.frame, evt)  
155 - 145 +
156 def GetDicomGroups(self, path, recursive): 146 def GetDicomGroups(self, path, recursive):
157 y = yGetDicomGroups(path, recursive) 147 y = yGetDicomGroups(path, recursive)
158 - #while self.running:  
159 for value_progress in y: 148 for value_progress in y:
  149 + if not self.running:
  150 + break
160 if isinstance(value_progress, tuple): 151 if isinstance(value_progress, tuple):
161 self.UpdateLoadFileProgress(value_progress) 152 self.UpdateLoadFileProgress(value_progress)
162 else: 153 else:
163 self.EndLoadFile(value_progress) 154 self.EndLoadFile(value_progress)
164 - 155 +
165 #Is necessary in the case user cancel 156 #Is necessary in the case user cancel
166 #the load, ensure that dicomdialog is closed 157 #the load, ensure that dicomdialog is closed
167 if(self.stoped): 158 if(self.stoped):
168 self.UpdateLoadFileProgress(None) 159 self.UpdateLoadFileProgress(None)
169 self.stoped = False 160 self.stoped = False
170 -