diff --git a/ankiqt/ui/graphs.py b/ankiqt/ui/graphs.py
index d136ddfbc..c6bbefc13 100644
--- a/ankiqt/ui/graphs.py
+++ b/ankiqt/ui/graphs.py
@@ -56,6 +56,7 @@ class AdjustableFigure(QWidget):
self.hbox = QHBoxLayout()
self.hbox.addSpacing(10)
self.hbox.addStretch(1)
+ self.figureCanvas = None
if self.choices:
self.addCombo()
@@ -71,6 +72,8 @@ class AdjustableFigure(QWidget):
self.vbox.addLayout(self.hbox)
def updateFigure(self):
+ if not self.figureCanvas:
+ self.addFigure()
self.updateTimer = None
self.setUpdatesEnabled(False)
idx = self.vbox.indexOf(self.figureCanvas)
@@ -114,6 +117,8 @@ class AdjustableFigure(QWidget):
def showHide(self):
shown = self.config.get('graphs.shown.' + self.name, True)
self.setVisible(shown)
+ if shown and not self.figureCanvas:
+ self.addFigure()
class IntervalGraph(QDialog):
@@ -154,44 +159,37 @@ def intervalGraph(parent, deck):
# views
nextDue = AdjustableFigure(parent.config, 'due', dg.nextDue, range)
nextDue.addWidget(QLabel(_("
Due
")))
- nextDue.addFigure()
vbox.addWidget(nextDue)
widgets.append(nextDue)
workload = AdjustableFigure(parent.config, 'workload', dg.workDone, range)
workload.addWidget(QLabel(_("Work Done
")))
- workload.addFigure()
vbox.addWidget(workload)
widgets.append(workload)
cumDue = AdjustableFigure(parent.config, 'cum', dg.cumulativeDue, range)
cumDue.addWidget(QLabel(_("Cumulative Due
")))
- cumDue.addFigure()
vbox.addWidget(cumDue)
widgets.append(cumDue)
interval = AdjustableFigure(parent.config, 'interval', dg.intervalPeriod, range)
interval.addWidget(QLabel(_("Intervals
")))
- interval.addFigure()
vbox.addWidget(interval)
widgets.append(interval)
added = AdjustableFigure(parent.config, 'added', dg.addedRecently, range)
added.addWidget(QLabel(_("Added
")))
- added.addFigure()
vbox.addWidget(added)
widgets.append(added)
answered = AdjustableFigure(parent.config, 'answered', lambda *args: apply(
dg.addedRecently, args + ('firstAnswered',)), range)
answered.addWidget(QLabel(_("First Answered
")))
- answered.addFigure()
vbox.addWidget(answered)
widgets.append(answered)
eases = AdjustableFigure(parent.config, 'eases', dg.easeBars)
eases.addWidget(QLabel(_("Eases
")))
- eases.addFigure()
vbox.addWidget(eases)
widgets.append(eases)