Enchance reviewer with new settings (#2489)

* add grading shortcuts

* add a new setting: grade with space

* new key: u for undo

* run ./ninja format

* rename property

* rename translation

* run ./ninja format
This commit is contained in:
Ren Tatsumoto 2023-05-08 01:04:18 +00:00 committed by GitHub
parent dc4a915de1
commit fef2844d45
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 33 additions and 1 deletions

View file

@ -19,6 +19,7 @@ preferences-preferences = Preferences
preferences-scheduling = Scheduling preferences-scheduling = Scheduling
preferences-show-learning-cards-with-larger-steps = Show learning cards with larger steps before reviews preferences-show-learning-cards-with-larger-steps = Show learning cards with larger steps before reviews
preferences-show-next-review-time-above-answer = Show next review time above answer buttons preferences-show-next-review-time-above-answer = Show next review time above answer buttons
preferences-spacebar-rates-card = Spacebar also answers card
preferences-show-play-buttons-on-cards-with = Show play buttons on cards with audio preferences-show-play-buttons-on-cards-with = Show play buttons on cards with audio
preferences-show-remaining-card-count = Show remaining card count preferences-show-remaining-card-count = Show remaining card count
preferences-some-settings-will-take-effect-after = Some settings will take effect after you restart Anki. preferences-some-settings-will-take-effect-after = Some settings will take effect after you restart Anki.

View file

@ -456,6 +456,19 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QCheckBox" name="spacebar_rates_card">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>preferences_spacebar_rates_card</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>
@ -1125,6 +1138,7 @@
<tabstop>interrupt_audio</tabstop> <tabstop>interrupt_audio</tabstop>
<tabstop>showProgress</tabstop> <tabstop>showProgress</tabstop>
<tabstop>showEstimates</tabstop> <tabstop>showEstimates</tabstop>
<tabstop>spacebar_rates_card</tabstop>
<tabstop>pastePNG</tabstop> <tabstop>pastePNG</tabstop>
<tabstop>paste_strips_formatting</tabstop> <tabstop>paste_strips_formatting</tabstop>
<tabstop>useCurrent</tabstop> <tabstop>useCurrent</tabstop>

View file

@ -226,6 +226,12 @@ class Preferences(QDialog):
self.form.minimalist_mode.setChecked(self.mw.pm.minimalist_mode()) self.form.minimalist_mode.setChecked(self.mw.pm.minimalist_mode())
qconnect(self.form.minimalist_mode.stateChanged, self.mw.pm.set_minimalist_mode) qconnect(self.form.minimalist_mode.stateChanged, self.mw.pm.set_minimalist_mode)
self.form.spacebar_rates_card.setChecked(self.mw.pm.spacebar_rates_card())
qconnect(
self.form.spacebar_rates_card.stateChanged,
self.mw.pm.set_spacebar_rates_card,
)
hide_choices = [tr.preferences_full_screen_only(), tr.preferences_always()] hide_choices = [tr.preferences_full_screen_only(), tr.preferences_always()]
self.form.hide_top_bar.setChecked(self.mw.pm.hide_top_bar()) self.form.hide_top_bar.setChecked(self.mw.pm.hide_top_bar())

View file

@ -531,6 +531,12 @@ create table if not exists profiles
self.meta["minimalist_mode"] = on self.meta["minimalist_mode"] = on
gui_hooks.body_classes_need_update() gui_hooks.body_classes_need_update()
def spacebar_rates_card(self) -> bool:
return self.meta.get("spacebar_rates_card", True)
def set_spacebar_rates_card(self, on: bool) -> None:
self.meta["spacebar_rates_card"] = on
def hide_top_bar(self) -> bool: def hide_top_bar(self) -> bool:
return self.meta.get("hide_top_bar", False) return self.meta.get("hide_top_bar", False)

View file

@ -511,6 +511,11 @@ class Reviewer:
("2", lambda: self._answerCard(2)), ("2", lambda: self._answerCard(2)),
("3", lambda: self._answerCard(3)), ("3", lambda: self._answerCard(3)),
("4", lambda: self._answerCard(4)), ("4", lambda: self._answerCard(4)),
("h", lambda: self._answerCard(1)),
("j", lambda: self._answerCard(2)),
("k", lambda: self._answerCard(3)),
("l", lambda: self._answerCard(4)),
("u", self.mw.undo),
("5", self.on_pause_audio), ("5", self.on_pause_audio),
("6", self.on_seek_backward), ("6", self.on_seek_backward),
("7", self.on_seek_forward), ("7", self.on_seek_forward),
@ -531,7 +536,7 @@ class Reviewer:
def onEnterKey(self) -> None: def onEnterKey(self) -> None:
if self.state == "question": if self.state == "question":
self._getTypedAnswer() self._getTypedAnswer()
elif self.state == "answer": elif self.state == "answer" and aqt.mw.pm.spacebar_rates_card():
self.bottom.web.evalWithCallback( self.bottom.web.evalWithCallback(
"selectedAnswerButton()", self._onAnswerButton "selectedAnswerButton()", self._onAnswerButton
) )