From 296c6c7d6b319b38958b2aacb9904f18f6f46fd1 Mon Sep 17 00:00:00 2001 From: Warry Date: Mon, 29 Dec 2025 17:37:39 +0100 Subject: feat: Add playlist management functionality and compliance checks - Introduced a new "Playlists" column in results view with visual indicators for membership. - Added `playlist_api.py` to handle playlist-related operations (fetch, add, remove tracks). - Implemented `PlaylistManagerDialog` for seamless playlist addition/removal with caching. - Integrated compliance check script (`check_agents_compliance.py`) for ensuring coding standards. - Added extensive documentation (`playlist_membership_manager.md`) covering architecture and flow. - Updated GUI logic and QStandardItemModel setup to include playlist data. - Included unit tests for playlist management components and API. --- tidal_dl_ng/gui/main_window.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'tidal_dl_ng/gui/main_window.py') diff --git a/tidal_dl_ng/gui/main_window.py b/tidal_dl_ng/gui/main_window.py index 33806dc..1ec4fa0 100644 --- a/tidal_dl_ng/gui/main_window.py +++ b/tidal_dl_ng/gui/main_window.py @@ -19,6 +19,7 @@ from tidal_dl_ng.gui.downloads import DownloadsMixin from tidal_dl_ng.gui.history import HistoryMixin from tidal_dl_ng.gui.initialization import InitializationMixin from tidal_dl_ng.gui.playlist import GuiPlaylistManager +from tidal_dl_ng.gui.playlist_membership_mixin import PlaylistMembershipMixin from tidal_dl_ng.gui.progress import ProgressMixin from tidal_dl_ng.gui.queue import GuiQueueManager from tidal_dl_ng.gui.search import GuiSearchManager @@ -52,6 +53,7 @@ class MainWindow( TreesResultsMixin, ContextMenusMixin, HistoryMixin, + PlaylistMembershipMixin, ): """Main application window for TIDAL Downloader Next Generation. @@ -169,7 +171,7 @@ class MainWindow( self.init_tidal(tidal) - logger_gui.debug("All setup.") + logger_gui.info("All setup.") def closeEvent(self, event: QtGui.QCloseEvent) -> None: """Handle the close event of the main window. @@ -177,6 +179,12 @@ class MainWindow( Args: event (QtGui.QCloseEvent): The close event. """ + logger_gui.warning("⚠️ CLOSE EVENT TRIGGERED!") + import traceback + + logger_gui.debug("Close event traceback:") + for line in traceback.format_stack(): + logger_gui.debug(line.strip()) # Save the main window size and position self.settings.data.window_x = self.x() self.settings.data.window_y = self.y() -- cgit v1.3.1