mirror of
https://github.com/ankitects/anki.git
synced 2025-09-24 16:56:36 -04:00
rescheduling support
This commit is contained in:
parent
20dc8d6ae1
commit
75b865d52e
3 changed files with 213 additions and 8 deletions
|
@ -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):
|
||||
|
|
|
@ -194,7 +194,7 @@
|
|||
<addaction name="actionAddCards" />
|
||||
<addaction name="actionChangeTemplate" />
|
||||
<addaction name="separator" />
|
||||
<addaction name="actionResetProgress" />
|
||||
<addaction name="actionReschedule" />
|
||||
<addaction name="actionDelete" />
|
||||
</widget>
|
||||
<widget class="QMenu" name="menuJump" >
|
||||
|
@ -252,13 +252,13 @@
|
|||
<string>Generate &Cards...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionResetProgress" >
|
||||
<action name="actionReschedule" >
|
||||
<property name="icon" >
|
||||
<iconset resource="../icons.qrc" >
|
||||
<normaloff>:/icons/edit-undo.png</normaloff>:/icons/edit-undo.png</iconset>
|
||||
</property>
|
||||
<property name="text" >
|
||||
<string>Reset Progress</string>
|
||||
<string>&Reschedule...</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionSelectAll" >
|
||||
|
|
186
designer/reschedule.ui
Normal file
186
designer/reschedule.ui
Normal file
|
@ -0,0 +1,186 @@
|
|||
<ui version="4.0" >
|
||||
<class>Dialog</class>
|
||||
<widget class="QDialog" name="Dialog" >
|
||||
<property name="geometry" >
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>227</width>
|
||||
<height>158</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle" >
|
||||
<string>Reschedule</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2" >
|
||||
<item>
|
||||
<widget class="QRadioButton" name="asNew" >
|
||||
<property name="text" >
|
||||
<string>Reschedule as new cards</string>
|
||||
</property>
|
||||
<property name="checked" >
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QRadioButton" name="inRange" >
|
||||
<property name="text" >
|
||||
<string>Reschedule with initial interval in range:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" native="1" name="rangebox" >
|
||||
<property name="enabled" >
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" >
|
||||
<property name="leftMargin" >
|
||||
<number>30</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout" >
|
||||
<item row="0" column="0" >
|
||||
<widget class="QLabel" name="label" >
|
||||
<property name="text" >
|
||||
<string>Min</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1" >
|
||||
<widget class="QLineEdit" name="rangeMin" >
|
||||
<property name="sizePolicy" >
|
||||
<sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2" >
|
||||
<widget class="QLabel" name="label_3" >
|
||||
<property name="text" >
|
||||
<string>days</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" >
|
||||
<widget class="QLabel" name="label_2" >
|
||||
<property name="text" >
|
||||
<string>Max</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" >
|
||||
<widget class="QLineEdit" name="rangeMax" >
|
||||
<property name="maximumSize" >
|
||||
<size>
|
||||
<width>60</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2" >
|
||||
<widget class="QLabel" name="label_4" >
|
||||
<property name="text" >
|
||||
<string>days</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="3" >
|
||||
<spacer name="horizontalSpacer" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0" >
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="buttonBox" >
|
||||
<property name="orientation" >
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons" >
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>asNew</tabstop>
|
||||
<tabstop>inRange</tabstop>
|
||||
<tabstop>rangeMin</tabstop>
|
||||
<tabstop>rangeMax</tabstop>
|
||||
<tabstop>buttonBox</tabstop>
|
||||
</tabstops>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>Dialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel" >
|
||||
<x>222</x>
|
||||
<y>144</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel" >
|
||||
<x>157</x>
|
||||
<y>157</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>buttonBox</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>Dialog</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel" >
|
||||
<x>222</x>
|
||||
<y>150</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel" >
|
||||
<x>226</x>
|
||||
<y>157</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>inRange</sender>
|
||||
<signal>toggled(bool)</signal>
|
||||
<receiver>rangebox</receiver>
|
||||
<slot>setEnabled(bool)</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel" >
|
||||
<x>30</x>
|
||||
<y>40</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel" >
|
||||
<x>11</x>
|
||||
<y>79</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
Loading…
Reference in a new issue