mirror of
https://github.com/ankitects/anki.git
synced 2025-09-21 15:32:23 -04:00
tweak overview layout
This commit is contained in:
parent
edd04cffa8
commit
abe67f6faa
3 changed files with 32 additions and 54 deletions
38
aqt/main.py
38
aqt/main.py
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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"))
|
||||
|
|
Loading…
Reference in a new issue