mirror of
https://github.com/ankitects/anki.git
synced 2025-11-12 07:37:11 -05:00
give the graphs an option to change period
This commit is contained in:
parent
dcd603bbf0
commit
5682043427
1 changed files with 49 additions and 12 deletions
61
aqt/stats.py
61
aqt/stats.py
|
|
@ -72,22 +72,23 @@ class PrintableReport(QDialog):
|
||||||
self.setModal(True)
|
self.setModal(True)
|
||||||
self.mw.progress.start()
|
self.mw.progress.start()
|
||||||
self.web = AnkiWebView(self)
|
self.web = AnkiWebView(self)
|
||||||
stats = func()
|
|
||||||
l = QVBoxLayout(self)
|
l = QVBoxLayout(self)
|
||||||
l.setContentsMargins(0,0,0,0)
|
l.setContentsMargins(0,0,0,0)
|
||||||
l.addWidget(self.web)
|
l.addWidget(self.web)
|
||||||
self.setLayout(l)
|
self.setLayout(l)
|
||||||
self.report = func()
|
|
||||||
self.css = css
|
self.css = css
|
||||||
self.web.stdHtml(self.report, css=css)
|
if func:
|
||||||
box = QDialogButtonBox(QDialogButtonBox.Close)
|
self.report = func()
|
||||||
b = box.addButton(_("Open In Browser"), QDialogButtonBox.ActionRole)
|
self.web.stdHtml(self.report, css=css)
|
||||||
|
self.box = QDialogButtonBox(QDialogButtonBox.Close)
|
||||||
|
b = self.box.addButton(_("Open In Browser"), QDialogButtonBox.ActionRole)
|
||||||
b.connect(b, SIGNAL("clicked()"), self.browser)
|
b.connect(b, SIGNAL("clicked()"), self.browser)
|
||||||
b.setAutoDefault(False)
|
b.setAutoDefault(False)
|
||||||
l.addWidget(box)
|
l.addWidget(self.box)
|
||||||
self.connect(box, SIGNAL("accepted()"), self.browser)
|
self.connect(self.box, SIGNAL("rejected()"), self, SLOT("reject()"))
|
||||||
self.connect(box, SIGNAL("rejected()"), self, SLOT("reject()"))
|
|
||||||
self.mw.progress.finish()
|
self.mw.progress.finish()
|
||||||
|
|
||||||
|
def run(self):
|
||||||
self.exec_()
|
self.exec_()
|
||||||
|
|
||||||
def reject(self):
|
def reject(self):
|
||||||
|
|
@ -119,11 +120,47 @@ h1 { font-size: 18px; border-bottom: 1px solid #000; margin-top: 1em;
|
||||||
"deckstats",
|
"deckstats",
|
||||||
_("Deck Statistics"),
|
_("Deck Statistics"),
|
||||||
mw.deck.deckStats,
|
mw.deck.deckStats,
|
||||||
css)
|
css).run()
|
||||||
|
|
||||||
# Graphs
|
# Graphs
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
|
class Graphs(PrintableReport):
|
||||||
|
|
||||||
|
def __init__(self, *args):
|
||||||
|
self.period = 0
|
||||||
|
self.periods = [
|
||||||
|
_("Period: 1 month"),
|
||||||
|
_("Period: 1 year"),
|
||||||
|
_("Period: deck life")]
|
||||||
|
PrintableReport.__init__(self, *args)
|
||||||
|
b = self.box.addButton("", QDialogButtonBox.ActionRole)
|
||||||
|
b.connect(b, SIGNAL("clicked()"), self.changePeriod)
|
||||||
|
self.periodBut = b
|
||||||
|
self.updatePeriodBut()
|
||||||
|
self.refresh()
|
||||||
|
|
||||||
|
def changePeriod(self):
|
||||||
|
m = QMenu(self)
|
||||||
|
for c, p in enumerate(self.periods):
|
||||||
|
a = m.addAction(p)
|
||||||
|
a.connect(a, SIGNAL("activated()"), lambda n=c: self._changePeriod(n))
|
||||||
|
m.exec_(QCursor.pos())
|
||||||
|
|
||||||
|
def _changePeriod(self, n):
|
||||||
|
self.period = n
|
||||||
|
self.updatePeriodBut()
|
||||||
|
self.refresh()
|
||||||
|
|
||||||
|
def refresh(self):
|
||||||
|
self.mw.progress.start(immediate=True)
|
||||||
|
self.report = self.mw.deck.graphs().report(type=self.period)
|
||||||
|
self.web.stdHtml(self.report, css=self.css)
|
||||||
|
self.mw.progress.finish()
|
||||||
|
|
||||||
|
def updatePeriodBut(self):
|
||||||
|
self.periodBut.setText(self.periods[self.period])
|
||||||
|
|
||||||
def graphs(mw):
|
def graphs(mw):
|
||||||
css=mw.sharedCSS+"""
|
css=mw.sharedCSS+"""
|
||||||
body { margin: 2em; font-family: arial; background: #eee; }
|
body { margin: 2em; font-family: arial; background: #eee; }
|
||||||
|
|
@ -132,9 +169,9 @@ h1 { font-size: 18px; border-bottom: 1px solid #000; margin-top: 1em;
|
||||||
.info {float:right; padding: 10px; max-width: 300px; border-radius: 5px;
|
.info {float:right; padding: 10px; max-width: 300px; border-radius: 5px;
|
||||||
background: #ddd; font-size: 14px; }
|
background: #ddd; font-size: 14px; }
|
||||||
"""
|
"""
|
||||||
return PrintableReport(
|
return Graphs(
|
||||||
mw,
|
mw,
|
||||||
"graphs",
|
"graphs",
|
||||||
_("Graphs"),
|
_("Graphs"),
|
||||||
lambda: mw.deck.graphs().report(),
|
None,
|
||||||
css)
|
css).run()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue