Blob Blame History Raw
From 6ddc276d57de297e6fcb57ad68e55abbea5c4dc4 Mon Sep 17 00:00:00 2001
From: Andreas Klauer <Andreas.Klauer@metamorpher.de>
Date: Mon, 25 Feb 2013 22:03:55 +0100
Subject: [PATCH] workaround for filter tree onclick not working (#729)

---
 aqt/browser.py | 20 ++++++++------------
 1 file changed, 8 insertions(+), 12 deletions(-)

diff --git a/aqt/browser.py b/aqt/browser.py
index 53b2fc4..e5e88c7 100644
--- a/aqt/browser.py
+++ b/aqt/browser.py
@@ -683,8 +683,8 @@ by clicking on one on the left."""))
     ######################################################################
 
     class CallbackItem(QTreeWidgetItem):
-        def __init__(self, name, onclick):
-            QTreeWidgetItem.__init__(self, [name])
+        def __init__(self, root, name, onclick):
+            QTreeWidgetItem.__init__(self, root, [name])
             self.onclick = onclick
 
     def setupTree(self):
@@ -698,7 +698,7 @@ by clicking on one on the left."""))
 
     def buildTree(self):
         self.form.tree.clear()
-        root = self.form.tree.invisibleRootItem()
+        root = self.form.tree
         self._systemTagTree(root)
         self._decksTree(root)
         self._modelTree(root)
@@ -752,9 +752,8 @@ by clicking on one on the left."""))
             (_("Leech"), "emblem-important.png", "tag:leech"))
         for name, icon, cmd in tags:
             item = self.CallbackItem(
-                name, lambda c=cmd: self.setFilter(c))
+                root, name, lambda c=cmd: self.setFilter(c))
             item.setIcon(0, QIcon(":/icons/" + icon))
-            root.addChild(item)
         return root
 
     def _userTagTree(self, root):
@@ -762,19 +761,17 @@ by clicking on one on the left."""))
             if t.lower() == "marked" or t.lower() == "leech":
                 continue
             item = self.CallbackItem(
-                t, lambda t=t: self.setFilter("tag", t))
+                root, t, lambda t=t: self.setFilter("tag", t))
             item.setIcon(0, QIcon(":/icons/anki-tag.png"))
-            root.addChild(item)
 
     def _decksTree(self, root):
         grps = self.col.sched.deckDueTree()
         def fillGroups(root, grps, head=""):
             for g in grps:
                 item = self.CallbackItem(
-                g[0], lambda g=g: self.setFilter(
-                    "deck", head+g[0]))
+                    root, g[0], lambda g=g: self.setFilter(
+                        "deck", head+g[0]))
                 item.setIcon(0, QIcon(":/icons/deck16.png"))
-                root.addChild(item)
                 newhead = head + g[0]+"::"
                 fillGroups(item, g[5], newhead)
         fillGroups(root, grps)
@@ -782,9 +779,8 @@ by clicking on one on the left."""))
     def _modelTree(self, root):
         for m in sorted(self.col.models.all(), key=itemgetter("name")):
             mitem = self.CallbackItem(
-                m['name'], lambda m=m: self.setFilter("mid", str(m['id'])))
+                root, m['name'], lambda m=m: self.setFilter("mid", str(m['id'])))
             mitem.setIcon(0, QIcon(":/icons/product_design.png"))
-            root.addChild(mitem)
             # for t in m['tmpls']:
             #     titem = self.CallbackItem(
             #     t['name'], lambda m=m, t=t: self.setFilter(
-- 
1.8.1.4