Anki/qt/aqt
Damien Elmes ce243c2cae Simplify note adding and the deck/notetype choosers
The existing code was really difficult to reason about:

- The default notetype depended on the selected deck, and vice versa,
and this logic was buried in the deck and notetype choosing screens,
and models.py.
- Changes to the notetype were not passed back directly, but were fired
via a hook, which changed any screen in the app that had a notetype
selector.

It also wasn't great for performance, as the most recent deck and tags
were embedded in the notetype, which can be expensive to save and sync
for large notetypes.

To address these points:

- The current deck for a notetype, and notetype for a deck, are now
stored in separate config variables, instead of directly in the deck
or notetype. These are cheap to read and write, and we'll be able to
sync them individually in the future once config syncing is updated in
the future. I seem to recall some users not wanting the tag saving
behaviour, so I've dropped that for now, but if people end up missing
it, it would be simple to add as an extra auxiliary config variable.
- The logic for getting the starting deck and notetype has been moved
into the backend. It should be the same as the older Python code, with
one exception: when "change deck depending on notetype" is enabled in
the preferences, it will start with the current notetype ("curModel"),
instead of first trying to get a deck-specific notetype.
- ModelChooser has been duplicated into notetypechooser.py, and it
has been updated to solely be concerned with keeping track of a selected
notetype - it no longer alters global state.
2021-03-10 11:53:27 +10:00
..
data Remove explicit popperjs again, because it's included in bootstrap.bundle 2021-03-09 13:37:56 +01:00
forms Make clickable dyndeck labels fixed in size 2021-03-01 11:26:52 +01:00
__init__.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
about.py commit immediately when there's no active checkpoint 2021-03-10 11:47:53 +10:00
addcards.py Simplify note adding and the deck/notetype choosers 2021-03-10 11:53:27 +10:00
addons.py don't show routine update when not update_enabled 2021-03-09 22:27:28 +09:00
browser.py make flag changes in the reviewer undoable 2021-03-10 11:53:27 +10:00
BUILD.bazel winrt 1.0.20239.1 isn't available for python 3.9 2020-12-23 20:31:13 +10:00
clayout.py commit immediately when there's no active checkpoint 2021-03-10 11:47:53 +10:00
colors.py move remaining Filter button items into sidebar 2021-02-05 18:58:22 +10:00
customstudy.py tweak search wording and tidy up API 2021-02-11 19:57:19 +10:00
dbcheck.py nest progress messages and remove Python wrapper class 2021-02-08 16:40:27 +10:00
deckbrowser.py catch attempts to nest under a filtered deck; don't show traceback 2021-03-01 09:58:12 +10:00
deckchooser.py Simplify note adding and the deck/notetype choosers 2021-03-10 11:53:27 +10:00
deckconf.py minor code cleanups with pyupgrade 2021-02-11 09:43:40 +10:00
dyndeckconf.py Make clickable dyndeck labels fixed in size 2021-03-01 11:26:52 +01:00
editcurrent.py commit immediately when there's no active checkpoint 2021-03-10 11:47:53 +10:00
editor.py Simplify note adding and the deck/notetype choosers 2021-03-10 11:53:27 +10:00
emptycards.py nest NoteWithEmptyCards 2021-02-08 19:11:16 +10:00
errors.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
exporting.py minor code cleanups with pyupgrade 2021-02-11 09:43:40 +10:00
fields.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
gui_hooks.py fix qt/ pylints 2021-01-07 16:21:50 +10:00
hooks_gen.py symlink generated .py/.pyi into tree to fix Python code completion 2020-12-16 11:36:42 +10:00
importing.py Simplify note adding and the deck/notetype choosers 2021-03-10 11:53:27 +10:00
legacy.py minor code cleanups with pyupgrade 2021-02-11 09:43:40 +10:00
main.py Simplify note adding and the deck/notetype choosers 2021-03-10 11:53:27 +10:00
mediacheck.py tweak search wording and tidy up API 2021-02-11 19:57:19 +10:00
mediasrv.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
mediasync.py nest progress messages and remove Python wrapper class 2021-02-08 16:40:27 +10:00
modelchooser.py Simplify note adding and the deck/notetype choosers 2021-03-10 11:53:27 +10:00
models.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
mpv.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
notetypechooser.py Simplify note adding and the deck/notetype choosers 2021-03-10 11:53:27 +10:00
overview.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
pinnedmodules.py fix rsbackend compat issues 2021-02-08 09:51:51 +10:00
platform.py turn top bar dark when night mode enabled on macOS 2021-02-04 19:19:56 +10:00
preferences.py remove unnecessary setMod() calls 2021-03-10 11:47:53 +10:00
previewer.py remove unnecessary setMod() calls 2021-03-10 11:47:53 +10:00
profiles.py Revert "add escape hatch for new clicking behaviour, in case it causes problems" 2021-02-11 10:10:45 +10:00
progress.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
py.typed mark anki and aqt modules as having typing info 2020-01-13 13:03:37 +10:00
qt.py more typing updates 2021-02-02 23:31:55 +10:00
reviewer.py make flag changes in the reviewer undoable 2021-03-10 11:53:27 +10:00
scheduling.py add ability to force interval reset 2021-02-08 22:33:27 +10:00
schema_change_tracker.py add a bunch of return types 2021-02-01 23:53:23 +10:00
sidebar.py catch attempts to nest under a filtered deck; don't show traceback 2021-03-01 09:58:12 +10:00
sound.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
stats.py commit immediately when there's no active checkpoint 2021-03-10 11:47:53 +10:00
studydeck.py Merge pull request #1040 from RumovZ/deck-name-err 2021-03-01 09:40:55 +10:00
sync.py nest progress messages and remove Python wrapper class 2021-02-08 16:40:27 +10:00
tagedit.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
taglimit.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
taskman.py more typing updates 2021-02-02 23:31:55 +10:00
theme.py minor code cleanups with pyupgrade 2021-02-11 09:43:40 +10:00
toolbar.py minor code cleanups with pyupgrade 2021-02-11 09:43:40 +10:00
tts.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
update.py more typing updates 2021-02-02 23:31:55 +10:00
utils.py Catch DeckIsFilteredError directly on frontend 2021-02-26 11:32:40 +01:00
webview.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00
wheel_description.txt move aqt_data into source folder; implement wheel building 2020-11-04 12:14:03 +10:00
winpaths.py convert qt strings to f-strings with flynt 2021-02-11 10:09:06 +10:00