tweak overview layout

This commit is contained in:
Damien Elmes 2011-03-24 10:21:10 +09:00
parent edd04cffa8
commit abe67f6faa
3 changed files with 32 additions and 54 deletions

View file

@ -135,16 +135,9 @@ class AnkiQt(QMainWindow):
self.disableCardMenuItems()
self.showStudyScreen()
def reset(self, runHooks=True):
# two kinds of resets: partial, which causes objects dealing with
# cards or facts to reload them and notice deletions, and full, which
# is called when models have changed, and reloads everything
if self.deck:
self.deck.reset()
if runHooks:
runHook("guiReset")
self.moveToState("initial")
def reset(self):
self.deck.reset()
runHook("reset")
# HTML helpers
##########################################################################
@ -2262,28 +2255,13 @@ is next loaded."""))
def onCheckDB(self):
"True if no problems"
if not aqt.utils.askUser(_("""\
This operation will find and fix some common problems.<br>
<br>
On the next sync, all cards will be sent to the server.<br>
Any changes on the server since your last sync will be lost.<br>
<br>
<b>This operation is not undoable.</b><br>
Proceed?""")):
This operation will find and fix some common problems.<br><br>
On the next sync, all cards will be sent to the server. \
Any changes on the server since your last sync will be lost.<br><br>
<b>This operation is not undoable.</b> Proceed?""")):
return
ret = self.deck.fixIntegrity()
diag = QDialog(self)
diag.setWindowTitle("Anki")
layout = QVBoxLayout(diag)
diag.setLayout(layout)
text = QTextEdit()
text.setReadOnly(True)
text.setPlainText(ret)
layout.addWidget(text)
box = QDialogButtonBox(QDialogButtonBox.Close)
layout.addWidget(box)
self.connect(box, SIGNAL("rejected()"), diag, SLOT("reject()"))
diag.exec_()
ret = False
aqt.utils.showText(ret)
self.reset()
return ret

View file

@ -6,6 +6,7 @@ import simplejson
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from anki.consts import NEW_CARDS_RANDOM
from anki.hooks import addHook
class Overview(object):
"Deck overview."
@ -13,11 +14,16 @@ class Overview(object):
def __init__(self, mw):
self.mw = mw
self.web = mw.web
addHook("reset", self.refresh)
def show(self):
self._setupToolbar()
self.web.setKeyHandler(self._keyHandler)
self.web.setLinkHandler(self._linkHandler)
self.refresh()
def refresh(self):
print "refreshing"
self._renderPage()
# Handlers
@ -25,34 +31,34 @@ class Overview(object):
def _keyHandler(self, evt):
txt = evt.text()
if txt == "1" or evt.key() in (Qt.Key_Enter,
Qt.Key_Return,
Qt.Key_Space):
self._linkHandler("studysel")
elif txt == "2":
self._linkHandler("studyall")
elif txt == "3":
self._linkHandler("cramsel")
elif txt == "4":
self._linkHandler("cramall")
if evt.key() == Qt.Key_Space:
self._linkHandler("study")
elif txt == "c":
self._linkHandler("cram")
elif txt == "o":
self._linkHandler("opts")
elif txt == "d":
self._linkHandler("list")
elif txt == "g":
self._linkHandler("chgrp")
else:
return
return True
def _linkHandler(self, url):
print "link", url
if url == "studysel":
self.mw.deck.sched.useGroups = True
if url == "study":
self.mw.deck.reset()
self.mw.moveToState("review")
elif url == "cram":
self.mw.deck.cramGroups(self.mw.deck.qconf['revGroups'])
self.mw.moveToState("review")
elif url == "opts":
pass
print "study options"
elif url == "list":
self.mw.close()
elif url == "chgrp":
print "change groups"
# HTML
############################################################
@ -62,22 +68,17 @@ class Overview(object):
fc = self._ovForecast()
tbl = self._overviewTable()
but = self.mw.button
buts = (but("list", _("Deck List"), "d") +
but("refr", _("Refresh"), "r") +
but("opts", _("Study Options"), "o"))
self.web.stdHtml(self._overviewBody % dict(
title=_("Overview"),
table=tbl,
fcsub=_("Reviews over next two weeks"),
fcdata=fc,
buts=buts,
opts=self._ovOpts(),
), css)
_overviewBody = """
<center>
<h1>%(title)s</h1>
%(buts)s
<p>
%(table)s
<p>
@ -121,13 +122,12 @@ $(function () {
buf += line % (
"<a href=chgrp>%s</a>" % _("Selected Groups"),
counts[0], counts[1],
but("studysel", _("Study"), _("1, enter, space"), "gbut") +
but("cramsel", _("Cram"), "3"))
but("study", _("Study"), _("space"), "gbut") +
but("cram", _("Cram"), "c"))
buf += line % (
_("Whole Deck"),
counts[2], counts[3],
but("studyall", _("Study"), "2", "gbut") +
but("cramall", _("Cram"), "4"))
but("opts", _("Study Options"), "o"))
buf += "</table>"
return buf

View file

@ -139,13 +139,13 @@ $(".ansbut").focus();
return buf
def _defaultEase(self):
if self.card.queue == 2:
if self.mw.deck.sched.answerButtons(self.card) == 4:
return 3
else:
return 2
def _answerButtons(self):
if self.card.queue == 2:
if self.mw.deck.sched.answerButtons(self.card) == 4:
labels = (_("Again"), _("Hard"), _("Good"), _("Easy"))
else:
labels = (_("Again"), _("Good"), _("Easy"))