anki/qt/aqt
Damien Elmes dac532953e
Refactor progress handling (#2549)
Previously it was Backend's responsibility to store the last progress,
and when calling routines in Collection, one had to construct and pass
in a Fn, which wasn't the most ergonomic. This PR adds the last progress
state to the collection, so that the routines no longer need a separate
progress arg, and makes some other tweaks to improve ergonomics.

ThrottlingProgressHandler has been tweaked so that it now stores the
current state, so that callers don't need to store it separately. When
a long-running routine starts, it calls col.new_progress_handler(),
which automatically initializes the data to defaults, and updates the
shared UI state, so we no longer need to manually update the state at
the start of an operation.

The backend shares the Arc<Mutex<>> with the collection, so it can get
at the current state, and so we can update the state when importing a
backup.

Other tweaks:

- The current Incrementor was awkward to use in the media check, which
uses a single incrementing value across multiple method calls, so I've
added a simpler alternative for such cases. The old incrementor method
has been kept, but implemented directly on ThrottlingProgressHandler.
- The full sync code was passing the progress handler in a complicated
way that may once have been required, but no longer is.
- On the Qt side, timers are now stopped before deletion, or they keep
running for a few seconds.
- I left the ChangeTracker using a closure, as it's used for both importing
and syncing.
2023-06-19 13:48:32 +10:00
..
browser Disable Toggle Bury when nothing is selected (#2529) 2023-05-31 13:47:43 +10:00
data Ensure sync spinner spins when reduce motion is on 2023-03-26 14:49:49 +10:00
forms Make stats title translatable 2023-06-07 16:25:35 +10:00
import_export Fix inability to import csv when path contains single quote 2023-05-18 11:50:34 +10:00
operations Add ability to restore a notetype to its original configuration (#2472) 2023-04-18 14:07:51 +10:00
qt Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
__init__.py Only apply Wayland workaround in Wayland path 2023-05-29 19:07:54 +10:00
_macos_helper.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
about.py fix stats calendar incorrect due to daylight savings time (#2456) 2023-03-28 15:35:06 +10:00
addcards.py add shortcut to close addcards window (#2031) 2022-08-31 20:09:09 +10:00
addons.py Add add-on installation hooks (#2523) 2023-05-29 19:47:49 +10:00
changenotetype.py Update Python deps 2023-03-31 14:04:05 +10:00
clayout.py V -> ValueType 2023-04-19 16:43:23 +10:00
colors.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
customstudy.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
dbcheck.py Backup improvements (#1728) 2022-03-21 19:40:42 +10:00
debug_console.py Improve debug console (#2435) 2023-03-15 15:29:05 +10:00
deckbrowser.py Remove duplicate renderPage invocation 2023-06-07 16:10:35 +10:00
deckchooser.py Make dialogs non-blocking (#1650) 2022-02-10 09:53:13 +10:00
deckconf.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
deckdescription.py Update Python deps 2023-03-31 14:04:05 +10:00
deckoptions.py Rework & unify webview identification and title setting (#2366) 2023-02-10 14:53:11 +10:00
editcurrent.py PEP8 editorMode 2022-01-12 15:01:43 +10:00
editor.py Fix two issues that can cause editor fields to behave incorrectly (#2540) 2023-06-14 09:38:06 +10:00
emptycards.py Rework & unify webview identification and title setting (#2366) 2023-02-10 14:53:11 +10:00
errors.py Fix "Add-ons possibly involved" message never appearing on Windows (#2536) 2023-06-07 15:09:18 +10:00
exporting.py Add deck/collection export hooks (#1971) 2022-07-22 12:45:47 +10:00
fields.py Add option to exclude fields from search (#2394) 2023-03-20 07:46:03 +10:00
filtered_deck.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
flags.py Introduce new color palette using Sass maps (#2016) 2022-09-16 14:11:18 +10:00
gui_hooks.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
importing.py Update Python deps 2023-03-31 14:04:05 +10:00
legacy.py Import submodules directly (#1662) 2022-02-13 13:40:47 +10:00
main.py Ensure there's no duplicate shortcuts after running state_shortcuts_will_change (#2509) 2023-05-22 14:07:15 +10:00
mediacheck.py Refactor progress handling (#2549) 2023-06-19 13:48:32 +10:00
mediasrv.py Migrate to protobuf-es (#2547) 2023-06-14 22:47:37 +10:00
mediasync.py Refactor progress handling (#2549) 2023-06-19 13:48:32 +10:00
modelchooser.py Add callback and non-blocking option to StudyDeck (#1643) 2022-02-07 22:05:59 +10:00
models.py Update Python deps 2023-03-31 14:04:05 +10:00
mpv.py Fix two mpv issues on Windows (#2294) 2023-01-03 11:59:39 +10:00
notetypechooser.py Make dialogs non-blocking (#1650) 2022-02-10 09:53:13 +10:00
overview.py Do not append description button for filtered deck (#2266) 2022-12-11 15:03:11 +10:00
package.py Another attempt at fixing missing cacert.pem 2022-12-30 15:30:53 +10:00
preferences.py Move answer keys to right of dialog to reduce vertical space 2023-05-20 17:37:55 +10:00
profiles.py Allow the user to configure answer keys (#2502) 2023-05-18 17:47:51 +10:00
progress.py Refactor progress handling (#2549) 2023-06-19 13:48:32 +10:00
props.py Move away from Bazel (#2202) 2022-11-27 15:24:20 +10:00
py.typed
reviewer.py Migrate to protobuf-es (#2547) 2023-06-14 22:47:37 +10:00
schema_change_tracker.py Add ability to restore a notetype to its original configuration (#2472) 2023-04-18 14:07:51 +10:00
sound.py Log mpv invocation failure for debugging 2023-05-11 14:47:23 +10:00
stats.py Update Python deps 2023-03-31 14:04:05 +10:00
studydeck.py Fix new deck not being selected (#1681) 2022-02-22 21:51:23 +10:00
stylesheets.py Workaround Ubuntu ignoring tooltip palette in dark mode 2023-05-31 15:19:10 +10:00
switch.py Auto-hide toolbar in Reviewer (#2262) 2023-01-09 14:39:31 +10:00
sync.py Rework syncing code, and replace local sync server (#2329) 2023-01-18 12:43:46 +10:00
tagedit.py switch to new-style PyQt scoped enums and Qt6 2021-10-15 12:57:19 +10:00
taglimit.py Move custom study tag and limit gathering+saving into the backend 2022-03-10 16:23:03 +10:00
taskman.py Add apkg import/export on backend (#1743) 2022-05-02 21:12:46 +10:00
theme.py Apply Latin1 fix to other platforms 2023-05-31 16:41:12 +10:00
toolbar.py Update Python deps 2023-03-31 14:04:05 +10:00
tts.py Revert backwards incompatible changes to TTSVoice (#2378) 2023-02-20 17:43:18 +10:00
undo.py fix redo menu item showing undo text 2021-08-04 10:28:45 +10:00
update.py Update Python deps 2023-03-31 14:04:05 +10:00
utils.py Store separate state/geometry for each Qt minor version 2023-05-18 10:04:30 +10:00
webview.py Fix confusion of reduce_motion with minimalist_mode (#2413) 2023-03-06 18:15:43 +10:00
widgetgallery.py Improve debug console (#2435) 2023-03-15 15:29:05 +10:00
winpaths.py run pyupgrade over codebase [python upgrade required] 2021-10-04 15:05:48 +10:00