mirror of
https://github.com/Yuvi9587/Kemono-Downloader.git
synced 2025-12-29 16:14:44 +00:00
Fixed Error Dialog
This commit is contained in:
parent
611e892576
commit
675646e763
@ -476,6 +476,11 @@ class DownloaderApp (QWidget ):
|
|||||||
QMessageBox.information(self, "Queue Empty", "No job files found in appdata/jobs.")
|
QMessageBox.information(self, "Queue Empty", "No job files found in appdata/jobs.")
|
||||||
return
|
return
|
||||||
|
|
||||||
|
# --- FIX: Clear error log at the start of the entire queue session ---
|
||||||
|
self.permanently_failed_files_for_dialog.clear()
|
||||||
|
self._update_error_button_count()
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
|
||||||
self.log_signal.emit("=" * 40)
|
self.log_signal.emit("=" * 40)
|
||||||
self.log_signal.emit(f"🚀 Starting execution of {len(job_files)} queued jobs.")
|
self.log_signal.emit(f"🚀 Starting execution of {len(job_files)} queued jobs.")
|
||||||
self.is_running_job_queue = True
|
self.is_running_job_queue = True
|
||||||
@ -4036,6 +4041,10 @@ class DownloaderApp (QWidget ):
|
|||||||
self.downloaded_hash_counts.clear()
|
self.downloaded_hash_counts.clear()
|
||||||
|
|
||||||
if not is_restore and not is_continuation:
|
if not is_restore and not is_continuation:
|
||||||
|
|
||||||
|
if not self.is_running_job_queue:
|
||||||
|
self.permanently_failed_files_for_dialog.clear()
|
||||||
|
|
||||||
self.permanently_failed_files_for_dialog.clear()
|
self.permanently_failed_files_for_dialog.clear()
|
||||||
|
|
||||||
self.retryable_failed_files_info.clear()
|
self.retryable_failed_files_info.clear()
|
||||||
@ -5942,9 +5951,7 @@ class DownloaderApp (QWidget ):
|
|||||||
if not self.finish_lock.acquire(blocking=False):
|
if not self.finish_lock.acquire(blocking=False):
|
||||||
return
|
return
|
||||||
|
|
||||||
# --- Flag to track if we still hold the lock ---
|
|
||||||
lock_held = True
|
lock_held = True
|
||||||
# ----------------------------------------------------
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if self.is_finishing:
|
if self.is_finishing:
|
||||||
@ -5983,20 +5990,21 @@ class DownloaderApp (QWidget ):
|
|||||||
self.download_thread = None
|
self.download_thread = None
|
||||||
self.is_finishing = False
|
self.is_finishing = False
|
||||||
|
|
||||||
# FIX: Manual release + update flag
|
|
||||||
self.finish_lock.release()
|
self.finish_lock.release()
|
||||||
lock_held = False
|
lock_held = False
|
||||||
|
|
||||||
self._process_next_favorite_download()
|
self._process_next_favorite_download()
|
||||||
return
|
return
|
||||||
# ---------------------------------------------------------
|
|
||||||
|
|
||||||
# --- NEW: JOB QUEUE CONTINUATION LOGIC ---
|
|
||||||
# Checks if we are in 'Execute Queue' mode and have a current job file active
|
|
||||||
if getattr(self, 'is_running_job_queue', False) and getattr(self, 'current_job_file', None):
|
if getattr(self, 'is_running_job_queue', False) and getattr(self, 'current_job_file', None):
|
||||||
self.log_signal.emit(f"✅ Job finished. Deleting job file: {os.path.basename(self.current_job_file)}")
|
self.log_signal.emit(f"✅ Job finished. Deleting job file: {os.path.basename(self.current_job_file)}")
|
||||||
|
|
||||||
# 1. Clean up resources for this specific run
|
if self.retryable_failed_files_info:
|
||||||
|
self.log_signal.emit(f"⚠️ Job had {len(self.retryable_failed_files_info)} incomplete files. Adding to cumulative error report.")
|
||||||
|
self.permanently_failed_files_for_dialog.extend(self.retryable_failed_files_info)
|
||||||
|
self._update_error_button_count()
|
||||||
|
self.retryable_failed_files_info.clear()
|
||||||
|
|
||||||
self._finalize_download_history()
|
self._finalize_download_history()
|
||||||
if self.thread_pool:
|
if self.thread_pool:
|
||||||
self.thread_pool.shutdown(wait=False)
|
self.thread_pool.shutdown(wait=False)
|
||||||
@ -6022,7 +6030,6 @@ class DownloaderApp (QWidget ):
|
|||||||
# 5. Trigger next job in queue (using QTimer to allow stack to unwind)
|
# 5. Trigger next job in queue (using QTimer to allow stack to unwind)
|
||||||
QTimer.singleShot(100, self._process_next_queued_job)
|
QTimer.singleShot(100, self._process_next_queued_job)
|
||||||
return
|
return
|
||||||
# -----------------------------------------
|
|
||||||
|
|
||||||
if self.is_processing_favorites_queue:
|
if self.is_processing_favorites_queue:
|
||||||
self.is_processing_favorites_queue = False
|
self.is_processing_favorites_queue = False
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user