Commit graph

622 commits

Author SHA1 Message Date
Loudwig
bf809d5e1f Feature Show Reminder before answer (#3064) (#3119)
* Feature Question Action Show Reminder (#3064)

Added a option in the deck config that allow the user to choose in
Autoupdate mode between showing a reminder or revealing the card.
Also added my name to the contributors

* Update ftl/core/deck-config.ftl
2024-04-13 08:39:50 +01:00
user1823
0909c8439f Optimum → Minimum retention (#3133)
This was missed in https://github.com/ankitects/anki/pull/3129.
2024-04-11 14:49:45 +01:00
Damien Elmes
16ce169a00 Update translations 2024-04-11 14:09:34 +07:00
Damien Elmes
9826651afd Fix casing of 'historical retention' 2024-04-11 14:09:16 +07:00
Antoine Q
8837f4b13f Update deck-config.ftl to clarify what optimal retention means (#3129)
* Update deck-config.ftl to clarify what optimal retention means

Renaming “Optimal retention” to “Minimum recommended retention"

* Update deck-config.ftl 

Removing "Predicted" in deck-config-predicted-optimal-retention

* Update deck-config.ftl

Updating keys

* Update ftl/core/deck-config.ftl

Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
2024-04-10 10:29:30 +01:00
Damien Elmes
28750f0d9b Update translations 2024-04-04 15:36:31 +07:00
Damien Elmes
b2b072e40d Forgot->Reset 2024-04-04 15:36:19 +07:00
Damien Elmes
5b33a95801 Update translations 2024-03-31 13:57:06 +07:00
Jarrett Ye
63d7d92fb4 rename sm2 retention to historical retention (#3101)
* rename sm2 retention to historical retention

* ninja format

* keep sm2_retention in DeckConfSchema11

* update wording

* Update schema11.rs
2024-03-29 09:34:26 +00:00
Damien Elmes
890909e9ae Update translations 2024-03-28 16:02:47 +07:00
Damien Elmes
8362ad5345 Update optimal retention tooltip, and add a few extra translations 2024-03-28 16:02:05 +07:00
Damien Elmes
bfbd030ba6 Update translations 2024-03-25 16:44:52 +07:00
RumovZ
8caa473214 Fix summary string for notes failed to be imported (#3092) 2024-03-25 09:41:42 +00:00
vasll
4021e67dc8 Refactored "Forget" to "Reset" (#3078) (#3088)
The respective *.ftl file keys `actions-forget-card` and `qt-accel-forget` will keep the same name to prevent having to force a retranslation for other languages, only the string value was changed
2024-03-24 07:41:56 +00:00
Damien Elmes
f20181d899 Update translations, and full sync -> one-way sync 2024-03-21 10:17:24 +07:00
Damien Elmes
55abbcf3ee Update translations 2024-03-20 12:57:30 +07:00
Damien Elmes
e21159eff2 Update translations 2024-03-17 20:13:09 +07:00
Pedro Schreiber
3011e4e947 Display deck names when deleting (#3058)
* -  update remove decks function to return names of all deleted decks
- update protobuf message to display deck names
- update python files to receive message in the frontend.
- add message template to ftl

* update CONTRIBUTORS

* format

* refactor: move up deck names concatenation to tooltip api call
to fix type expectations

* restore core behavior and get deck name from view

* fix type specs

* remove new type and use str instead
restore incorrectly removed lines
2024-03-13 12:29:06 +07:00
Jarrett Ye
11423405d5 refactor optimal retention to minimize workload per memorization & fix progress goes backwards (#3065)
* Feat/optimal retention for minimal workload per memorization

* ./ninja fix:minilints

* update to FSRS-rs 0.5.2

* update to FSRS-rs 0.5.3

* ./ninja fix:minilints

* 'estimated retention' -> 'predicted optimal retention'; add warning (dae)
2024-03-11 16:16:37 +07:00
arbyste
78e90f22dc Adding a note to the import options to indicate that leech and marked tags will be removed if disabled (#3067)
* Adding a note to the import options to indicate that leech and marked tags will be removed if not enabled.

* Adding my details to CONTRIBUTORS
2024-03-11 15:45:28 +07:00
Damien Elmes
65410e68c8 Update translations 2024-03-09 17:36:44 +07:00
Abdo
e64f72f91c Show preset and original deck in card info (#3055)
* Show preset and original deck in card info

* Make original_deck optional
2024-03-07 07:47:55 +00:00
Damien Elmes
8777aa754c Clone "added" string for importing
https://forums.ankiweb.net/t/inquiry-about-adding-one-more-string-for-added/41998
2024-03-07 12:03:12 +07:00
Damien Elmes
116f786d1d Update translations 2024-03-07 11:57:54 +07:00
Damien Elmes
895842c2c8 Update translations 2024-02-28 15:37:25 +07:00
Abdo
2332a6ee1e Show message if current FSRS parameters are optimal (#3014)
* Show message if current FSRS parameters are optimal

* Fix message shown with default parameters

* Use alert()
2024-02-22 11:09:17 +07:00
Luc Mcgrady
291342ea2c FSRS - Ignore revlogs before date while optimizing (#2922)
* Added: Date input button

* Added: ignoreDate to config

* Added: Backend

* Optimize function passes value

* Fix: Spelling

* Moved: filter logic from revlog_for_srs to update_memory_state

* fmt

* Copyright header

* ./check

* Fix: Test

* Renamed: Ignore_date -> Ignore_before_date

* Neaten parameters

* evaluate weights

* ./check

* Optimize all presets

* Added: Label localizations

* Removed globe label

* Added: Tooltip

* Changed error type

* fmt

* Moved filter to own function

* missing function call replacement

* Fix: Typo

* Apply suggestions from code review

Co-authored-by: Damien Elmes <dae@users.noreply.github.com>

* timestamp * 1000 -> timestamp_millis

* ignoreBefore -> ignore_before

* clarified ignore_before variables

* i64 -> TimestampMillis

* Un-traitified remove_revlogs_before

* Added: ms == 0 guard

* Added: Ignore_before affects scheduling

* Moved filter to fsrs_items_for_training

* removed filter from revlog_for_srs

* Tuple -> UpdateMemoryStateEntry

* Removed unused function

* Removed superfluous _ms from variables

* cid -> id

* Different ignore method

* Added: Unit test

* cid -> id

* Test: Exact ms edge case

* ./check

* Fix: re-learns could be before ignore date in cards without learning steps

* getignoreRevlogsBeforeMs -> getIgnoreRevlogsBeforeMs

* Removed pub(crate)

* Clarified unit test

* last_learn_entry -> first_of_last_learn_entries

* @user1823's method

* IOS fix

* ./check

* Fix: width defined twice
2024-02-22 11:01:10 +07:00
Damien Elmes
78902802f1 Update translations 2024-02-13 11:59:16 +10:00
Lucas Scharenbroch
57c3726650 Add log-in button to preferences screen (#2994)
* Add log-in button to preferences screen

* Fix to python to conform to linter

* Add translations for log in/out

* Clean up whitespace/naming

* Move translations from python to qt forms

* Remove sync-not-enabled text on prefs screen

* Add my name to about.py

* Add "sync now?" dialog upon successful login

* Close preferences dialog before syncing

* Yet another Qt 6.6.1 focus fix (dae)

Like 07017a4a8e
2024-02-12 16:29:16 +10:00
Jarrett Ye
f76763b10e update FSRS to v0.2.0 (#2977)
* update FSRS to v0.2.0

* update comments

* ./ninja fix:minilints

* 1000 -> 400 in translation (dae)
2024-01-30 16:27:12 +10:00
Mani
09d87f171e add select all tool (#2981)
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
2024-01-30 15:43:15 +10:00
Damien Elmes
ffb51986a6 Tweak 'optimize all' hint
https://forums.ankiweb.net/t/move-optimize-all-presets-next-to-optimize/39684/6
2024-01-29 09:35:02 +10:00
Damien Elmes
a1fd74e187 Update translations 2024-01-25 13:08:23 +10:00
Damien Elmes
41db648a36 Clarify a translation string 2024-01-25 13:08:11 +10:00
Harvey R
788f16e8f2 Americanize "synchronisation" (#2935)
* Americanize "synchronisation"

* Update CONTRIBUTORS

* Add name to CONTRIBUTORS

* Americanize "synchronisation"

* Revert change

* Revert change to key name
2024-01-23 14:06:52 +10:00
Damien Elmes
007cfb2c9c Update translations 2024-01-18 11:00:01 +10:00
Damien Elmes
37caa2d9fd Update translations 2024-01-12 15:18:29 +10:00
Damien Elmes
ee05094e57 Check review count up front
https://forums.ankiweb.net/t/inconsistent-number-of-reviews-when-clicking-optimize/39275/7
2024-01-08 14:05:09 +10:00
Abdo
f807ac2a81 Use our translation of 'Discard' (#2920)
* Use our translation of 'Discard'

* Update qt/aqt/utils.py (dae)
2024-01-01 14:20:31 +10:00
Damien Elmes
d9d5dd20f2 Update translations 2023-12-28 18:19:29 +10:00
RumovZ
54b21bdeaa Cloze notetype merges (#2912)
* Abort when trying to match notetypes of different kinds

* Skip merging templates if target is cloze
2023-12-28 18:01:23 +10:00
user1823
a764f008c5 Improve description of stability in Stats (#2910) 2023-12-27 13:07:08 +10:00
Damien Elmes
7e66976cd1 Update translations 2023-12-25 09:40:51 +10:00
Abdo
549f6f55a9 Improve confirmation message in Add screen (#2903) 2023-12-24 15:22:59 +10:00
Damien Elmes
b5270716b5 Update translations 2023-12-22 14:19:06 +10:00
Damien Elmes
ac458609c4 Update translations 2023-12-18 13:20:17 +10:00
user1823
e29c9cd81a Correct the description of FSRS Difficulty in Stats (#2888)
* Correct the description of FSRS difficulty

* Update DifficultyGraph.svelte

* Update statistics.ftl
2023-12-14 12:48:58 +10:00
Damien Elmes
40fe8fc0c8 Update translations 2023-12-13 09:23:46 +10:00
Gustaf-C
507f2c8ccf Add hint for zero minutes in filtered deck (#2887) 2023-12-13 09:07:09 +10:00
Gustaf-C
6f5ed40ff0 Change link to manual in help screen from icon to text (#2886)
* Change help screen link to manual from icon to text

* Fix auto advance manual link (dae)
2023-12-13 09:03:05 +10:00
Damien Elmes
c7162781c0 Move globe icon into separate Svelte file
Confirmed correct layout in RTL mode.

I experimented with adding a tooltip as well, as suggested in
https://forums.ankiweb.net/t/anki-23-12-beta/37771/82, but it's
confusing as we already change the mouse cursor/underline when the user
hovers over a label. Given the help text universally starts with
"affects the entire collection", I think that's good enough.
2023-12-12 12:33:31 +10:00
Damien Elmes
60f2b23ae7 Show tooltip when auto-advance enabled/disabled 2023-12-11 14:43:12 +10:00
Damien Elmes
a9f70b64e3 Give a hint about optimizing all presets 2023-12-11 14:27:17 +10:00
Damien Elmes
907fa891d6 Split "auto advance" into a separate section 2023-12-11 13:47:34 +10:00
Damien Elmes
7e27f8a72a Invert seconds to show question/answer; tweak wording
The previous wording could be interpreted as 'time until showing question'
or 'time that question should be shown'. I'd intended the latter, and
I didn't notice that the original implementation was doing the former.
2023-12-11 13:40:44 +10:00
Damien Elmes
a758ca7343 Update translations 2023-12-08 14:01:27 +10:00
Damien Elmes
05965d2825 Add a globe icon to global icons
Currently 80% of voters favor the globe, so I'm going to tentatively
call it.

https://forums.ankiweb.net/t/activating-fsrs-on-one-preset-activates-it-on-all-presets/36947/16
2023-12-08 11:18:13 +10:00
Damien Elmes
629ff330a2 Allow user to configure hard/good buttons when rescheduling off
Closes #2858
2023-12-08 11:04:34 +10:00
Abdo
a74eb2f214 Fix some RTL issues in help modals (#2857)
* Fix RTL position of close button in help modals

* Fix position of active button's border

* Fix margin of modal's title

* Fix alignment of modal buttons' text

* Add missing translation
2023-12-01 15:07:44 +10:00
Damien Elmes
f6d7d61311 Update translations 2023-11-29 10:26:04 +10:00
Damien Elmes
9537646604 Rework error dialog
- Hide traceback
- Include full add-on info in 'copy debug info' button, like about
screen
- Link to troubleshooting page
- Use non-modal pop-up in the common case, to avoid potential conflicts
with other modals.

Closes #2830
2023-11-29 10:25:32 +10:00
Damien Elmes
910d864ee7 Update to Rust 1.74, and update most Rust deps
hyper has been held back, as neither reqwest nor axum support 1.0 yet
2023-11-27 13:34:42 +10:00
Damien Elmes
24dc40ec62 Update translations 2023-11-27 11:24:31 +10:00
Damien Elmes
aea95ee9ae Switch FSRS reschedule to a global option; don't persist
A global is easier to use in conjunction with the 'optimize all' action.
The value is no longer persisted, as doing so makes it too easy for users
to generate a lot of revlog entries when playing with different FSRS
weights/retention settings, such as in https://forums.ankiweb.net/t/possible-syncing-limitation-by-fsrs-manual-scheduling-data-accumulation/37610
2023-11-27 11:24:31 +10:00
Damien Elmes
1021502377 Add option to calculate all weights at once 2023-11-27 11:24:31 +10:00
Damien Elmes
91d2822358 Update to latest FSRS 2023-11-27 11:24:31 +10:00
Mani
b8d9e77984 fixes: remove unfinished shapes, remove selectable and make shapes remain inside canvas (#2809)
* remove unfinished polygon and remove selectable for shapes in polygon mode

* make group and polygon position remain inside canvas area

* click through transparent area in grouped object

* add some shortcuts for basic usages

* tools button icon in center & switch mode border

* fix load svg image

* basic rtl support, panzoom have issues in rtl mode

* better zoom option both in ltr and rtl

* handle zoom event in mask editor

* add h button to handle toggle mask

* add more mime type

* use capital M (shift+m) for toggle mask

* allow io shortcuts in mask editor only

* make other shapes also remain in canvas bound area

* better zoom implementation, zoom from center
add zoom to resize event listener

* add a border to corner to handle blend of control

* add refresh button to go to  selection menu

* add tooltip to shortcuts and also add shortcut for other tools

* make opacity remain in same state when toggled on

* opacity for group/ungroup objects

* update shortcuts implementation
2023-11-24 14:06:40 +10:00
user1823
b05f8ed1df Clarify learning steps recommendation (#2832)
* Clarify learning steps recommendation

The previous text could suggest that 1d was OK, but it is actually not recommended.

* Update deck-config.ftl
2023-11-20 16:31:39 +10:00
RumovZ
134793835f Allow applying limits of inactive parents (#2824)
* Allow applying limits of inactive parents

* Tweak label/help text (dae)
2023-11-13 14:30:19 +10:00
RumovZ
cf28ec1437 Allow im-/exporting with or without deck configs (#2804)
* Allow im-/exporting with or without deck configs

Closes #2777.

* Enable webengine remote debugging in launch.json

* Reset deck limits and counts based on scheduling

Also:
- Fix `deck.common` not being reset.
- Apply all logic only depending on the source collection in the
gathering stage.
- Skip checking for scheduling and only act based on whether the call
wants scheduling. Preservation of filtered decks also depends on all
original decks being included.
- Fix check_ids() not covering revlog.

* Fix importing legacy filtered decks w/o scheduling

* Disable 'include deck options' by default, and fix tab order (dae)

* deck options > deck presets (dae)
2023-11-13 13:54:41 +10:00
Abdo
cb9d5218f7 Add auto-advance options to deck preset (#2765)
* Move stop-timer-on-answer strings to correct section

* Add auto-advance options to deck preset

* Implement answer actions

* Fix error when last card is answered before timeout

* Fix deserialization of answerAction

* Add answerAction to reserved key list

* Fix inverted boolean

* Add option to wait for audio to finish

* Add auto-advance toggle

* Add shortcut

* Disable auto-advance when main window state changes

* Start auto-advance timer after option is toggled

* Disable auto-advance when main window loses focus

* Use existing translations

* Add Answer Hard and Show Reminder
2023-11-13 10:41:51 +10:00
Damien Elmes
2868edffe0 Update translations 2023-11-09 20:44:13 +10:00
snowtimeglass
d3357d0244 Change tooltip strings for image occlusion center alignments (#2815)
- Fix the swapping of the strings

- Change the strings to make the meanings clearer

- Incidentally, add a name to CONTRIBUTORS
2023-11-09 12:02:51 +10:00
Damien Elmes
b93a616747 Update translations 2023-11-08 11:28:14 +10:00
Damien Elmes
25bd57a5e3 Update translations 2023-11-07 13:30:11 +10:00
Damien Elmes
c4a7cf663b Add confirmation for upload 2023-11-07 11:11:07 +10:00
Damien Elmes
cef178ef8c Add an info box so the non-linear nature of desired retention can be seen 2023-11-06 12:04:31 +10:00
Damien Elmes
5940bb7921 Clarify 1+ day warning 2023-11-05 14:05:03 +10:00
Damien Elmes
209e12362d Update translations 2023-11-05 13:45:07 +10:00
Damien Elmes
f2c33e19d8 weights -> parameters
Closes #2807
2023-11-05 13:44:40 +10:00
Gustaf-C
5ff618b7ac Allow creation of empty filtered decks (#2788)
* Add new button to UI

* Add bool to allow creating empty filtered in back end

* Implement logic into front end for passing on bool

* Hide option on old decks

* Show option again if any settings are changed

* Revert "Show option again if any settings are changed"

This reverts commit 094acd9c65936823fa206594da5c1f3e4eb09248.

* Revert "Hide option on old decks"

This reverts commit d20a9a240b4fd85d080e8cc52d94318416ca753f.

* Update string

* Update ftl/core/decks.ftl

---------

Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
2023-11-05 12:23:14 +10:00
Damien Elmes
c5e81884d2 Update translations 2023-11-04 11:47:28 +10:00
Damien Elmes
2c153e918b Prompt user to save preset changes before they compute weights
Closes #2797
2023-11-04 11:46:29 +10:00
Damien Elmes
5fa64e8f55 Move 'review' out of 'no need to translate' section 2023-11-04 08:45:02 +10:00
Damien Elmes
949509ca03 Add tooltip to mask editor button 2023-11-03 21:55:38 +10:00
Damien Elmes
febde8136b Split sidebar review string
https://forums.ankiweb.net/t/im-trying-to-improve-the-translation-but-i-cant-find-it-in-one-place-please-help-me/35335/19
2023-11-03 21:25:10 +10:00
Damien Elmes
987482ddac Update translations 2023-11-03 21:20:00 +10:00
Damien Elmes
439f5d2922 Update translations 2023-11-02 21:20:55 +10:00
Damien Elmes
5c62092012 Split 'due' translation in deck browser 2023-11-02 21:15:02 +10:00
Damien Elmes
a7450fb496 Update translations 2023-11-01 07:56:55 +10:00
Damien Elmes
badba0dcb1 Update translations 2023-10-29 08:16:33 +10:00
Damien Elmes
841a178bb8 Update translations 2023-10-28 13:16:26 +10:00
Damien Elmes
0d61558de0 Conflict handling -> Updates 2023-10-28 13:16:13 +10:00
Damien Elmes
8a740d10a5 Mention 'custom scheduling' and link to FSRS in manual 2023-10-28 12:47:55 +10:00
Damien Elmes
784175d02d Update translations 2023-10-28 12:32:09 +10:00
Damien Elmes
f0839bf7df Migrate some auto advance strings over from AnkiMobile 2023-10-28 12:31:51 +10:00
Damien Elmes
357e7a151c Fix handling of multi-word ftl files 2023-10-28 12:28:23 +10:00
Damien Elmes
ec28eb42f0 Add 'copy debug info' button to add-on startup screen 2023-10-28 11:59:54 +10:00
Damien Elmes
be509ec97c Update translations 2023-10-26 11:23:24 +10:00
Damien Elmes
901f465bf4 Split translation of learn in the deck list
Closes #2708
2023-10-26 11:23:24 +10:00
Damien Elmes
51b0fe863c Tweaks to import screen
- Tweak wording
- Move conflict handling options to a disclosure
2023-10-26 11:23:24 +10:00
Damien Elmes
f74e74b59a Tweaks to add-on startup failure screen / update checks
- Add a Check for Updates button to the screen
- Make the update list screen non-modal, so that other modal pop-ups
at startup don't leave the user stuck
- When manually checking for updates, update Anki's last check time
2023-10-26 11:23:24 +10:00
Damien Elmes
7bbea7fb9a Warn users about rescheduling 2023-10-26 11:23:24 +10:00
Damien Elmes
520f0ea68e Fix title case 2023-10-23 12:05:33 +10:00
Damien Elmes
9463fd05fd Update translations 2023-10-23 12:04:03 +10:00
Damien Elmes
d6f15a3add Add tooltips for image occlusions
Closes #2768
2023-10-23 12:03:22 +10:00
Damien Elmes
3c095d69b9 Update translations 2023-10-20 13:01:32 +10:00
Damien Elmes
dc4e4299e3 Tweak some of the graph descriptions 2023-10-20 12:58:07 +10:00
Damien Elmes
b54138b3ec Don't automatically disable add-ons
773bceab4d (commitcomment-130467314)

Also, make the pop-up non-modal so it can be left on screen as the user
navigates to the add-on screen.
2023-10-20 11:12:56 +10:00
Damien Elmes
773bceab4d Display all startup errors at once, and automatically disable add-ons
https://forums.ankiweb.net/t/anki-23-10-beta-5/35677/48
2023-10-19 13:40:39 +10:00
user1823
b0effff30b Rename Analyze to Evaluate in FSRS Deck Options (#2741)
* Update deck-config.ftl

* Update FsrsOptions.svelte

* Update CONTRIBUTORS
2023-10-17 09:53:24 +10:00
Abdo
10966394fd Remove v1/v2 support from the backend (#2727)
* Remove v1/v2 support from deck list

* Remove v1/v2 support from most routines and show error

* Remove scheduler_version from preferences

* Fix formatting

* Remove v1/v2 conditionals from Python code

* Fix legacy importer

* Remove legacy hooks

* Add missing scheduler checks

* Remove V2 logic from deck options screen

* Remove the review_did_undo hook

* Restore ability to open old options with shift (dae)
2023-10-14 10:50:59 +10:00
Damien Elmes
64e540e008 Update translations 2023-10-13 12:50:32 +10:00
Damien Elmes
568b24887f Add help entries for FSRS options 2023-10-13 12:50:15 +10:00
Damien Elmes
41e7cad28e Don't provide a button to copy estimated retention into desired retention
It's too easy for the user to end up with silly values if their configured
time/day is not reasonable.
2023-10-13 12:38:47 +10:00
Damien Elmes
ec8990dc11 Use sm2 retention when deriving memory state
Closes #2702
2023-10-13 10:37:35 +10:00
Damien Elmes
f7405f85cb Update translations 2023-10-13 10:10:05 +10:00
chandraiyengar
0f9fdd4dae Add profile name in profile deletion confirmation message (#2722)
* Add profile name in profile deletion confirmation message

* Update contributors

* leave old translation and add new one
2023-10-12 13:34:52 +10:00
Damien Elmes
db0cb6df8f Update translations 2023-10-03 14:41:11 +10:00
Damien Elmes
facd798000 Clarify stability subtitle
Based on #2699. Closes #2699.
2023-10-03 14:40:41 +10:00
Damien Elmes
0e50cef207 Show tooltip on sync completion
Closes #2695
2023-10-03 12:57:39 +10:00
Damien Elmes
c07b7915c5 Update translations 2023-10-03 12:39:01 +10:00
Damien Elmes
8731a1f7ce Add stability graph 2023-10-01 15:44:33 +10:00
Damien Elmes
49fcbe8f8f Support rescheduling on weight/retention change 2023-10-01 15:20:58 +10:00
Abdo
fb9c814e6c Allow creating an image occlusion from the clipboard (#2689)
* Allow creating an image occlusion from the clipboard

* Refactor pasted image name construction into methods

* Reduce button's top padding

* Fix capitalization

* Fix quality parameter of pasted image

* Fix lint errors

* setup_mask_editor_for_file -> setup_mask_editor

* Select -> Paste

* Extract image reading logic

* Fix inlinedImageToFilename
2023-09-29 15:51:44 +10:00
Damien Elmes
b6039b583f Update translations 2023-09-27 16:37:37 +10:00
Damien Elmes
0530027ec9 Tweak some wordings 2023-09-27 16:37:03 +10:00
Damien Elmes
f1e8f171d4 x% complete 2023-09-27 16:24:25 +10:00
Michael Eliachevitch
e6088c46e3 Button to set desired FSRS retention to optimal/calculated (#2685)
* Draft set optimal/calculated retention button

Temporarily save the calculated optimal retention and display it with a button
that sets the desired retention above to this value.Don't show button until
attention had been calculated. Disable button when optimal and desired
attention are equal.

I find this nicer than the current alert-popup solution, as it avoids a popup
and gives a choice to the user to accept the calculated retention or not, while
also persisting the calculated retention on the screen for a bit.

TODO: What's still missing is that the `optimalRetention` variable is global and
persists when I change presets. When changing presets the variable should reset to
`undefined`, which would also makes the button disappear. Ideally it should also
disappear when changing the FSRS parameters. So probably it should be made part
of some deck options state and subscribe to some events. But with that I might
need some help. Also I thought whether that variable should go into the deck
options schema but tbh it's not something we want to persist between sessions,
users should recalculate it.

* Add me to contributors for tests so pass

* Add formatting ant type fixes to make tests pass

* Minor fixes (dae)

* Remove the period
2023-09-27 16:12:49 +10:00
Abdo
97bd06dc49 Implement "stop timer on answer" as a preset option (#2686)
* Implement "stop timer on answer" as a preset option

* Hide timer setting on AnkiMobile (dae)
2023-09-27 16:10:14 +10:00
Damien Elmes
7f787a0e62 Prohibit weight generation when reps < 1000 2023-09-25 16:17:00 +10:00
Damien Elmes
790644de66 UI tweaks
https://forums.ankiweb.net/t/anki-23-10-beta-1/34912/19
2023-09-25 15:54:18 +10:00
Damien Elmes
0fa67a717f Expose deck-then-random option in UI 2023-09-25 11:12:28 +10:00
Damien Elmes
d3b8092b51 Update translations 2023-09-24 14:31:12 +10:00
Damien Elmes
d2a00948ef Use FSRS difficulty when sorting by ease 2023-09-23 16:20:36 +10:00
Damien Elmes
d98a7e7551 Add warning about all clients needing to support FSRS 2023-09-23 14:05:28 +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
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
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
581c7c87f1 Add support for tagging + protecting fields 2023-09-17 14:03:42 +10:00
Damien Elmes
a1756ea771 Start on a 'get params' button 2023-09-17 12:58:13 +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
431d1b2a17 Allow full screen mode on new Qt6 drivers (#2660)
* Allow full screen mode on new Qt6 drivers

* Update fulscreen warning message
2023-09-16 11:28:20 +10:00
Damien Elmes
3937448dc5 Update translations 2023-09-14 09:24:08 +10:00
RumovZ
15e3b5e3ab Tooltips for CSV import and import page refactoring (#2655)
* Make enum selector generic

* Refactor ImportCsvPage to support tooltips

* Improve csv import defaults

* Unify import pages

* Improve import page styling

* Fix life cycle issue with import properties

* Remove size constraints to fix scrollbar styling

* Add help strings and urls to csv import page

* Show ErrorPage on ImportPage error

* Fix escaping of import path

* Unify ImportPage and ImportLogPage

* Apply suggestions from code review (dae)

* Fix import progress

* Fix preview overflowing container

* Don't include <br> in FileIoErrors (dae)

e.g. 500: Failed to read '/home/dae/foo2.csv':<br>stream did not contain valid UTF-8

I thought about using {@html ...} here, but that's a potential security issue,
as the filename is not something we control.
2023-09-14 09:06:15 +10:00
Damien Elmes
8964dc2ab7 Update translations 2023-09-09 09:06:24 +10:00
Damien Elmes
96b5be95ce Add a missing word to translations 2023-09-09 09:06:18 +10:00
RumovZ
6ac2d5eb66 Merging Notetypes on Import (#2612)
* Remember original id when importing notetype

* Reuse notetypes with matching original id

* Add field and template ids

* Enable merging imported notetypes

* Fix test

Note should be updated if the incoming note's notetype is
remapped to the existing note's notetype.
On the other hand, it should be skipped if its notetype id is mapped
to some new notetype.

* Change field and template ids to i32

* Add merge notetypes flag to proto message

* Add dialog for apkg import

* Move HelpModal into components

* Generalize import dialog

* Move SettingTitle into components

* Add help modal to ImportAnkiPackagePage

* Move SwitchRow into components

* Fix backend method import

* Make testable in browser

* Fix broken modal

* Wrap in container and fix margins

* Update commented Anki version of new proto fields

* Check ids when comparing notetype schemas

* Add tooltip for merging notetypes.

* Allow updating notes regardless of mtime

* Gitignore yarn-error.log

* Allow updating notetypes regardless of mtime

* Fix apkg help carousel

* Use i64s for template and field ids

* Add option to omit importing scheduling info

* Restore last settings in apkg import dialog

* Display error when getting metadata in webview

* Update manual links for apkg importing

* Apply suggestions from code review

Co-authored-by: Damien Elmes <dae@users.noreply.github.com>

* Omit schduling -> Import all cards as new cards

* Tweak importing-update-notes-help

* UpdateCondition → ImportAnkiPackageUpdateCondition

* Load keyboard.ftl

* Skip updating dupes in 'update alwyas' case

* Explain more when merging notetypes is required

* "omit scheduling" → "with scheduling"

* Skip updating notetype dupes if 'update always'

* Merge duplicated notetypes from previous imports

* Fix rebase aftermath

* Fix panic when merging

* Clarify 'update notetypes' help

* Mention 'merge notetypes' in the log

* Add a test which covers the previously panicking path

* Use nested ftl messages to ensure consistency

* Make order of merged fields deterministic

* Rewrite test to trigger panic

* Update version comment on new fields
2023-09-09 09:00:55 +10:00
Abdo
9d100c0c2f Expose video driver options for Qt6 (#2643)
* Expose video driver options for Qt6

* Default to d3d11/metal/vulkan on Qt6

* Remove `pass`

* Add missing word to existing translation

* Default to OpenGL on Linux

* Exclude Vulkan from macOS

* Label default drivers
2023-09-09 08:59:49 +10:00