From a18b5c50755a6a1054ee100f895c9d02cc33c1f7 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Thu, 21 Apr 2011 10:56:26 +0900 Subject: [PATCH] fix study options saving & randomize/order; update reschedule --- aqt/browser.py | 29 +++++---------- aqt/studyopts.py | 7 +++- designer/reschedule.ui | 84 +++++++++++++++++++++++------------------- 3 files changed, 62 insertions(+), 58 deletions(-) diff --git a/aqt/browser.py b/aqt/browser.py index 57c3c39b1..03e684906 100644 --- a/aqt/browser.py +++ b/aqt/browser.py @@ -1004,31 +1004,22 @@ where id in %s""" % ids2str(self.selectedCards()), mod) ###################################################################### def reschedule(self): - return showInfo("not yet implemented") - n = _("Reschedule") d = QDialog(self) + d.setWindowModality(Qt.WindowModal) frm = aqt.forms.reschedule.Ui_Dialog() frm.setupUi(d) if not d.exec_(): return - self.deck.setUndoStart(n) - try: - if frm.asNew.isChecked(): - self.deck.resetCards(self.selectedCards()) - else: - try: - min = float(frm.rangeMin.value()) - max = float(frm.rangeMax.value()) - except ValueError: - ui.utils.showInfo( - _("Please enter a valid range."), - parent=self) - return - self.deck.rescheduleCards(self.selectedCards(), min, max) - finally: - self.deck.reset() - self.deck.setUndoEnd(n) + self.model.beginReset() + self.mw.checkpoint(_("Reschedule")) + if frm.asNew.isChecked(): + self.deck.sched.forgetCards(self.selectedCards()) + else: + self.deck.sched.reschedCards( + self.selectedCards(), frm.min.value(), frm.max.value()) + self.onSearch(reset=False) self.mw.requireReset() + self.model.endReset() # Edit: selection ###################################################################### diff --git a/aqt/studyopts.py b/aqt/studyopts.py index 4fcebd15f..6593da229 100644 --- a/aqt/studyopts.py +++ b/aqt/studyopts.py @@ -43,6 +43,9 @@ class StudyOptions(QDialog): f.dayOffset.setValue(self.startDate.hour) f.lrnCutoff.setValue(qc['collapseTime']/60.0) + def reject(self): + self.accept() + def accept(self): f = self.form d = self.mw.deck @@ -69,7 +72,7 @@ class StudyOptions(QDialog): return self.mw.progress.start() if new == 1: - self.deck.orderNewCards() + self.mw.deck.sched.orderCards() else: - self.deck.randomizeNewCards() + self.mw.deck.sched.randomizeCards() self.mw.progress.finish() diff --git a/designer/reschedule.ui b/designer/reschedule.ui index fb748370c..26e9d9cfb 100644 --- a/designer/reschedule.ui +++ b/designer/reschedule.ui @@ -6,8 +6,8 @@ 0 0 - 255 - 158 + 325 + 144 @@ -17,7 +17,7 @@ - Reschedule as new cards + Place at end of new card queue true @@ -25,9 +25,9 @@ - + - Reschedule with initial interval in range: + Place in review queue with interval between: @@ -38,39 +38,48 @@ - 30 + 20 + + + 0 + + + 0 + + + 0 - - + + - Min + ~ + + + + + + + 9999 - - - days + + + 9999 - - - - Max - - - - + days - + Qt::Horizontal @@ -83,25 +92,24 @@ - - - - 99999.000000000000000 - - - - - - - 99999.000000000000000 - - - + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -116,7 +124,9 @@ asNew - inRange + asRev + min + max buttonBox @@ -154,7 +164,7 @@ - inRange + asRev toggled(bool) rangebox setEnabled(bool)