mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-10 05:34:36 +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
|
self.progress.job_cancelled = True
|
||||||
|
|
||||||
def jobCompleted_(self, jobid: str):
|
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
|
#--- model --> view
|
||||||
@dontwrap
|
@dontwrap
|
||||||
|
@ -169,13 +169,14 @@ class DupeGuru(RegistrableApplication, Broadcaster):
|
|||||||
if self.results.get_group_of_duplicate(d) is not None]
|
if self.results.get_group_of_duplicate(d) is not None]
|
||||||
self.notify('results_changed')
|
self.notify('results_changed')
|
||||||
|
|
||||||
def _job_completed(self, jobid):
|
def _job_completed(self, jobid, exc):
|
||||||
# Must be called by subclasses when they detect that an async job is completed.
|
# 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:
|
if jobid == JobType.Scan:
|
||||||
self._results_changed()
|
self._results_changed()
|
||||||
elif jobid in {JobType.Load, JobType.Move, JobType.Delete}:
|
elif jobid in {JobType.Load, JobType.Move, JobType.Delete}:
|
||||||
self._results_changed()
|
self._results_changed()
|
||||||
|
|
||||||
if jobid in {JobType.Copy, JobType.Move, JobType.Delete}:
|
if jobid in {JobType.Copy, JobType.Move, JobType.Delete}:
|
||||||
self.notify('problems_changed')
|
self.notify('problems_changed')
|
||||||
|
|
||||||
|
@ -200,7 +200,9 @@ class DupeGuru(QObject):
|
|||||||
QProcess.execute('updater.exe', ['/checknow'])
|
QProcess.execute('updater.exe', ['/checknow'])
|
||||||
|
|
||||||
def job_finished(self, jobid):
|
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 jobid in {JobType.Move, JobType.Copy, JobType.Delete}:
|
||||||
if self.model.results.problems:
|
if self.model.results.problems:
|
||||||
self.problemDialog.show()
|
self.problemDialog.show()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user