Commit Graph
156 Commits
Author SHA1 Message Date
Robert Honz 8f0c784187 refactor(gui): ✨ update album download options and improve session validation
* Added a new action to download all albums in a playlist.
* Removed the deprecated `validate_session` method and replaced it with a direct call to `self.tidal.session.check_login()`.
* Adjusted the UI layout in `dialog_settings` to accommodate new options and improved sizing.
2025-10-22 21:52:20 +02:00
exislowandGitHub b485292807 Merge pull request #596 from Winman486/fix/rate-limiting-playlist-downloads
Fix/rate limiting playlist downloads
2025-10-22 21:38:30 +02:00
exislowandGitHub 0cf3516fb0 Merge pull request #573 from Rikrdoga/Dolby_Atmos
Implement Dolby Atmos Support & API Key Selection
2025-10-22 21:34:02 +02:00
Winman486 e9070eef66 refactor: Make rate limiting configurable and move session validation to Tidal class
- Add api_rate_limit_batch_size and api_rate_limit_delay_sec to Settings (cfg.py)
- Move validate_session() and is_authentication_error() to Tidal class (config.py)
- Update _load_albums_with_rate_limiting() to use config values instead of hardcoded 20/3
- Update _handle_album_load_error() to use Tidal.is_authentication_error()
- Remove _validate_session() from gui.py (now uses Tidal.validate_session())
- Addresses maintainer feedback: configurable tweaking variables and proper separation of concerns
2025-10-21 15:23:18 -05:00
Robert Honz d3ec0398b4 fix(gui): 🐛 integrate ansi2html for improved log message formatting
* Added `Ansi2HTMLConverter` to convert ANSI color codes in log messages to HTML.
* Updated the `MainWindow` class to utilize the new converter for displaying logs.
* Removed dependency on `coloredlogs.converter` for log message display.
2025-10-21 07:58:00 +02:00
Rikrdoga 70cfc1b6eb Apply formatter and fix TRY003 2025-10-20 20:46:36 -06:00
Rikrdoga cb32c2fa8b Refactor Dolby Atmos Implementation 2025-10-20 20:23:14 -06:00
Winman486 6c1704e3c4 fix: Remove duplicate menu entry and reduce code complexity
- Removed duplicate 'Download Full Album' context menu entry
- Refactored on_download_all_albums_from_playlist to reduce C901 complexity
- Extracted helper methods: _extract_album_ids_from_tracks, _load_albums_with_rate_limiting, _validate_session, _handle_album_load_error, _queue_loaded_albums
- All make check errors and warnings now resolved
2025-10-20 18:58:46 -05:00
Winman486 3c835c2d19 Merge upstream/master and resolve conflicts
- Resolved conflict in dialog_settings.py (kept both cb_use_primary_album_artist and cb_mark_explicit checkboxes)
- Fixed code quality issues found by make check:
  * Removed duplicate on_download_album_from_track function (F811)
  * Updated isinstance calls to use X | Y syntax instead of (X, Y) (UP038)
  * Fixed unused loop variable album_stub (B007)
  * Applied automatic formatting fixes (black, prettier, trailing whitespace)
- Only remaining issue is C901 complexity warning in on_download_all_albums_from_playlist (expected per maintainer feedback)
2025-10-20 16:12:46 -05:00
Rikrdoga 2c2cc0283a Refactor Dolby Atmos feature to be internal and seamless 2025-10-20 10:47:43 -06:00
Rikrdoga 302b552ed7 Add support for Dolby Atmos 2025-10-20 10:33:01 -06:00
Robert Honz aaca12cacc fix(gui): 🐛 improve album download action and update docstring
* Refactored the menu action for downloading the full album from a track.
* Enhanced the docstring for `on_download_album_from_track` to clarify its functionality and error handling.
2025-10-20 09:37:01 +02:00
Winman486 90ff7ea52e feat(gui): add rate limiting to Download All Albums feature - Process 20 albums at a time with 3-second delays - Add session validity checks to prevent OAuth errors - Handle unavailable albums gracefully - Add informative logging for rate limiting progress 2025-10-17 23:40:31 -05:00
Winman486 ac3bf51c56 feat(gui): add 'Download Full Album', 'Download All Albums', and 'Single album folder (primary artist)' preference 2025-10-17 15:17:02 -05:00
Rikrdoga 9321ac03da feat: Add 'Download Full Album' from track context menu 2025-10-17 14:05:48 -06:00
Robert Honz 2594232cb9 Queue button should indicate the action that will occur when clicked — currently it shows present state
Fixes #561
2025-10-17 11:55:39 +02:00
Robert Honz 49fd7a100f fix(gui): 🐛 adjust MainWindow initialization and clean up close event method
* Added a missing line in the `MainWindow` constructor to ensure proper settings initialization.
* Removed unnecessary blank line in the `closeEvent` method for cleaner code.
2025-09-30 22:43:22 +02:00
exislowandGitHub 0d6381ab6e Merge pull request #517 from joshuacant/master
Adds: window size/position saving, dynamic column widths, double-click row action
2025-09-30 22:40:54 +02:00
Joshua Cantara 060c185920 move window size and position restore into the correct function 2025-09-08 09:59:29 -04:00
Robert Honz 541527be32 feat(tidal): ✨ add url_ending_clean function and refactor URL handling. Fixes #523
* Introduced `url_ending_clean` to sanitize URLs by removing trailing "/u" or "?u".
* Updated `_process_url` and GUI search logic to utilize cleaned URLs for better validation and processing.
2025-09-07 18:27:30 +02:00
Joshua Cantara 3462f5a26a set column widths dynamically based on window width 2025-09-01 15:34:29 -04:00
Joshua Cantara 4c0d78b5ed save and restore main window position and size 2025-09-01 14:49:24 -04:00
Joshua Cantara 64597bc2f6 double click a result row to download it 2025-09-01 13:18:50 -04:00
Robert Honz ef507b56ed feat(gui): enhance app icons with multi-resolution support
Improves the application's icon handling by introducing multi-resolution
support, replacing a single PNG file with multiple resolution-specific icons.

