Run dialogs with blurred screenshot overlay

Add a safe blurred-overlay flow for modal dialogs by implementing run_dialog_with_blur and _apply_blur_to_pixmap on YTSageApp. The new flow captures a window screenshot, generates a blurred/dimmed pixmap via a QGraphicsScene + QGraphicsBlurEffect, shows it in an overlay QLabel with a fade-in, runs the dialog, and then removes the overlay.

Replace many direct dialog.exec() calls with run_dialog_with_blur(...) across the main GUI (download settings, about, history, playlist selection, custom options, cookie login, ffmpeg check, time range, setup success dialogs, etc.). Also add imports required for pixmap/graphics handling.

Make animate_widget_fade_in usage safer by checking for the method before calling it and falling back to setVisible(True) for format table and thumbnails to avoid QPainter/graphics-effect conflicts. Small comment/cleanup in fade-in/out methods.
This commit is contained in:
oop7
2026-02-01 14:23:32 +02:00
parent 7890a94702
commit 79a85cf707
3 changed files with 103 additions and 16 deletions
+4 -1
View File
@@ -241,7 +241,10 @@ class FormatTableMixin:
self.filter_formats()
# Animate table appearance
self.animate_widget_fade_in(self.format_table)
if hasattr(self, "animate_widget_fade_in"):
self.animate_widget_fade_in(self.format_table)
else:
self.format_table.setVisible(True)
def _populate_format_table(self, formats_with_types: list) -> None:
"""Populate the format table with formats and their types."""