From 75b865d52e0b9ef3b67e36dd129f71c710612ace Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Wed, 21 Jan 2009 00:26:55 +0900 Subject: [PATCH] rescheduling support --- ankiqt/ui/cardlist.py | 29 +++++-- designer/cardlist.ui | 6 +- designer/reschedule.ui | 186 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 213 insertions(+), 8 deletions(-) create mode 100644 designer/reschedule.ui diff --git a/ankiqt/ui/cardlist.py b/ankiqt/ui/cardlist.py index 33326c5b5..2c5acdd42 100644 --- a/ankiqt/ui/cardlist.py +++ b/ankiqt/ui/cardlist.py @@ -413,7 +413,7 @@ class EditDeck(QMainWindow): self.connect(self.dialog.actionDeleteTag, SIGNAL("triggered()"), self.deleteTags) self.connect(self.dialog.actionAddCards, SIGNAL("triggered()"), self.addCards) self.connect(self.dialog.actionChangeTemplate, SIGNAL("triggered()"), self.onChangeTemplate) - self.connect(self.dialog.actionResetProgress, SIGNAL("triggered()"), self.resetProgress) + self.connect(self.dialog.actionReschedule, SIGNAL("triggered()"), self.reschedule) self.connect(self.dialog.actionSelectFacts, SIGNAL("triggered()"), self.selectFacts) self.connect(self.dialog.actionInvertSelection, SIGNAL("triggered()"), self.invertSelection) self.connect(self.dialog.actionUndo, SIGNAL("triggered()"), self.onUndo) @@ -566,11 +566,30 @@ where id in (%s)""" % ",".join([ self.deck.setUndoEnd(n) self.updateAfterCardChange() - def resetProgress(self): - n = _("Reset Progress") + def reschedule(self): + n = _("Reschedule") + d = QDialog(self) + frm = ankiqt.forms.reschedule.Ui_Dialog() + frm.setupUi(d) + if not d.exec_(): + return self.deck.setUndoStart(n) - self.deck.resetCards(self.selectedCards()) - self.deck.setUndoEnd(n) + try: + if frm.asNew.isChecked(): + self.deck.resetCards(self.selectedCards()) + else: + try: + min = float(str(frm.rangeMin.text())) + max = float(str(frm.rangeMax.text())) + except ValueError: + ui.utils.showInfo( + _("Please enter a valid start and end range."), + parent=self) + return + self.deck.rescheduleCards(self.selectedCards(), min, max) + finally: + self.deck.rebuildQueue() + self.deck.setUndoEnd(n) self.updateAfterCardChange(reset=True) def addCards(self): diff --git a/designer/cardlist.ui b/designer/cardlist.ui index 88d045c01..35db9785c 100644 --- a/designer/cardlist.ui +++ b/designer/cardlist.ui @@ -194,7 +194,7 @@ - + @@ -252,13 +252,13 @@ Generate &Cards... - + :/icons/edit-undo.png:/icons/edit-undo.png - Reset Progress + &Reschedule... diff --git a/designer/reschedule.ui b/designer/reschedule.ui new file mode 100644 index 000000000..6d3b336c6 --- /dev/null +++ b/designer/reschedule.ui @@ -0,0 +1,186 @@ + + Dialog + + + + 0 + 0 + 227 + 158 + + + + Reschedule + + + + + + Reschedule as new cards + + + true + + + + + + + Reschedule with initial interval in range: + + + + + + + false + + + + 30 + + + + + + + Min + + + + + + + + 0 + 0 + + + + + 60 + 16777215 + + + + + + + + days + + + + + + + Max + + + + + + + + 60 + 16777215 + + + + + + + + days + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + asNew + inRange + rangeMin + rangeMax + buttonBox + + + + + buttonBox + accepted() + Dialog + accept() + + + 222 + 144 + + + 157 + 157 + + + + + buttonBox + rejected() + Dialog + reject() + + + 222 + 150 + + + 226 + 157 + + + + + inRange + toggled(bool) + rangebox + setEnabled(bool) + + + 30 + 40 + + + 11 + 79 + + + + +