From 25dbe014b99f5efbbede0a9e1246e82b3f1f54c7 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Sat, 25 Aug 2012 13:40:09 +0900 Subject: [PATCH] some tweaks to the collapse code - don't show indicator for decks with no children - make indicator fit in better - skip the expensive due calculation when re-rendering --- aqt/deckbrowser.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/aqt/deckbrowser.py b/aqt/deckbrowser.py index e8a350c2e..268669237 100644 --- a/aqt/deckbrowser.py +++ b/aqt/deckbrowser.py @@ -83,6 +83,8 @@ body { margin: 1em; -webkit-user-select: none; } .current { background-color: #e7e7e7; } .decktd { min-width: 15em; } .count { width: 6em; text-align: right; } +.collapse { color: #000; text-decoration:none; display:inline-block; + width: 1em; } """ % dict(width=_dragIndicatorBorderWidth) _body = """ @@ -127,9 +129,11 @@ body { margin: 1em; -webkit-user-select: none; } """ - def _renderPage(self): + def _renderPage(self, reuse=False): css = self.mw.sharedCSS + self._css - tree = self._renderDeckTree(self.mw.col.sched.deckDueTree()) + if not reuse: + self._dueTree = self.mw.col.sched.deckDueTree() + tree = self._renderDeckTree(self._dueTree) stats = self._renderStats() self.web.stdHtml(self._body%dict(tree=tree, stats=stats), css=css, js=anki.js.jquery+anki.js.ui) @@ -169,9 +173,9 @@ where id > ?""", (self.mw.col.sched.dayCutoff-86400)*1000) if parent['collapsed']: buff = "" return buff - prefix = "(-)" + prefix = "-" if self.mw.col.decks.get(did)['collapsed']: - prefix = "(+)" + prefix = "+" due += lrn def indent(): return " "*6*depth @@ -181,9 +185,13 @@ where id > ?""", (self.mw.col.sched.dayCutoff-86400)*1000) klass = 'deck' buf = "" % (klass, did) # deck link + if children: + collapse = "%s" % (did, prefix) + else: + collapse = "" buf += """ -%s%s%s"""% ( - indent(), did, prefix, did, name) +%s%s%s"""% ( + indent(), collapse, did, name) # due counts def nonzeroColour(cnt, colour): if not cnt: @@ -247,7 +255,7 @@ where id > ?""", (self.mw.col.sched.dayCutoff-86400)*1000) def _collapse(self, did): self.mw.col.decks.collapse(did) - self.show() + self._renderPage(reuse=True) def _dragDeckOnto(self, draggedDeckDid, ontoDeckDid): try: