From a73f1507ba6a0e2174b8f9487d83a87278cc5d3d Mon Sep 17 00:00:00 2001 From: llama Date: Wed, 25 Jun 2025 19:08:25 +0800 Subject: [PATCH 1/4] use KeyboardEvent.key instead of code (#4114) --- ts/lib/tag-editor/TagInput.svelte | 2 +- ts/lib/tslib/keys.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/ts/lib/tag-editor/TagInput.svelte b/ts/lib/tag-editor/TagInput.svelte index a8d76bcee..31d3b51f6 100644 --- a/ts/lib/tag-editor/TagInput.svelte +++ b/ts/lib/tag-editor/TagInput.svelte @@ -166,7 +166,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html } function onKeydown(event: KeyboardEvent): void { - switch (event.code) { + switch (event.key) { case "Enter": onEnter(event); break; diff --git a/ts/lib/tslib/keys.ts b/ts/lib/tslib/keys.ts index 9bd6b42d8..58f571fac 100644 --- a/ts/lib/tslib/keys.ts +++ b/ts/lib/tslib/keys.ts @@ -90,7 +90,7 @@ export function keyToPlatformString(key: string): string { } export function isArrowLeft(event: KeyboardEvent): boolean { - if (event.code === "ArrowLeft") { + if (event.key === "ArrowLeft") { return true; } @@ -98,7 +98,7 @@ export function isArrowLeft(event: KeyboardEvent): boolean { } export function isArrowRight(event: KeyboardEvent): boolean { - if (event.code === "ArrowRight") { + if (event.key === "ArrowRight") { return true; } @@ -106,7 +106,7 @@ export function isArrowRight(event: KeyboardEvent): boolean { } export function isArrowUp(event: KeyboardEvent): boolean { - if (event.code === "ArrowUp") { + if (event.key === "ArrowUp") { return true; } @@ -114,7 +114,7 @@ export function isArrowUp(event: KeyboardEvent): boolean { } export function isArrowDown(event: KeyboardEvent): boolean { - if (event.code === "ArrowDown") { + if (event.key === "ArrowDown") { return true; } From 06195d1268ae01115dad79452d824a14df641f8c Mon Sep 17 00:00:00 2001 From: llama Date: Wed, 25 Jun 2025 19:15:45 +0800 Subject: [PATCH 2/4] add bottom and right margins to account for focus outline (#4115) --- ts/lib/tag-editor/TagEditor.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ts/lib/tag-editor/TagEditor.svelte b/ts/lib/tag-editor/TagEditor.svelte index cbbbf3f57..eb033ef7a 100644 --- a/ts/lib/tag-editor/TagEditor.svelte +++ b/ts/lib/tag-editor/TagEditor.svelte @@ -510,7 +510,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html border: 1px solid var(--border); border-radius: var(--border-radius); padding: 6px; - margin: 1px; + margin: 1px 3px 3px 1px; &:focus-within { outline-offset: -1px; From d6f93fab767dfca0522ef129f9c613c0ac0ce767 Mon Sep 17 00:00:00 2001 From: llama Date: Wed, 25 Jun 2025 19:20:31 +0800 Subject: [PATCH 3/4] adjust top toolbar height on body class update (#4120) --- qt/aqt/toolbar.py | 1 + 1 file changed, 1 insertion(+) diff --git a/qt/aqt/toolbar.py b/qt/aqt/toolbar.py index 44f2ee66c..be547b5ba 100644 --- a/qt/aqt/toolbar.py +++ b/qt/aqt/toolbar.py @@ -87,6 +87,7 @@ class TopWebView(ToolbarWebView): else: self.flatten() + self.adjustHeightToFit() self.show() def _onHeight(self, qvar: int | None) -> None: From 992fb054bd2ada03cd9950c22f777a714e2291f1 Mon Sep 17 00:00:00 2001 From: Jarrett Ye Date: Wed, 25 Jun 2025 21:40:51 +0800 Subject: [PATCH 4/4] Refactor FSRS data clearing into Card::clear_fsrs_data (#4123) Extracted repeated logic for clearing FSRS-related fields into a new Card::clear_fsrs_data() method. Updated set_deck and FSRS disabling code paths to use this method for improved code reuse and maintainability. --- rslib/src/card/mod.rs | 10 +++++++--- rslib/src/scheduler/fsrs/memory_state.rs | 4 +--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/rslib/src/card/mod.rs b/rslib/src/card/mod.rs index 49d952ecf..598ac602b 100644 --- a/rslib/src/card/mod.rs +++ b/rslib/src/card/mod.rs @@ -185,12 +185,16 @@ impl Card { self.usn = usn; } - /// Caller must ensure provided deck exists and is not filtered. - fn set_deck(&mut self, deck: DeckId) { - self.remove_from_filtered_deck_restoring_queue(); + pub fn clear_fsrs_data(&mut self) { self.memory_state = None; self.desired_retention = None; self.decay = None; + } + + /// Caller must ensure provided deck exists and is not filtered. + fn set_deck(&mut self, deck: DeckId) { + self.remove_from_filtered_deck_restoring_queue(); + self.clear_fsrs_data(); self.deck_id = deck; } diff --git a/rslib/src/scheduler/fsrs/memory_state.rs b/rslib/src/scheduler/fsrs/memory_state.rs index d01cde767..b592e4da4 100644 --- a/rslib/src/scheduler/fsrs/memory_state.rs +++ b/rslib/src/scheduler/fsrs/memory_state.rs @@ -188,9 +188,7 @@ impl Collection { } } else { // clear FSRS data if FSRS is disabled - card.memory_state = None; - card.desired_retention = None; - card.decay = None; + card.clear_fsrs_data(); } self.update_card_inner(&mut card, original, usn)?; }