mirror of
https://github.com/ankitects/anki.git
synced 2025-12-15 15:50:59 -05:00
Allow burying cards in browser (#2351)
* Allow burying cards in browser This code is based on existing "toggle suspend" command in browser. - Adds "toggle bury" command to browser cards menu. - Adds "browsing-toggle-bury" to core translation. Only english-language. - Adds "buried" coloring to rows for buried cards in browser table. Not yet done: - Keyboard shortcut for "toggle bury" action. - Non-english translations. * Add contributor as requested in CONTRIBUTORS. * Fix formatting in browser_table.rs. * Add keyboard shortcut to "toggle bury" command. This adds keyboard shortcut "ctrl-shift-j" to "toggle bury" command in browser cards menu. * Simplify logic for color of buried-card rows.
This commit is contained in:
parent
766d1fdb5c
commit
77bba533ea
7 changed files with 45 additions and 4 deletions
|
|
@ -110,6 +110,7 @@ TRIAEIOU <github.com/TRIAEIOU>
|
|||
Stefan Kangas <stefankangas@gmail.com>
|
||||
Fabricio Duarte <fabricio.duarte.jr@gmail.com>
|
||||
Mani <github.com/krmanik>
|
||||
Kaben Nanlohy <kaben.nanlohy@gmail.com>
|
||||
|
||||
********************
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ browsing-suspended = Suspended
|
|||
browsing-tag-duplicates = Tag Duplicates
|
||||
browsing-tag-rename-warning-empty = You can't rename a tag that has no notes.
|
||||
browsing-target-field = Target field:
|
||||
browsing-toggle-bury = Toggle Bury
|
||||
browsing-toggle-showing-cards-notes = Toggle Cards/Notes
|
||||
browsing-toggle-mark = Toggle Mark
|
||||
browsing-toggle-suspend = Toggle Suspend
|
||||
|
|
|
|||
|
|
@ -182,6 +182,7 @@ message BrowserRow {
|
|||
COLOR_FLAG_PINK = 7;
|
||||
COLOR_FLAG_TURQUOISE = 8;
|
||||
COLOR_FLAG_PURPLE = 9;
|
||||
COLOR_BURIED = 10;
|
||||
}
|
||||
repeated Cell cells = 1;
|
||||
Color color = 2;
|
||||
|
|
|
|||
|
|
@ -31,10 +31,12 @@ from aqt.operations.card import set_card_deck, set_card_flag
|
|||
from aqt.operations.collection import redo, undo
|
||||
from aqt.operations.note import remove_notes
|
||||
from aqt.operations.scheduling import (
|
||||
bury_cards,
|
||||
forget_cards,
|
||||
reposition_new_cards_dialog,
|
||||
set_due_date_dialog,
|
||||
suspend_cards,
|
||||
unbury_cards,
|
||||
unsuspend_cards,
|
||||
)
|
||||
from aqt.operations.tag import (
|
||||
|
|
@ -302,6 +304,7 @@ class Browser(QMainWindow):
|
|||
qconnect(f.action_set_due_date.triggered, self.set_due_date)
|
||||
qconnect(f.action_forget.triggered, self.forget_cards)
|
||||
qconnect(f.actionToggle_Suspend.triggered, self.suspend_selected_cards)
|
||||
qconnect(f.action_toggle_bury.triggered, self.bury_selected_cards)
|
||||
|
||||
def set_flag_func(desired_flag: int) -> Callable:
|
||||
return lambda: self.set_flag_of_selected_cards(desired_flag)
|
||||
|
|
@ -590,6 +593,7 @@ class Browser(QMainWindow):
|
|||
|
||||
def _update_current_actions(self) -> None:
|
||||
self._update_flags_menu()
|
||||
self._update_toggle_bury_action()
|
||||
self._update_toggle_mark_action()
|
||||
self._update_toggle_suspend_action()
|
||||
self.form.actionCopy.setEnabled(self.table.has_current())
|
||||
|
|
@ -869,6 +873,24 @@ class Browser(QMainWindow):
|
|||
else:
|
||||
unsuspend_cards(parent=self.mw, card_ids=cids).run_in_background()
|
||||
|
||||
# Burying
|
||||
######################################################################
|
||||
|
||||
def _update_toggle_bury_action(self) -> None:
|
||||
is_buried = bool(
|
||||
self.current_card and self.current_card.queue == QUEUE_TYPE_MANUALLY_BURIED
|
||||
)
|
||||
self.form.action_toggle_bury.setChecked(is_buried)
|
||||
|
||||
@skip_if_selection_is_empty
|
||||
@ensure_editor_saved
|
||||
def bury_selected_cards(self, checked: bool) -> None:
|
||||
cids = self.selected_cards()
|
||||
if checked:
|
||||
bury_cards(parent=self, card_ids=cids).run_in_background()
|
||||
else:
|
||||
unbury_cards(parent=self.mw, card_ids=cids).run_in_background()
|
||||
|
||||
# Exporting
|
||||
######################################################################
|
||||
|
||||
|
|
|
|||
|
|
@ -84,6 +84,8 @@ def backend_color_to_aqt_color(color: BrowserRow.Color.V) -> dict[str, str] | No
|
|||
temp_color = colors.STATE_MARKED
|
||||
if color == BrowserRow.COLOR_SUSPENDED:
|
||||
temp_color = colors.STATE_SUSPENDED
|
||||
if color == BrowserRow.COLOR_BURIED:
|
||||
temp_color = colors.STATE_BURIED
|
||||
if color == BrowserRow.COLOR_FLAG_RED:
|
||||
temp_color = colors.FLAG_1
|
||||
if color == BrowserRow.COLOR_FLAG_ORANGE:
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@
|
|||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>750</width>
|
||||
<height>22</height>
|
||||
<height>23</height>
|
||||
</rect>
|
||||
</property>
|
||||
<widget class="QMenu" name="menuEdit">
|
||||
|
|
@ -271,6 +271,7 @@
|
|||
<addaction name="actionReposition"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionToggle_Suspend"/>
|
||||
<addaction name="action_toggle_bury"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="menuFlag"/>
|
||||
<addaction name="separator"/>
|
||||
|
|
@ -739,6 +740,17 @@
|
|||
<string>browsing_toggle_showing_cards_notes</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="action_toggle_bury">
|
||||
<property name="checkable">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>browsing_toggle_bury</string>
|
||||
</property>
|
||||
<property name="shortcut">
|
||||
<string notr="true">Ctrl+Shift+J</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources>
|
||||
<include location="icons.qrc"/>
|
||||
|
|
|
|||
|
|
@ -573,10 +573,12 @@ impl RowContext {
|
|||
_ => {
|
||||
if self.note.is_marked() {
|
||||
Color::Marked
|
||||
} else if self.cards[0].queue == CardQueue::Suspended {
|
||||
Color::Suspended
|
||||
} else {
|
||||
Color::Default
|
||||
match self.cards[0].queue {
|
||||
CardQueue::Suspended => Color::Suspended,
|
||||
CardQueue::UserBuried | CardQueue::SchedBuried => Color::Buried,
|
||||
_ => Color::Default,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue