summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/dialog.py
Commit message (Collapse)AuthorAgeFilesLines
* refactor: Restructure GUI components into separate modules for improved ↵Warry2025-12-041-3/+19
| | | | maintainability
* Merge remote-tracking branch 'warry-github/master' into ↵Warry2025-12-031-2/+2
|\ | | | | | | feature/refactor-settings-ui
| * Added clarity and grammar fixes to documentation and to some strings on the ↵E.J. Talevi2025-11-251-2/+2
| | | | | | | | program itself.
* | feat: refactor settings UI with category navigation and add Delimiters pageWarry2025-11-301-0/+27
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #640 ## Changes ### UI Refactoring - Replace monolithic settings dialog with category-based navigation - Add QListWidget (lw_categories) for category selection on the left - Add QStackedWidget (sw_categories) for content pages on the right - Organize settings into 5 distinct pages: - Flags (14 checkboxes) - Quality (3 combo boxes) - Numbers (2 spin boxes) - Paths & Formats (7 line edits + 2 browse buttons) - Delimiters (4 line edits) — NEW ### New Feature: Delimiters Category - Add customizable separators for artists in metadata and filenames: - metadata_delimiter_artist - metadata_delimiter_album_artist - filename_delimiter_artist - filename_delimiter_album_artist - Auto-integration with DialogPreferences via parameters_line_edit - Line edits with max width 100px for compact display ### Styling - Apply dark theme to settings dialog: - Category list: #2b2b2b background, #3d5a80 selection, #3a3a3a hover - Settings area: #333333 background, styled GroupBoxes (#3a3a3a) - Light text (#e0e0e0) for better contrast - Add spacing property (6px) to category list for better readability - Style QListWidget items with padding (4px 3px) and margin (2px 0px) ### Testing - Add comprehensive test suite (61 tests total): - test_settings_ui.py: UI and basic integration (14 tests) - test_settings_dialog_structure.py: detailed structure validation (20 tests) - test_dialog_preferences_integration.py: DialogPreferences integration (14 tests) - test_delimiters_category.py: new Delimiters page validation (13 tests) - Fix ruff issues (F841, S108) in test files - All tests passing with 100% success rate ### Documentation - Add docs/refactor_settings_ui.md: comprehensive refactor overview - Add docs/delimiters_category.md: Delimiters feature documentation - Add docs/ui_styles.md: dark theme style guide - Add docs/testing_summary.md: testing overview and commands ### Code Quality - Apply ruff/black/pyupgrade via pre-commit hooks - Fix F841 (unused variable) in test_dialog_preferences_integration.py - Fix S108 (insecure temp path) using Path.home() in test_settings_ui.py - End-of-file fixes applied automatically ## Files Modified - tidal_dl_ng/ui/dialog_settings.ui (complete restructure) - tidal_dl_ng/ui/dialog_settings.py (auto-generated from .ui) - tidal_dl_ng/dialog.py (add 4 delimiter params + Delimiters category) - tests/* (4 new test files with 61 tests) - docs/* (4 new documentation files) ## Impact - Improved UX: intuitive category navigation, better visual organization - Extensibility: easy to add new settings pages/categories - Quality: comprehensive test coverage ensures robustness - User flexibility: customizable separators for metadata and filenames ## Technical Notes - QStackedWidget pages indexed 0-4 matching category list order - Navigation via QListWidget::currentRowChanged signal - Automatic save/load through existing DialogPreferences methods - No breaking changes to existing settings or configuration ## Testing Commands ```powershell poetry run pre-commit run -a poetry run pytest -q
* Merge pull request #596 from Winman486/fix/rate-limiting-playlist-downloadsexislow2025-10-221-0/+1
|\ | | | | Fix/rate limiting playlist downloads
| * Merge upstream/master and resolve conflictsWinman4862025-10-201-0/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | - 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)
| * | feat(gui): add 'Download Full Album', 'Download All Albums', and 'Single ↵Winman4862025-10-171-0/+1
| | | | | | | | | | | | album folder (primary artist)' preference
* | | Refactor Dolby Atmos ImplementationRikrdoga2025-10-201-0/+1
| |/ |/|
* | Add a checkbox to settings that toggles the explicit symbol in track titlesTrubo2025-10-191-0/+1
|/
* ✨ Config options created for symlinking tracks and playlist creation.Robert Honz2024-12-161-0/+2
|
* ✨ Multithreaded downloads implemented (for Playlists, Albums etc.). Fixes #180Robert Honz2024-12-151-1/+1
|
* ✨ Album track number padding can be set. Fixes #142Robert Honz2024-12-151-1/+23
|
* ✨ Merge with master.Robert Honz2024-11-291-2/+2
|\
| * ✨ Removed complex skipping options in favor of a faster duplicates check / ↵Robert Honz2024-11-131-2/+2
| | | | | | | | skipping of already present items without download delay.
* | ✨ GUI login updated to device mode.Robert Honz2024-11-131-1/+1
| |
* | ✨ Backend and GUI changed to device login. Login dialog needs to be ↵Robert Honz2024-11-121-5/+7
|/ | | | threaded / non blocking.
* ✨ Options for album art added to GUI. Fixes #125Robert Honz2024-11-111-0/+2
|
* Since TIDAL has remove MQA (`HI_RES`), all traces of MQA have been removed here.Robert Honz2024-11-061-1/+0
|
* Added default path as an alternative path for empty user setting of an ↵Robert Honz2024-11-061-3/+11
| | | | option. FFmpeg path is `whiched` as an alternative path.
* 🛠️ Version Dialog: Behavior changed on auto / manual check.Robert Honz2024-05-031-2/+7
|
* 🛠️ Display dialog on manual version update check, if no new version ↵Robert Honz2024-04-251-0/+4
| | | | available.
* ✨ FLAC can be extracted from MP4 containers (see options). Downgrade on ↵Robert Honz2024-04-211-0/+2
| | | | HI_RES download is possible (see options). Fixes #93 #86
* 👷 Lint checker fixes.Robert Honz2024-04-031-1/+1
|
* 👷 Converted all Enums to StrEnumRobert Honz2024-04-021-2/+2
|
* ✨ Can explicitly set `ffmpeg` path.Robert Honz2024-03-291-28/+21
|
* ✨ Updates will be automatically checked on startup and can also be checked ↵Robert Honz2024-03-281-1/+35
| | | | manually. Version dialog is used to display update information. Fixes #76
* ✨ Version is correctly shown in PyInstaller running mode. Running the app ↵Robert Honz2024-03-261-2/+2
| | | | from source code points to dev config dir (`~/.config/tidal_dl_ng-dev`).
* 🛠️ Import fix. Fixes #69Robert Honz2024-03-221-1/+1
|
* ✨ Search for artists is possible.Robert Honz2024-03-221-13/+12
|
* 🛠️ Version will be shown correctly.Robert Honz2024-03-221-2/+2
|
* ✨ Downloader will check for FFmpeg before converting video files.Robert Honz2024-03-221-22/+50
|
* ✨ GUI user lists can be reloaded. Logout is possible.Robert Honz2024-02-051-1/+1
|
* ✨ Settings will be saved to file.Robert Honz2024-02-041-48/+64
|
* ✨ Preferences dialog added. Show settings.Robert Honz2024-02-041-5/+148
|
* ✨ Login URL will get wrapped.Robert Honz2024-02-031-1/+1
|
* ✨ Implemented login dialog for PKCE login method. Fixes #22.Robert Honz2024-02-011-1/+30
|
* ✨ Added version dialog. See File -> Version.Robert Honz2024-01-191-0/+19