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)