mirror of
				https://github.com/arsenetar/dupeguru.git
				synced 2025-09-11 17:58:17 +00:00 
			
		
		
		
	[#196 state:fixed] [#188] Fixed a crash on crash reporting under Cocoa and improved job management to allow threaded error handling on _job_finished().
This commit is contained in:
		
							parent
							
								
									188aa4bf2e
								
							
						
					
					
						commit
						22de2d803a
					
				| @ -168,7 +168,9 @@ class PyDupeGuruBase(PyFairware): | ||||
|         self.progress.job_cancelled = True | ||||
|      | ||||
|     def jobCompleted_(self, jobid: str): | ||||
|         self.model._job_completed(jobid) | ||||
|         result = self.model._job_completed(jobid, self.progress.last_error) | ||||
|         if not result: | ||||
|             self.progress.reraise_if_error() | ||||
|      | ||||
|     #--- model --> view | ||||
|     @dontwrap | ||||
|  | ||||
| @ -169,13 +169,14 @@ class DupeGuru(RegistrableApplication, Broadcaster): | ||||
|             if self.results.get_group_of_duplicate(d) is not None] | ||||
|         self.notify('results_changed') | ||||
|      | ||||
|     def _job_completed(self, jobid): | ||||
|         # Must be called by subclasses when they detect that an async job is completed. | ||||
|     def _job_completed(self, jobid, exc): | ||||
|         # Must be called by subclasses when they detect that an async job is completed. If an | ||||
|         # exception was raised during the job, `exc` will be set. Return True when the error was | ||||
|         # handled. If we return False when exc is set, a the exception will be re-raised. | ||||
|         if jobid == JobType.Scan: | ||||
|             self._results_changed() | ||||
|         elif jobid in {JobType.Load, JobType.Move, JobType.Delete}: | ||||
|             self._results_changed() | ||||
|          | ||||
|         if jobid in {JobType.Copy, JobType.Move, JobType.Delete}: | ||||
|             self.notify('problems_changed') | ||||
|      | ||||
|  | ||||
| @ -200,7 +200,9 @@ class DupeGuru(QObject): | ||||
|         QProcess.execute('updater.exe', ['/checknow']) | ||||
|      | ||||
|     def job_finished(self, jobid): | ||||
|         self.model._job_completed(jobid) | ||||
|         result = self.model._job_completed(jobid, self._progress.last_error) | ||||
|         if not result: | ||||
|             self._progress.reraise_if_error() | ||||
|         if jobid in {JobType.Move, JobType.Copy, JobType.Delete}: | ||||
|             if self.model.results.problems: | ||||
|                 self.problemDialog.show() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user