mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 15:32:23 -04:00
updates for new cram code; remove priority 0 highlight in browser
This commit is contained in:
parent
8032c4a66b
commit
f549dfcfa9
5 changed files with 65 additions and 101 deletions
|
@ -323,15 +323,6 @@ class StatusDelegate(QItemDelegate):
|
||||||
painter.save()
|
painter.save()
|
||||||
painter.fillRect(option.rect, brush)
|
painter.fillRect(option.rect, brush)
|
||||||
painter.restore()
|
painter.restore()
|
||||||
if row[CARD_PRIORITY] == 0:
|
|
||||||
# custom render
|
|
||||||
if index.row() % 2 == 0:
|
|
||||||
brush = QBrush(QColor(COLOUR_INACTIVE1))
|
|
||||||
else:
|
|
||||||
brush = QBrush(QColor(COLOUR_INACTIVE2))
|
|
||||||
painter.save()
|
|
||||||
painter.fillRect(option.rect, brush)
|
|
||||||
painter.restore()
|
|
||||||
elif "Marked" in row[CARD_TAGS]:
|
elif "Marked" in row[CARD_TAGS]:
|
||||||
if index.row() % 2 == 0:
|
if index.row() % 2 == 0:
|
||||||
brush = QBrush(QColor(COLOUR_MARKED1))
|
brush = QBrush(QColor(COLOUR_MARKED1))
|
||||||
|
@ -968,12 +959,8 @@ where id in %s""" % ids2str(sf))
|
||||||
self.updateAfterCardChange()
|
self.updateAfterCardChange()
|
||||||
|
|
||||||
def cram(self):
|
def cram(self):
|
||||||
if ui.utils.askUser(
|
self.close()
|
||||||
_("Cram selected cards in new deck?"),
|
self.parent.onCram(self.selectedCards())
|
||||||
help="CramMode",
|
|
||||||
parent=self):
|
|
||||||
self.close()
|
|
||||||
self.parent.onCram(self.selectedCards())
|
|
||||||
|
|
||||||
def onChangeModel(self):
|
def onChangeModel(self):
|
||||||
sf = self.selectedFacts()
|
sf = self.selectedFacts()
|
||||||
|
|
|
@ -329,6 +329,7 @@ Please do not file a bug report with Anki.<br>""")
|
||||||
if self.deck.isEmpty():
|
if self.deck.isEmpty():
|
||||||
return self.moveToState("deckEmpty")
|
return self.moveToState("deckEmpty")
|
||||||
else:
|
else:
|
||||||
|
# timeboxing only supported using the standard scheduler
|
||||||
if not self.deck.finishScheduler:
|
if not self.deck.finishScheduler:
|
||||||
if (self.config['showStudyScreen'] and
|
if (self.config['showStudyScreen'] and
|
||||||
not self.deck.sessionStartTime):
|
not self.deck.sessionStartTime):
|
||||||
|
@ -828,10 +829,7 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
|
||||||
def onClose(self):
|
def onClose(self):
|
||||||
# allow focusOut to save
|
# allow focusOut to save
|
||||||
if self.inMainWindow() or not self.app.activeWindow():
|
if self.inMainWindow() or not self.app.activeWindow():
|
||||||
isCram = self.isCramming()
|
self.saveAndClose()
|
||||||
self.saveAndClose(hideWelcome=isCram)
|
|
||||||
if isCram:
|
|
||||||
self.loadDeck(self.config['recentDeckPaths'][0])
|
|
||||||
else:
|
else:
|
||||||
self.app.activeWindow().close()
|
self.app.activeWindow().close()
|
||||||
|
|
||||||
|
@ -1739,7 +1737,8 @@ learnt today")
|
||||||
self.mainWin.failedCardsOption.currentIndex())
|
self.mainWin.failedCardsOption.currentIndex())
|
||||||
self.deck.flushMod()
|
self.deck.flushMod()
|
||||||
self.deck.reset()
|
self.deck.reset()
|
||||||
self.deck.startSession()
|
if not self.deck.finishScheduler:
|
||||||
|
self.deck.startSession()
|
||||||
self.config['studyOptionsScreen'] = self.mainWin.tabWidget.currentIndex()
|
self.config['studyOptionsScreen'] = self.mainWin.tabWidget.currentIndex()
|
||||||
self.moveToState("getQuestion")
|
self.moveToState("getQuestion")
|
||||||
|
|
||||||
|
@ -1890,26 +1889,12 @@ learnt today")
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def onAddCard(self):
|
def onAddCard(self):
|
||||||
if self.isCramming():
|
|
||||||
ui.utils.showInfo(_("""\
|
|
||||||
You are currently cramming. Please close this deck first."""))
|
|
||||||
return
|
|
||||||
ui.dialogs.get("AddCards", self)
|
ui.dialogs.get("AddCards", self)
|
||||||
|
|
||||||
def cramEditWarning(self):
|
|
||||||
self.showToolTip(_("""\
|
|
||||||
<h1>Cramming</h1>
|
|
||||||
You are currently cramming. Any edits you make to this deck
|
|
||||||
will be lost when you close the deck."""))
|
|
||||||
|
|
||||||
def onEditDeck(self):
|
def onEditDeck(self):
|
||||||
ui.dialogs.get("CardList", self)
|
ui.dialogs.get("CardList", self)
|
||||||
if self.isCramming():
|
|
||||||
self.cramEditWarning()
|
|
||||||
|
|
||||||
def onEditCurrent(self):
|
def onEditCurrent(self):
|
||||||
if self.isCramming():
|
|
||||||
self.cramEditWarning()
|
|
||||||
self.moveToState("editCurrentFact")
|
self.moveToState("editCurrentFact")
|
||||||
|
|
||||||
def onDeckProperties(self):
|
def onDeckProperties(self):
|
||||||
|
@ -1940,10 +1925,6 @@ will be lost when you close the deck."""))
|
||||||
##########################################################################
|
##########################################################################
|
||||||
|
|
||||||
def onImport(self):
|
def onImport(self):
|
||||||
if self.isCramming():
|
|
||||||
ui.utils.showInfo(_("""\
|
|
||||||
You are currently cramming. Please close this deck first."""))
|
|
||||||
return
|
|
||||||
if self.deck is None:
|
if self.deck is None:
|
||||||
self.onNew()
|
self.onNew()
|
||||||
if not self.deck.path:
|
if not self.deck.path:
|
||||||
|
@ -1974,59 +1955,48 @@ window will open."""))
|
||||||
e.exportInto(path)
|
e.exportInto(path)
|
||||||
return (e, path)
|
return (e, path)
|
||||||
|
|
||||||
def isCramming(self):
|
|
||||||
return self.deck is not None and self.deck.name() == "cram"
|
|
||||||
|
|
||||||
def onCram(self, cardIds=[]):
|
def onCram(self, cardIds=[]):
|
||||||
if self.isCramming():
|
te = ui.tagedit.TagEdit(self)
|
||||||
ui.utils.showInfo(
|
te.setDeck(self.deck, "all")
|
||||||
_("Already cramming. Please close this deck first."))
|
diag = ui.utils.GetTextDialog(
|
||||||
return
|
self, _("Tags to cram:"), help="CramMode", edit=te)
|
||||||
if not self.save(required=True):
|
l = diag.layout()
|
||||||
return
|
g = QGroupBox(_("Review Mode"))
|
||||||
if not cardIds:
|
l.insertWidget(2, g)
|
||||||
(s, ret) = ui.utils.getTag(self, self.deck, _("Tags to cram:"),
|
box = QVBoxLayout()
|
||||||
help="CramMode", tags="all")
|
g.setLayout(box)
|
||||||
if not ret:
|
keep = QRadioButton(_("Show oldest modified first"))
|
||||||
return
|
box.addWidget(keep)
|
||||||
s = unicode(s)
|
keep.setChecked(True)
|
||||||
# open tmp deck
|
diag.setTabOrder(diag.l, keep)
|
||||||
(e, path) = self._copyToTmpDeck(tags=s)
|
order = QRadioButton(_("Show in order added"))
|
||||||
else:
|
box.addWidget(order)
|
||||||
(e, path) = self._copyToTmpDeck(ids=cardIds)
|
random = QRadioButton(_("Show in random order"))
|
||||||
if not e.exportedCards:
|
box.addWidget(random)
|
||||||
ui.utils.showInfo(_("No cards matched the provided tags."))
|
# hide tag list if we have ids
|
||||||
return
|
if cardIds:
|
||||||
if self.config['randomizeOnCram']:
|
diag.l.hide()
|
||||||
n = 3
|
diag.qlabel.hide()
|
||||||
else:
|
if diag.exec_():
|
||||||
n = 2
|
if keep.isChecked():
|
||||||
p = ui.utils.ProgressWin(self, n, 0, _("Cram"))
|
order = "modified"
|
||||||
p.update(_("Loading deck..."))
|
elif order.isChecked():
|
||||||
oldMedia = self.deck.mediaDir()
|
order = "created"
|
||||||
self.deck.close()
|
else:
|
||||||
self.deck = None
|
order = "random()"
|
||||||
self.loadDeck(path, media=oldMedia)
|
if cardIds:
|
||||||
self.config['recentDeckPaths'].pop(0)
|
active = cardIds
|
||||||
self.deck.newCardsPerDay = 99999
|
else:
|
||||||
self.deck.delay0 = 300
|
active = unicode(diag.l.text())
|
||||||
self.deck.delay1 = 600
|
self.deck.setupCramScheduler(active, order)
|
||||||
self.deck.hardIntervalMin = 0.01388
|
if self.state == "studyScreen":
|
||||||
self.deck.hardIntervalMax = 0.02083
|
self.onStartReview()
|
||||||
self.deck.midIntervalMin = 0.0416
|
else:
|
||||||
self.deck.midIntervalMax = 0.0486
|
self.deck.reset()
|
||||||
self.deck.easyIntervalMin = 0.2083
|
self.deck.getCard() # so scheduler will reset if empty
|
||||||
self.deck.easyIntervalMax = 0.25
|
self.moveToState("initial")
|
||||||
self.deck.newCardOrder = 0
|
if not self.deck.finishScheduler:
|
||||||
self.deck.syncName = None
|
ui.utils.showInfo(_("No cards matched the provided tags."))
|
||||||
self.deck.collapseTime = 1
|
|
||||||
p.update()
|
|
||||||
self.deck.updateDynamicIndices()
|
|
||||||
if self.config['randomizeOnCram']:
|
|
||||||
p.update(_("Randomizing..."))
|
|
||||||
self.deck.randomizeNewCards()
|
|
||||||
self.reset()
|
|
||||||
p.finish()
|
|
||||||
|
|
||||||
def onShare(self, tags):
|
def onShare(self, tags):
|
||||||
pwd = os.getcwd()
|
pwd = os.getcwd()
|
||||||
|
@ -2888,10 +2858,6 @@ Proceed?""")):
|
||||||
ui.utils.showInfo(_("Database optimized.\nShrunk by %dKB") % (size/1024.0))
|
ui.utils.showInfo(_("Database optimized.\nShrunk by %dKB") % (size/1024.0))
|
||||||
|
|
||||||
def onCheckMediaDB(self):
|
def onCheckMediaDB(self):
|
||||||
if self.isCramming():
|
|
||||||
ui.utils.showInfo(_("""\
|
|
||||||
You are currently cramming. Please close this deck first."""))
|
|
||||||
return
|
|
||||||
mb = QMessageBox(self)
|
mb = QMessageBox(self)
|
||||||
mb.setWindowTitle(_("Anki"))
|
mb.setWindowTitle(_("Anki"))
|
||||||
mb.setIcon(QMessageBox.Warning)
|
mb.setIcon(QMessageBox.Warning)
|
||||||
|
|
|
@ -173,11 +173,11 @@ class StatusView(object):
|
||||||
if not self.main.currentCard:
|
if not self.main.currentCard:
|
||||||
remStr += "%(failed1)s" + s + "%(rev1)s" + s + "%(new1)s"
|
remStr += "%(failed1)s" + s + "%(rev1)s" + s + "%(new1)s"
|
||||||
else:
|
else:
|
||||||
q = self.main.deck.queueForCard(self.main.currentCard)
|
t = self.main.deck.cardType(self.main.currentCard)
|
||||||
if q == "failed":
|
if t == 0:
|
||||||
remStr += ("<u>%(failed1)s</u>" + s +
|
remStr += ("<u>%(failed1)s</u>" + s +
|
||||||
"%(rev1)s" + s + "%(new1)s")
|
"%(rev1)s" + s + "%(new1)s")
|
||||||
elif q == "rev":
|
elif t == 1:
|
||||||
remStr += ("%(failed1)s" + s + "<u>%(rev1)s</u>" + s +
|
remStr += ("%(failed1)s" + s + "<u>%(rev1)s</u>" + s +
|
||||||
"%(new1)s")
|
"%(new1)s")
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -120,8 +120,9 @@ class GetTextDialog(QDialog):
|
||||||
self.setWindowTitle("Anki")
|
self.setWindowTitle("Anki")
|
||||||
self.question = question
|
self.question = question
|
||||||
self.help = help
|
self.help = help
|
||||||
|
self.qlabel = QLabel(question)
|
||||||
v = QVBoxLayout()
|
v = QVBoxLayout()
|
||||||
v.addWidget(QLabel(question))
|
v.addWidget(self.qlabel)
|
||||||
if not edit:
|
if not edit:
|
||||||
edit = QLineEdit()
|
edit = QLineEdit()
|
||||||
self.l = edit
|
self.l = edit
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>605</width>
|
<width>605</width>
|
||||||
<height>563</height>
|
<height>565</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
|
@ -791,6 +791,16 @@
|
||||||
<property name="margin">
|
<property name="margin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_8">
|
||||||
|
<property name="text">
|
||||||
|
<string><h1>Study Options</h1></string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer_4">
|
<spacer name="verticalSpacer_4">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
@ -802,7 +812,7 @@
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="sizeHint" stdset="0">
|
||||||
<size>
|
<size>
|
||||||
<width>20</width>
|
<width>20</width>
|
||||||
<height>6</height>
|
<height>12</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</spacer>
|
||||||
|
@ -1324,7 +1334,7 @@
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Review</string>
|
<string>&Review</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="icon">
|
<property name="icon">
|
||||||
<iconset resource="../icons.qrc">
|
<iconset resource="../icons.qrc">
|
||||||
|
|
Loading…
Reference in a new issue