Warry
121dbb788d
feat: refactor settings UI with category navigation and add Delimiters page
...
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
2025-11-30 15:37:32 +01:00
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
Trubo
2402550884
Add a checkbox to settings that toggles the explicit symbol in track titles
2025-10-19 18:16:19 -05:00
Robert Honz
107afd5e3a
✨ Config options created for symlinking tracks and playlist creation.
2024-12-16 08:14:39 +01:00
Robert Honz
5768edacc5
✨ Multithreaded downloads implemented (for Playlists, Albums etc.). Fixes #180
2024-12-15 23:35:10 +01:00
Robert Honz
b8091e233b
✨ Album track number padding can be set. Fixes #142
2024-12-15 20:37:06 +01:00
Robert Honz
c1a102f646
✨ Removed complex skipping options in favor of a faster duplicates check / skipping of already present items without download delay.
2024-11-13 09:09:00 +01:00
Robert Honz
24d75a7c20
✨ Options for album art added to GUI. Fixes #125
2024-11-11 10:17:40 +01:00
Robert Honz
f41d65d7d3
Since TIDAL has remove MQA (HI_RES), all traces of MQA have been removed here.
2024-11-06 15:01:18 +01:00
Robert Honz
b07c3374b2
✨ FLAC can be extracted from MP4 containers (see options). Downgrade on HI_RES download is possible (see options). Fixes #93 #86
2024-04-21 19:18:05 +02:00
Robert Honz
77ef9ef75e
✨ Can explicitly set ffmpeg path.
2024-03-29 11:17:30 +01:00
Robert Honz
4ed2a67e4c
✨ GUI user lists can be reloaded. Logout is possible.
2024-02-05 06:31:18 +01:00
Robert Honz
c71a2bdb0b
✨ Preferences dialog added. Show settings.
2024-02-04 12:19:40 +01:00