diff --git a/qt/aqt/browser.py b/qt/aqt/browser.py index c1b23400f..0055f75b7 100644 --- a/qt/aqt/browser.py +++ b/qt/aqt/browser.py @@ -167,9 +167,7 @@ class Browser(QMainWindow): lambda: self.remove_tags_from_selected_notes(), ) qconnect(f.actionClear_Unused_Tags.triggered, self.clear_unused_tags) - qconnect( - f.actionToggle_Mark.triggered, lambda: self.toggle_mark_of_selected_notes() - ) + qconnect(f.actionToggle_Mark.triggered, self.toggle_mark_of_selected_notes) qconnect(f.actionChangeModel.triggered, self.onChangeModel) qconnect(f.actionFindDuplicates.triggered, self.onFindDupes) qconnect(f.actionFindReplace.triggered, self.onFindReplace) @@ -429,9 +427,14 @@ class Browser(QMainWindow): else: self.editor.set_note(None) self._renderPreview() - self._update_flags_menu() + self._update_context_actions() gui_hooks.browser_did_change_row(self) + def _update_context_actions(self) -> None: + self._update_flags_menu() + self._update_toggle_mark_action() + self._update_toggle_suspend_action() + @ensure_editor_saved def on_table_state_changed(self, checked: bool) -> None: self.mw.progress.start() @@ -725,15 +728,14 @@ where id in %s""" # Suspending ###################################################################### - def current_card_is_suspended(self) -> bool: - return bool(self.card and self.card.queue == QUEUE_TYPE_SUSPENDED) + def _update_toggle_suspend_action(self) -> None: + is_suspended = bool(self.card and self.card.queue == QUEUE_TYPE_SUSPENDED) + self.form.actionToggle_Suspend.setChecked(is_suspended) - @ensure_editor_saved_on_trigger - def suspend_selected_cards(self) -> None: - want_suspend = not self.current_card_is_suspended() + @ensure_editor_saved + def suspend_selected_cards(self, checked: bool) -> None: cids = self.selected_cards() - - if want_suspend: + if checked: suspend_cards(mw=self.mw, card_ids=cids) else: unsuspend_cards(mw=self.mw, card_ids=cids) @@ -776,12 +778,15 @@ where id in %s""" qtMenuShortcutWorkaround(self.form.menuFlag) - def toggle_mark_of_selected_notes(self) -> None: - have_mark = bool(self.card and self.card.note().has_tag(MARKED_TAG)) - if have_mark: - self.remove_tags_from_selected_notes(tags=MARKED_TAG) - else: + def toggle_mark_of_selected_notes(self, checked: bool) -> None: + if checked: self.add_tags_to_selected_notes(tags=MARKED_TAG) + else: + self.remove_tags_from_selected_notes(tags=MARKED_TAG) + + def _update_toggle_mark_action(self) -> None: + is_marked = bool(self.card and self.card.note().has_tag(MARKED_TAG)) + self.form.actionToggle_Mark.setChecked(is_marked) # Scheduling ###################################################################### diff --git a/qt/aqt/forms/browser.ui b/qt/aqt/forms/browser.ui index 76217999f..f7cfde752 100644 --- a/qt/aqt/forms/browser.ui +++ b/qt/aqt/forms/browser.ui @@ -467,6 +467,9 @@ + + true + browsing_toggle_suspend @@ -561,6 +564,9 @@ + + true + browsing_toggle_mark