Make toggle actions checkable

This commit is contained in:
RumovZ 2021-03-31 10:05:44 +02:00
parent e5d68df527
commit c8146c13c1
2 changed files with 27 additions and 16 deletions

View file

@ -167,9 +167,7 @@ class Browser(QMainWindow):
lambda: self.remove_tags_from_selected_notes(), lambda: self.remove_tags_from_selected_notes(),
) )
qconnect(f.actionClear_Unused_Tags.triggered, self.clear_unused_tags) qconnect(f.actionClear_Unused_Tags.triggered, self.clear_unused_tags)
qconnect( qconnect(f.actionToggle_Mark.triggered, self.toggle_mark_of_selected_notes)
f.actionToggle_Mark.triggered, lambda: self.toggle_mark_of_selected_notes()
)
qconnect(f.actionChangeModel.triggered, self.onChangeModel) qconnect(f.actionChangeModel.triggered, self.onChangeModel)
qconnect(f.actionFindDuplicates.triggered, self.onFindDupes) qconnect(f.actionFindDuplicates.triggered, self.onFindDupes)
qconnect(f.actionFindReplace.triggered, self.onFindReplace) qconnect(f.actionFindReplace.triggered, self.onFindReplace)
@ -429,9 +427,14 @@ class Browser(QMainWindow):
else: else:
self.editor.set_note(None) self.editor.set_note(None)
self._renderPreview() self._renderPreview()
self._update_flags_menu() self._update_context_actions()
gui_hooks.browser_did_change_row(self) 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 @ensure_editor_saved
def on_table_state_changed(self, checked: bool) -> None: def on_table_state_changed(self, checked: bool) -> None:
self.mw.progress.start() self.mw.progress.start()
@ -725,15 +728,14 @@ where id in %s"""
# Suspending # Suspending
###################################################################### ######################################################################
def current_card_is_suspended(self) -> bool: def _update_toggle_suspend_action(self) -> None:
return bool(self.card and self.card.queue == QUEUE_TYPE_SUSPENDED) is_suspended = bool(self.card and self.card.queue == QUEUE_TYPE_SUSPENDED)
self.form.actionToggle_Suspend.setChecked(is_suspended)
@ensure_editor_saved_on_trigger @ensure_editor_saved
def suspend_selected_cards(self) -> None: def suspend_selected_cards(self, checked: bool) -> None:
want_suspend = not self.current_card_is_suspended()
cids = self.selected_cards() cids = self.selected_cards()
if checked:
if want_suspend:
suspend_cards(mw=self.mw, card_ids=cids) suspend_cards(mw=self.mw, card_ids=cids)
else: else:
unsuspend_cards(mw=self.mw, card_ids=cids) unsuspend_cards(mw=self.mw, card_ids=cids)
@ -776,12 +778,15 @@ where id in %s"""
qtMenuShortcutWorkaround(self.form.menuFlag) qtMenuShortcutWorkaround(self.form.menuFlag)
def toggle_mark_of_selected_notes(self) -> None: def toggle_mark_of_selected_notes(self, checked: bool) -> None:
have_mark = bool(self.card and self.card.note().has_tag(MARKED_TAG)) if checked:
if have_mark:
self.remove_tags_from_selected_notes(tags=MARKED_TAG)
else:
self.add_tags_to_selected_notes(tags=MARKED_TAG) 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 # Scheduling
###################################################################### ######################################################################

View file

@ -467,6 +467,9 @@
</property> </property>
</action> </action>
<action name="actionToggle_Suspend"> <action name="actionToggle_Suspend">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text"> <property name="text">
<string>browsing_toggle_suspend</string> <string>browsing_toggle_suspend</string>
</property> </property>
@ -561,6 +564,9 @@
</property> </property>
</action> </action>
<action name="actionToggle_Mark"> <action name="actionToggle_Mark">
<property name="checkable">
<bool>true</bool>
</property>
<property name="text"> <property name="text">
<string>browsing_toggle_mark</string> <string>browsing_toggle_mark</string>
</property> </property>