mirror of
https://github.com/ankitects/anki.git
synced 2025-12-16 08:10: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>
|
Stefan Kangas <stefankangas@gmail.com>
|
||||||
Fabricio Duarte <fabricio.duarte.jr@gmail.com>
|
Fabricio Duarte <fabricio.duarte.jr@gmail.com>
|
||||||
Mani <github.com/krmanik>
|
Mani <github.com/krmanik>
|
||||||
|
Kaben Nanlohy <kaben.nanlohy@gmail.com>
|
||||||
|
|
||||||
********************
|
********************
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,7 @@ browsing-suspended = Suspended
|
||||||
browsing-tag-duplicates = Tag Duplicates
|
browsing-tag-duplicates = Tag Duplicates
|
||||||
browsing-tag-rename-warning-empty = You can't rename a tag that has no notes.
|
browsing-tag-rename-warning-empty = You can't rename a tag that has no notes.
|
||||||
browsing-target-field = Target field:
|
browsing-target-field = Target field:
|
||||||
|
browsing-toggle-bury = Toggle Bury
|
||||||
browsing-toggle-showing-cards-notes = Toggle Cards/Notes
|
browsing-toggle-showing-cards-notes = Toggle Cards/Notes
|
||||||
browsing-toggle-mark = Toggle Mark
|
browsing-toggle-mark = Toggle Mark
|
||||||
browsing-toggle-suspend = Toggle Suspend
|
browsing-toggle-suspend = Toggle Suspend
|
||||||
|
|
|
||||||
|
|
@ -182,6 +182,7 @@ message BrowserRow {
|
||||||
COLOR_FLAG_PINK = 7;
|
COLOR_FLAG_PINK = 7;
|
||||||
COLOR_FLAG_TURQUOISE = 8;
|
COLOR_FLAG_TURQUOISE = 8;
|
||||||
COLOR_FLAG_PURPLE = 9;
|
COLOR_FLAG_PURPLE = 9;
|
||||||
|
COLOR_BURIED = 10;
|
||||||
}
|
}
|
||||||
repeated Cell cells = 1;
|
repeated Cell cells = 1;
|
||||||
Color color = 2;
|
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.collection import redo, undo
|
||||||
from aqt.operations.note import remove_notes
|
from aqt.operations.note import remove_notes
|
||||||
from aqt.operations.scheduling import (
|
from aqt.operations.scheduling import (
|
||||||
|
bury_cards,
|
||||||
forget_cards,
|
forget_cards,
|
||||||
reposition_new_cards_dialog,
|
reposition_new_cards_dialog,
|
||||||
set_due_date_dialog,
|
set_due_date_dialog,
|
||||||
suspend_cards,
|
suspend_cards,
|
||||||
|
unbury_cards,
|
||||||
unsuspend_cards,
|
unsuspend_cards,
|
||||||
)
|
)
|
||||||
from aqt.operations.tag import (
|
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_set_due_date.triggered, self.set_due_date)
|
||||||
qconnect(f.action_forget.triggered, self.forget_cards)
|
qconnect(f.action_forget.triggered, self.forget_cards)
|
||||||
qconnect(f.actionToggle_Suspend.triggered, self.suspend_selected_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:
|
def set_flag_func(desired_flag: int) -> Callable:
|
||||||
return lambda: self.set_flag_of_selected_cards(desired_flag)
|
return lambda: self.set_flag_of_selected_cards(desired_flag)
|
||||||
|
|
@ -590,6 +593,7 @@ class Browser(QMainWindow):
|
||||||
|
|
||||||
def _update_current_actions(self) -> None:
|
def _update_current_actions(self) -> None:
|
||||||
self._update_flags_menu()
|
self._update_flags_menu()
|
||||||
|
self._update_toggle_bury_action()
|
||||||
self._update_toggle_mark_action()
|
self._update_toggle_mark_action()
|
||||||
self._update_toggle_suspend_action()
|
self._update_toggle_suspend_action()
|
||||||
self.form.actionCopy.setEnabled(self.table.has_current())
|
self.form.actionCopy.setEnabled(self.table.has_current())
|
||||||
|
|
@ -869,6 +873,24 @@ class Browser(QMainWindow):
|
||||||
else:
|
else:
|
||||||
unsuspend_cards(parent=self.mw, card_ids=cids).run_in_background()
|
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
|
# Exporting
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,8 @@ def backend_color_to_aqt_color(color: BrowserRow.Color.V) -> dict[str, str] | No
|
||||||
temp_color = colors.STATE_MARKED
|
temp_color = colors.STATE_MARKED
|
||||||
if color == BrowserRow.COLOR_SUSPENDED:
|
if color == BrowserRow.COLOR_SUSPENDED:
|
||||||
temp_color = colors.STATE_SUSPENDED
|
temp_color = colors.STATE_SUSPENDED
|
||||||
|
if color == BrowserRow.COLOR_BURIED:
|
||||||
|
temp_color = colors.STATE_BURIED
|
||||||
if color == BrowserRow.COLOR_FLAG_RED:
|
if color == BrowserRow.COLOR_FLAG_RED:
|
||||||
temp_color = colors.FLAG_1
|
temp_color = colors.FLAG_1
|
||||||
if color == BrowserRow.COLOR_FLAG_ORANGE:
|
if color == BrowserRow.COLOR_FLAG_ORANGE:
|
||||||
|
|
|
||||||
|
|
@ -209,7 +209,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>750</width>
|
<width>750</width>
|
||||||
<height>22</height>
|
<height>23</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuEdit">
|
<widget class="QMenu" name="menuEdit">
|
||||||
|
|
@ -271,6 +271,7 @@
|
||||||
<addaction name="actionReposition"/>
|
<addaction name="actionReposition"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="actionToggle_Suspend"/>
|
<addaction name="actionToggle_Suspend"/>
|
||||||
|
<addaction name="action_toggle_bury"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
<addaction name="menuFlag"/>
|
<addaction name="menuFlag"/>
|
||||||
<addaction name="separator"/>
|
<addaction name="separator"/>
|
||||||
|
|
@ -739,6 +740,17 @@
|
||||||
<string>browsing_toggle_showing_cards_notes</string>
|
<string>browsing_toggle_showing_cards_notes</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</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>
|
</widget>
|
||||||
<resources>
|
<resources>
|
||||||
<include location="icons.qrc"/>
|
<include location="icons.qrc"/>
|
||||||
|
|
|
||||||
|
|
@ -573,10 +573,12 @@ impl RowContext {
|
||||||
_ => {
|
_ => {
|
||||||
if self.note.is_marked() {
|
if self.note.is_marked() {
|
||||||
Color::Marked
|
Color::Marked
|
||||||
} else if self.cards[0].queue == CardQueue::Suspended {
|
|
||||||
Color::Suspended
|
|
||||||
} else {
|
} 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