|
28 | 28 | from aqt.previewer import BrowserPreviewer as PreviewDialog
|
29 | 29 | from aqt.previewer import Previewer
|
30 | 30 | from aqt.qt import *
|
| 31 | +from aqt.scheduling import forget_cards, set_due_date_dialog |
31 | 32 | from aqt.sidebar import SidebarSearchBar, SidebarTreeView
|
32 | 33 | from aqt.theme import theme_manager
|
33 | 34 | from aqt.utils import (
|
@@ -503,7 +504,8 @@ def setupMenus(self) -> None:
|
503 | 504 | qconnect(f.actionChange_Deck.triggered, self.setDeck)
|
504 | 505 | qconnect(f.action_Info.triggered, self.showCardInfo)
|
505 | 506 | qconnect(f.actionReposition.triggered, self.reposition)
|
506 |
| - qconnect(f.actionReschedule.triggered, self.reschedule) |
| 507 | + qconnect(f.action_set_due_date.triggered, self.set_due_date) |
| 508 | + qconnect(f.action_forget.triggered, self.forget_cards) |
507 | 509 | qconnect(f.actionToggle_Suspend.triggered, self.onSuspend)
|
508 | 510 | qconnect(f.actionRed_Flag.triggered, lambda: self.onSetFlag(1))
|
509 | 511 | qconnect(f.actionOrange_Flag.triggered, lambda: self.onSetFlag(2))
|
@@ -1384,32 +1386,33 @@ def _reposition(self) -> None:
|
1384 | 1386 | self.mw.requireReset(reason=ResetReason.BrowserReposition, context=self)
|
1385 | 1387 | self.model.endReset()
|
1386 | 1388 |
|
1387 |
| - # Rescheduling |
| 1389 | + # Scheduling |
1388 | 1390 | ######################################################################
|
1389 | 1391 |
|
1390 |
| - def reschedule(self) -> None: |
1391 |
| - self.editor.saveNow(self._reschedule) |
1392 |
| - |
1393 |
| - def _reschedule(self) -> None: |
1394 |
| - d = QDialog(self) |
1395 |
| - disable_help_button(d) |
1396 |
| - d.setWindowModality(Qt.WindowModal) |
1397 |
| - frm = aqt.forms.reschedule.Ui_Dialog() |
1398 |
| - frm.setupUi(d) |
1399 |
| - if not d.exec_(): |
1400 |
| - return |
1401 |
| - self.model.beginReset() |
1402 |
| - self.mw.checkpoint(tr(TR.BROWSING_RESCHEDULE)) |
1403 |
| - if frm.asNew.isChecked(): |
1404 |
| - self.col.sched.forgetCards(self.selectedCards()) |
1405 |
| - else: |
1406 |
| - fmin = frm.min.value() |
1407 |
| - fmax = frm.max.value() |
1408 |
| - fmax = max(fmin, fmax) |
1409 |
| - self.col.sched.reschedCards(self.selectedCards(), fmin, fmax) |
1410 |
| - self.search() |
| 1392 | + def _after_schedule(self) -> None: |
| 1393 | + self.model.reset() |
1411 | 1394 | self.mw.requireReset(reason=ResetReason.BrowserReschedule, context=self)
|
1412 |
| - self.model.endReset() |
| 1395 | + |
| 1396 | + def set_due_date(self) -> None: |
| 1397 | + self.editor.saveNow( |
| 1398 | + lambda: set_due_date_dialog( |
| 1399 | + mw=self.mw, |
| 1400 | + parent=self, |
| 1401 | + card_ids=self.selectedCards(), |
| 1402 | + default="0", |
| 1403 | + on_done=self._after_schedule, |
| 1404 | + ) |
| 1405 | + ) |
| 1406 | + |
| 1407 | + def forget_cards(self) -> None: |
| 1408 | + self.editor.saveNow( |
| 1409 | + lambda: forget_cards( |
| 1410 | + mw=self.mw, |
| 1411 | + parent=self, |
| 1412 | + card_ids=self.selectedCards(), |
| 1413 | + on_done=self._after_schedule, |
| 1414 | + ) |
| 1415 | + ) |
1413 | 1416 |
|
1414 | 1417 | # Edit: selection
|
1415 | 1418 | ######################################################################
|
|
0 commit comments