Commit graph

10460 commits

Author SHA1 Message Date
Damien Elmes
c6df1e5fe7 Fix entire collection being used to calculate weights 2023-09-24 19:42:50 +10:00
Damien Elmes
84cf4349a3 QtQml was also required 2023-09-24 16:42:26 +10:00
Damien Elmes
3bc97a1beb Update Qt for Mac bundle 2023-09-24 16:24:11 +10:00
Damien Elmes
d3b8092b51 Update translations 2023-09-24 14:31:12 +10:00
Damien Elmes
dc6aeafeff Strip out v1/v2 code 2023-09-24 14:27:40 +10:00
Damien Elmes
921416a263 Enable new exporter by default 2023-09-24 13:10:16 +10:00
Damien Elmes
48f643485c Use memory state to calculate relative overdueness 2023-09-24 13:07:11 +10:00
Damien Elmes
bdeca36234 When calculating retrievability, use stability instead of fuzzed interval 2023-09-24 12:53:05 +10:00
Damien Elmes
fc83f8d3cc Support fetching new cards by deck then random note
https://forums.ankiweb.net/t/feature-request-option-for-new-card-gather-order-that-prioritizes-subdecks-closer-to-top-but-gathers-cards-randomly-from-each-subdeck/23178
2023-09-24 11:54:10 +10:00
Damien Elmes
d2a00948ef Use FSRS difficulty when sorting by ease 2023-09-23 16:20:36 +10:00
Damien Elmes
57941e499a Allow extracting desired retention 2023-09-23 16:11:35 +10:00
Damien Elmes
af171c96d7 Gate graph display on fsrs status 2023-09-23 15:59:02 +10:00
Damien Elmes
0b84905c85 Avoid excessive floating point precision when serializing 2023-09-23 15:50:10 +10:00
Damien Elmes
3d59a0eebe Store desired retention in card data
If we want to be able to factor the desired retention into a sort based
on relative overdueness, having the values accessible on the card makes
things easier.
2023-09-23 15:42:42 +10:00
Damien Elmes
0f899efea7 Convert FSRS to a global option
Allowing some decks to be FSRS and some SM-2 will lead to confusing
behavior when sorting on SM-2 or FSRS-specific fields, or when moving
cards between decks.
2023-09-23 14:41:55 +10:00
Damien Elmes
d98a7e7551 Add warning about all clients needing to support FSRS 2023-09-23 14:05:28 +10:00
Damien Elmes
f0802da152 Update FSRS 2023-09-23 14:05:28 +10:00
Abdo
6f0d76d647 Support Qt.TextFormat.MarkdownText in aqt.utils (#2675) 2023-09-23 14:04:25 +10:00
Abdo
a3c7a07a96 Add an option to stop the timer on answer (#2673)
* Add an option to stop the timer on answer

* Fix tab order
2023-09-23 14:01:03 +10:00
Damien Elmes
318a729ef3 Clear internal field after pasting
https://forums.ankiweb.net/t/copy-paste-of-screenshots-dont-work-once-i-copy-the-text-on-the-anki-app/34839
2023-09-22 13:05:52 +10:00
Abdo
df8b439200 Skip template checks in Fields screen (#2670) 2023-09-20 16:09:54 +10:00
Abdo
1d07731549 Fix error when closing Find Duplicates screen early (#2669) 2023-09-20 16:03:46 +10:00
Damien Elmes
e1216a4a73 Apply Svelte typing fix from Abdo
https://github.com/ankitects/anki/issues/2629#issuecomment-1724740151
2023-09-20 16:02:27 +10:00
Damien Elmes
b96cf1a112 Add a "no image found on clipboard" string
For #2664 and AnkiMobile
2023-09-20 15:48:52 +10:00
Damien Elmes
1117c210be Update translations 2023-09-20 15:25:02 +10:00
Damien Elmes
adc8049d53 Allow saving state on Qt 6
It seems to work normally in Qt 6.5 (which has no tab support).

Previous issue: #1538.
2023-09-20 14:16:12 +10:00
Abdo
7e9da6482f Fix intermittent browser error triggered by an early resize event (#2671) 2023-09-20 13:54:40 +10:00
Damien Elmes
f441462312 Pull in weight clipping fix 2023-09-20 13:17:27 +10:00
Damien Elmes
be725dca11 Fix crash when using FSRS with a low max interval setting 2023-09-20 13:14:03 +10:00
Damien Elmes
783172fb59 Fix "Add" button showing when editing I/O note; hide toast 2023-09-19 14:19:51 +10:00
Damien Elmes
ac79aaeca2 Hide show/close buttons on mobile
iOS can't handle text fields that are potentially megabytes big, and
the close button is superfluous
2023-09-19 13:14:54 +10:00
Damien Elmes
cafba25f4c Calculate parameters automatically
Logic derived from d8e2f6a0ff

Closes #2661
2023-09-18 16:43:36 +10:00
Sam Waechter
2e99c71464 Fix unable to save field dialog if certain fields are deleted (#2663)
* Fix unable to save field dialog if certain fields are deleted

Implemented solution suggested in issue #2556

* Fix unable to save field dialog if certain fields are deleted

fixed code formating

* Fix unable to save field dialog if certain fields are deleted

Made new functions to check referencelessness.  Added unit test.
2023-09-18 14:33:56 +10:00
Damien Elmes
41220ea61b Use field tags instead of hard-coding occlusion fields
+ Don't protect the comments field

It's not required by our current code. We can remove the protection
from Header and Back Extra in the future too, once we no longer depend
on them.

Closes #2621
2023-09-18 10:10:11 +10:00
Damien Elmes
125d0a2ad0 Add tags in DB check 2023-09-17 15:00:28 +10:00
Damien Elmes
b201feea69 Protect image occlusion fields and cloze field 2023-09-17 14:22:25 +10:00
Damien Elmes
581c7c87f1 Add support for tagging + protecting fields 2023-09-17 14:03:42 +10:00
Damien Elmes
e8860df59b Remove the fields_web experiment 2023-09-17 13:48:48 +10:00
Damien Elmes
a13879021a Update fsrs-rs for updated burn pin 2023-09-17 13:38:21 +10:00
Damien Elmes
a1756ea771 Start on a 'get params' button 2023-09-17 12:58:13 +10:00
Damien Elmes
e04c4957d7 Fix preset searches, and expose in text search 2023-09-17 12:51:22 +10:00
Damien Elmes
8e2569fd66 Fix mask editor disappearing when saveNow() called
Closes #2619
2023-09-17 11:51:48 +10:00
Damien Elmes
85aecdc8cf Remove the separate chevron in all/one selector 2023-09-17 11:51:48 +10:00
Damien Elmes
039b798631 Remove select image button in I/O
Closes #2620
2023-09-17 11:51:48 +10:00
Damien Elmes
b5675a6f1b Bump version to 23.10
A stable release before October is unlikely at this point
2023-09-17 11:51:47 +10:00
Damien Elmes
02a823c846 Clear memory state when user disables FSRS 2023-09-17 11:50:38 +10:00
Damien Elmes
608769ff75 Record FSRS difficulty in the review log
Will allow user to see a record of difficulty changes, and allows us
to identify reviews that have been done with FSRS vs SM-2, since the
valid range is different.
2023-09-17 11:50:38 +10:00
Damien Elmes
551de34f73 fsrs_memory_state -> memory_state 2023-09-17 11:50:38 +10:00
Damien Elmes
41bcb20f1e Integrate FSRS into Anki (#2654)
* Pack FSRS data into card.data

* Update FSRS card data when preset or weights change

+ Show FSRS stats in card stats

* Show a warning when there's a limited review history

* Add some translations; tweak UI

* Fix default requested retention

* Add browser columns, fix calculation of R

* Property searches

eg prop:d>0.1

* Integrate FSRS into reviewer

* Warn about long learning steps

* Hide minimum interval when FSRS is on

* Don't apply interval multiplier to FSRS intervals

* Expose memory state to Python

* Don't set memory state on new cards

* Port Jarret's new tests; add some helpers to make tests more compact

https://github.com/open-spaced-repetition/fsrs-rs/pull/64

* Fix learning cards not being given memory state

* Require update to v3 scheduler

* Don't exclude single learning step when calculating memory state

* Use relearning step when learning steps unavailable

* Update docstring

* fix single_card_revlog_to_items (#2656)

* not need check the review_kind for unique_dates

* add email address to CONTRIBUTORS

* fix last first learn & keep early review

* cargo fmt

* cargo clippy --fix

* Add Jarrett to about screen

* Fix fsrs_memory_state being initialized to default in get_card()

* Set initial memory state on graduate

* Update to latest FSRS

* Fix experiment.log being empty

* Fix broken colpkg imports

Introduced by "Update FSRS card data when preset or weights change"

* Update memory state during (re)learning; use FSRS for graduating intervals

* Reset memory state when cards are manually rescheduled as new

* Add difficulty graph; hide eases when FSRS enabled

* Add retrievability graph

* Derive memory_state from revlog when it's missing and shouldn't be

---------

Co-authored-by: Jarrett Ye <jarrett.ye@outlook.com>
2023-09-16 16:09:26 +10:00
Abdo
85314f263f Add a backend method to add notes in bulk (#2659)
* Add a backend method to add notes in bulk

* i -> idx

* Remove duplicate assignment

* Allow add_notes to work with multiple deck IDs

* Rename note_deck_id to requests
2023-09-16 13:51:32 +10:00