- ✨ **Added** multiple resolution icons (16x16, 32x32, 48x48, 64x64, 256x256, 512x512).
- 🔄 **Updated** GUI setup to use multi-resolution icons for better scalability.
- 🗑️ **Removed** the old single-resolution `icon.png`.

This update ensures better compatibility and visual quality across
different platforms and screen resolutions.
2025-08-12 16:02:41 +02:00
Robert Honz fd16a620f2 refactor(gui): ✨ Enhance type annotations and improve method signatures
* Updated type hints for various methods in  and  classes.
* Changed list types from  to  for better clarity and consistency.
* Improved function signatures to include return types for better type safety.
2025-07-02 08:47:59 +02:00
Robert Honz 99b4347b9a refactor(gui): ✨ Improve filter handling in MainWindow
* Refactored the filter extraction logic to directly use `header.filter_text(i)` for better clarity.
* Updated the filters list to store tuples of index and text, enhancing the data structure used.
* Ensured that the `proxy_model.filters` is set directly, simplifying the code.
2025-07-01 15:58:51 +02:00
Robert Honz 76f6010a12 refactor(gui): ✨ Enhance type annotations and improve method signatures
* Updated type hints for several methods in `MainWindow` class to improve code clarity and type safety.
* Changed return types to `None` where applicable.
* Refined parameter types for better type checking and consistency.
2025-07-01 15:52:30 +02:00
Robert Honz d8a6c26d65 refactor(gui): ✨ Enhance documentation for MainWindow methods
* Added detailed docstrings for methods in the `MainWindow` class.
* Improved clarity on parameters and return types for better understanding.
* Aims to facilitate future development and maintenance.
2025-07-01 14:30:10 +02:00
Robert Honz aa532f62fc refactor(gui): ✨ Improve search_result_to_model method and extract helper functions
* Refactored `search_result_to_model` to use type hints with `list` instead of `[*SearchTypes]`.
* Added detailed docstring for better understanding of parameters and return types.
* Extracted logic into helper methods for better readability and maintainability.
* Improved handling of item availability and explicit content representation.
2025-07-01 13:35:17 +02:00
Robert Honz 70e8b5fb13 ✨ Either date added or date released will be shown, depending if a list is selected or a search was performed. Fixes #424 2025-06-30 10:44:51 +02:00
Robert Honz 98f5230ccd 🛠️ Favorites won't getting duplicated after user hits the list reload button. Fixes #409 2025-06-30 08:39:33 +02:00
Robert Honz bbc65c8577 🛠️ Cover won't be removed, if clicked on the same item multiple times. 2025-06-29 21:53:50 +02:00
Robert Honz 5bdd48e471 ✨ Spinner will be shown, if search results are expanded. 2025-06-29 21:50:12 +02:00
Robert Honz e8ca69fefa 🛠️ GUI dos not hang if searched media is not available anymore. 2025-06-29 21:29:06 +02:00
Robert Honz 039546ffe8 👷 Lists and cover will be loaded in background. Gui won't hang anymore. Fixes #423 2025-06-29 20:33:22 +02:00
Juan Jesús Alejo SilleroandGitHub cee11e6ebd Fix: Prevent UnboundLocalError in on_populate_tree_lists
- Added a safeguard to skip items in `user_lists` that do not match expected types (`UserPlaylist`, `Playlist`, or `Mix`).
- Ensured `twi_child` is only accessed when properly initialized.
- This prevents crashes during GUI interaction when unexpected data is encountered.
2025-04-26 01:15:45 +02:00
Robert Honz 9a0a60d9ad Fixed: Relative import error. 2025-03-23 21:28:58 +01:00
Robert Honz 9b428dfa16 🛠️ Clipboard is not thread safe. Executing in a synchronous way. Fixes #382 2025-03-23 10:46:16 +01:00
Robert Honz 0684994850 ✨ Downloads can be now paused / resumed. Fixes #149 & 324
👷 Shutdown is handled more gracefully.
2025-03-03 09:31:37 +01:00
Robert Honz 463453b4f5 🛠️ Fix: Missing module prefix on import. Fixes #335 2025-01-14 07:56:50 +01:00
Robert Honz 2055606d0b 👷 File extension guesser improved. Fixes #322 2025-01-12 17:42:09 +01:00
exislowandGitHub edcd689840 Merge branch 'master' into nuitka 2025-01-05 18:43:16 +01:00
Robert Honz 4d9d67d9a8 👷 Nuitka's compile options sorted and conditional flags applied per OS. 2025-01-05 18:38:12 +01:00
Robert Honz 9318d1bf74 👷 Wording changed for Qt dependencies missing error. 2025-01-04 15:43:07 +01:00
Robert Honz f2c71360e3 👷 Debugger activated. 2025-01-04 15:33:01 +01:00
Robert Honz 7d30bef297 👷 Option deprecation fix. 2025-01-04 12:31:09 +01:00
Robert Honz e4456d33a7 👷 Nuitka installation flags. 2025-01-04 11:52:34 +01:00
Robert Honz 75ade1b78d 🛠️ Clean app shutdown. 2025-01-03 14:37:42 +01:00
Robert Honz fb5022a0df 👷 Removed unnecessary Qt import. 2024-12-13 10:13:43 +01:00
Robert Honz 33a30537e9 ✨ Merge with master. 2024-11-29 17:41:25 +01:00