Add go to previous random image #27
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a great project! Thank you!
This PR allows moving backward in the random sequence by using a reversible random generator. It adds a
Previous Random Fileaction and allows setting keyboard shortcut for it. It replaces the QT random generator with a reversible one. Random navigation algorithm is fairly simple: We keep two arrays sized to the number of files in the folder:To get next/previous random index: Compute i = positions[current-index], then i = (i ± 1) % N, and take permutation[i].
The permutation is reinitialized with a different random seed at application startup or whenever the number of files in the folder changes. Since we use a permutation of 0 through N−1, all images are guaranteed to be visited before the sequence repeats.
Overhead: Two integer arrays of length N. Assuming 32-bit ints, that’s N * 4 * 2 bytes. For 10’000 files ~ 78 KB, which is negligible.
The random generator is put in
qvrandom.h/.cppfiles.