<feed xmlns='http://www.w3.org/2005/Atom'>
<title>tidal-dl-ng/tidal_dl_ng/ui/dialog_settings.py, branch master</title>
<subtitle></subtitle>
<id>http://git.cashmere.rs/tidal-dl-ng/atom/tidal_dl_ng/ui/dialog_settings.py?h=master</id>
<link rel='self' href='http://git.cashmere.rs/tidal-dl-ng/atom/tidal_dl_ng/ui/dialog_settings.py?h=master'/>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/'/>
<updated>2025-12-03T10:41:18Z</updated>
<entry>
<title>Merge branch 'feature/json-downloaded' into fusion-refac-&amp;-info</title>
<updated>2025-12-03T10:41:18Z</updated>
<author>
<name>Warry</name>
<email>FunWarry@users.noreply.github.com</email>
</author>
<published>2025-12-03T10:41:18Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=c1d40619aa2aa44f5d967af9b5f47d040d6dc7dd'/>
<id>urn:sha1:c1d40619aa2aa44f5d967af9b5f47d040d6dc7dd</id>
<content type='text'>
# Conflicts:
#	.gitignore
#	README.md
#	tidal_dl_ng/gui.py
</content>
</entry>
<entry>
<title>feat: refactor settings UI with category navigation and add Delimiters page</title>
<updated>2025-11-30T14:37:32Z</updated>
<author>
<name>Warry</name>
<email>FunWarry@users.noreply.github.com</email>
</author>
<published>2025-11-30T14:37:32Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=121dbb788d051c76375261cd18fa8dca0f23b935'/>
<id>urn:sha1:121dbb788d051c76375261cd18fa8dca0f23b935</id>
<content type='text'>
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 &amp; 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
</content>
</entry>
<entry>
<title>refactor(gui): ✨ update album download options and improve session validation</title>
<updated>2025-10-22T19:52:20Z</updated>
<author>
<name>Robert Honz</name>
<email>exislow+github@gmail.com</email>
</author>
<published>2025-10-22T19:52:20Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=8f0c784187e55a7cd1015222a4347bf3fda14e90'/>
<id>urn:sha1:8f0c784187e55a7cd1015222a4347bf3fda14e90</id>
<content type='text'>
* 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.
</content>
</entry>
<entry>
<title>Merge pull request #596 from Winman486/fix/rate-limiting-playlist-downloads</title>
<updated>2025-10-22T19:38:30Z</updated>
<author>
<name>exislow</name>
<email>exislow@users.noreply.github.com</email>
</author>
<published>2025-10-22T19:38:30Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=b485292807a5c7f6c108acc63987bc28cc2c7624'/>
<id>urn:sha1:b485292807a5c7f6c108acc63987bc28cc2c7624</id>
<content type='text'>
Fix/rate limiting playlist downloads</content>
</entry>
<entry>
<title>Refactor Dolby Atmos Implementation</title>
<updated>2025-10-21T02:23:14Z</updated>
<author>
<name>Rikrdoga</name>
<email>ricardoga@outlook.com</email>
</author>
<published>2025-10-21T02:17:32Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=cb32c2fa8b2f5927fcc72c57fe4fec9a1e18dfb2'/>
<id>urn:sha1:cb32c2fa8b2f5927fcc72c57fe4fec9a1e18dfb2</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Merge upstream/master and resolve conflicts</title>
<updated>2025-10-20T21:12:46Z</updated>
<author>
<name>Winman486</name>
<email>harpsystems@gmail.com</email>
</author>
<published>2025-10-20T21:12:46Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=3c835c2d196f02871a1be23430223538bf2cd226'/>
<id>urn:sha1:3c835c2d196f02871a1be23430223538bf2cd226</id>
<content type='text'>
- 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)
</content>
</entry>
<entry>
<title>fix(cfg): 🐛 update `mark_explicit` default value and improve help text</title>
<updated>2025-10-20T06:20:20Z</updated>
<author>
<name>Robert Honz</name>
<email>exislow+github@gmail.com</email>
</author>
<published>2025-10-20T06:20:20Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=8c361249ed8b3caa504192dd37bd354ed04b20b7'/>
<id>urn:sha1:8c361249ed8b3caa504192dd37bd354ed04b20b7</id>
<content type='text'>
* Set default value of `mark_explicit` to `False`.
* Update help text to clarify that marking explicit tracks applies only to metadata.
</content>
</entry>
<entry>
<title>Add a checkbox to settings that toggles the explicit symbol in track titles</title>
<updated>2025-10-19T23:16:19Z</updated>
<author>
<name>Trubo</name>
<email>78948819+truubo@users.noreply.github.com</email>
</author>
<published>2025-10-19T23:16:19Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=240255088406d2e43b8e055a432c3063ad075fdc'/>
<id>urn:sha1:240255088406d2e43b8e055a432c3063ad075fdc</id>
<content type='text'>
</content>
</entry>
<entry>
<title>feat(gui): add 'Download Full Album', 'Download All Albums', and 'Single album folder (primary artist)' preference</title>
<updated>2025-10-17T20:17:02Z</updated>
<author>
<name>Winman486</name>
<email>harpsystems@gmail.com</email>
</author>
<published>2025-10-17T20:17:02Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=ac3bf51c56b79f2eb9bd8067927ee087a0de0fa7'/>
<id>urn:sha1:ac3bf51c56b79f2eb9bd8067927ee087a0de0fa7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>✨ Config options created for symlinking tracks and playlist creation.</title>
<updated>2024-12-16T07:14:39Z</updated>
<author>
<name>Robert Honz</name>
<email>exislow+github@gmail.com</email>
</author>
<published>2024-12-16T07:14:39Z</published>
<link rel='alternate' type='text/html' href='http://git.cashmere.rs/tidal-dl-ng/commit/?id=107afd5e3a4e756ed55105bdced3b540966e197e'/>
<id>urn:sha1:107afd5e3a4e756ed55105bdced3b540966e197e</id>
<content type='text'>
</content>
</entry>
</feed>
