diff --git a/aqt/groupsel.py b/aqt/groupsel.py
index 2ab695594..e28ec00ff 100644
--- a/aqt/groupsel.py
+++ b/aqt/groupsel.py
@@ -21,21 +21,44 @@ class GroupSel(QDialog):
def load(self):
import time
- t = time.time()
+ self.mw.progress.start()
grps = self.mw.deck.sched.groupCountTree()
- print "groups", time.time() - t
+ self.mw.progress.finish()
+ self._groupMap = {}
items = self._makeItems(grps)
self.form.tree.addTopLevelItems(items)
+ for item in items:
+ self._addButtons(item)
+ h = self.form.tree.header()
+ h.setResizeMode(QHeaderView.ResizeToContents)
+ h.setResizeMode(0, QHeaderView.Stretch)
+ h.setMovable(False)
+ self.form.tree.setIndentation(15)
+ self.form.tree.expandAll()
+
+ def _addButtons(self, item):
+ gid = self._groupMap[unicode(item.text(0))]
+ if gid:
+ b = QPushButton("Edit")
+ b.setFixedHeight(20)
+ b.connect(b, SIGNAL("clicked()"), lambda g=gid: self._edit(gid))
+ self.form.tree.setItemWidget(item, 4, b)
+ for i in range(item.childCount()):
+ self._addButtons(item.child(i))
+
+ def _edit(self, gid):
+ print "edit", gid
def _makeItems(self, grps):
def makeItems(grp):
branch = QTreeWidgetItem()
branch.setText(0, grp[0])
- branch.setText(1, str(grp[1]))
- branch.setText(2, str(grp[2]))
- branch.setText(3, str(grp[3]))
- if grp[4]:
- for c in grp[4]:
+ branch.setText(1, str(grp[2]))
+ branch.setText(2, str(grp[3]))
+ branch.setText(3, str(grp[4]))
+ self._groupMap[grp[0]] = grp[1]
+ if grp[5]:
+ for c in grp[5]:
branch.addChild(makeItems(c))
return branch
top = [makeItems(g) for g in grps]
diff --git a/designer/groupsel.ui b/designer/groupsel.ui
index bbc290568..12fd5f273 100644
--- a/designer/groupsel.ui
+++ b/designer/groupsel.ui
@@ -19,6 +19,9 @@
QAbstractItemView::MultiSelection
+
+ false
+
Group
@@ -41,7 +44,7 @@
-
+ Actions