mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
# Copyright: Ankitects Pty Ltd and contributors
|
|
# License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
|
|
|
from __future__ import annotations
|
|
|
|
import aqt.forms
|
|
import aqt.main
|
|
from anki.decks import DeckDict
|
|
from aqt.operations.deck import update_deck_dict
|
|
from aqt.qt import *
|
|
from aqt.utils import disable_help_button
|
|
|
|
|
|
class DeckLimitsDialog(QDialog):
|
|
def __init__(self, mw: aqt.main.AnkiQt, deck: DeckDict):
|
|
super().__init__(parent=mw)
|
|
self.mw = mw
|
|
self.col = mw.col
|
|
self.deck = deck
|
|
self.frm = aqt.forms.deck_limits.Ui_Dialog()
|
|
self.frm.setupUi(self)
|
|
disable_help_button(self)
|
|
self._setup()
|
|
self.open()
|
|
|
|
def _setup(self) -> None:
|
|
review_limit = self.deck["reviewLimit"]
|
|
new_limit = self.deck["newLimit"]
|
|
self.frm.review_limit.setValue(review_limit or 0)
|
|
self.frm.new_limit.setValue(new_limit or 0)
|
|
|
|
enabled = None not in (review_limit, new_limit)
|
|
self.frm.enable_override.setChecked(enabled)
|
|
self.frm.review_limit.setEnabled(enabled)
|
|
self.frm.new_limit.setEnabled(enabled)
|
|
|
|
qconnect(self.frm.enable_override.toggled, self._on_override_toggled)
|
|
|
|
def _on_override_toggled(self) -> None:
|
|
enabled = self.frm.enable_override.isChecked()
|
|
self.frm.review_limit.setEnabled(enabled)
|
|
self.frm.new_limit.setEnabled(enabled)
|
|
|
|
def accept(self) -> None:
|
|
if self.frm.enable_override.isChecked():
|
|
self.deck["reviewLimit"] = self.frm.review_limit.value()
|
|
self.deck["newLimit"] = self.frm.new_limit.value()
|
|
else:
|
|
self.deck["reviewLimit"] = self.deck["newLimit"] = None
|
|
update_deck_dict(parent=self.mw, deck=self.deck).run_in_background()
|
|
super().accept()
|