Skip to content

FEAT: Add 'Always uncompress entire archive' option - #368

Merged
Ruben2776 merged 1 commit into
Ruben2776:devfrom
ScottRFrost:AlwaysUncompressEntireArchive
Aug 7, 2026
Merged

FEAT: Add 'Always uncompress entire archive' option#368
Ruben2776 merged 1 commit into
Ruben2776:devfrom
ScottRFrost:AlwaysUncompressEntireArchive

Conversation

@ScottRFrost

@ScottRFrost ScottRFrost commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

This is my first PR for this repo, let me know if you want anything changed.

Description

  • Introduce a new Navigation setting AlwaysUncompressEntireArchive with a toggle in the Navigation settings UI and localization entries for all languages.

  • ArchiveExtractionService now supports fully extracting an archive when the setting is enabled (async extraction, safer error handling, and improved cleanup).

  • NavigationService updated to detect archives, seed iterators, handle side-by-side preloading, and kick off background extraction.

  • UI improvements: show/hide loading indicator during file/archive open (FilePicker, DragAndDrop).

  • Added search tags/indexing, wired settings and translation viewmodels,

  • Fixed EvictingDictionary.TryAdd call signature (new required parameter)

  • Added unit tests for full-extract behavior and sequential archive cleanup.

Motivation and Context

Loading .cbz / .cbr from a network drive was very slow, with 1/2 second per page change, even over wired 1gbit. This optional (defaulted off) change will uncompress the entire archive during loading, so you can page through with no lag.

How Has This Been Tested?

Yes, all tests pass and it was manually verified in the UI. New unit tests have been added to cover.

Screenshots (if appropriate):

image

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

Introduce a new Navigation setting AlwaysUncompressEntireArchive with a toggle in the Navigation settings UI and localization entries for all languages. ArchiveExtractionService now supports fully extracting an archive when the setting is enabled (async extraction, safer error handling, and improved cleanup). NavigationService updated to detect archives, seed iterators, handle side-by-side preloading, and kick off background extraction. UI improvements: show/hide loading indicator during file/archive open (FilePicker, DragAndDrop). Added search tags/indexing, wired settings and translation viewmodels, fixed EvictingDictionary.TryAdd call signature, and added unit tests for full-extract behavior and sequential archive cleanup.
@Ruben2776

Copy link
Copy Markdown
Owner

Looks great. Thank you very much!

@Ruben2776
Ruben2776 merged commit 87e632c into Ruben2776:dev Aug 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants