From a70d7be25b0083fb6304351fc4e85ee365d08202 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 29 Mar 2011 17:12:49 +0900 Subject: [PATCH] add group deletion, add checkpoint() --- aqt/groupconf.py | 4 ++-- aqt/groupman.py | 27 +++++++++++++++++++++------ aqt/main.py | 4 ++++ aqt/reviewer.py | 1 - 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/aqt/groupconf.py b/aqt/groupconf.py index 6e3bb85bc..e25e9250e 100644 --- a/aqt/groupconf.py +++ b/aqt/groupconf.py @@ -130,7 +130,7 @@ class GroupConf(QDialog): c = self.conf c['maxTaken'] = f.maxTaken.value() # update db - self.mw.deck.save(_("Group Options")) + self.mw.checkpoint(_("Group Options")) self.mw.deck.db.execute( "update gconf set conf = ? where id = ?", simplejson.dumps(self.conf), self.gcid) @@ -197,7 +197,7 @@ class GroupConfSelector(QDialog): if gcid == 1: showInfo(_("The default configuration can't be removed."), self) else: - self.mw.deck.save(_("Delete Group Config")) + self.mw.checkpoint(_("Delete Group Config")) self.mw.deck.db.execute( "update groups set gcid = 1 where gcid = ?", gcid) self.mw.deck.db.execute( diff --git a/aqt/groupman.py b/aqt/groupman.py index fc09ee674..e4cf0058a 100644 --- a/aqt/groupman.py +++ b/aqt/groupman.py @@ -35,11 +35,11 @@ class GroupManager(QDialog): self.form.tree.addTopLevelItems(items) self.items = items self.form.tree.expandAll() + # default to check column + self.form.tree.setCurrentItem(self.items[0], 1) def loadTable(self): self.reload() - # default to check column - self.form.tree.setCurrentItem(self.items[0], 1) # config tree h = self.form.tree.header() h.setResizeMode(QHeaderView.ResizeToContents) @@ -59,8 +59,9 @@ class GroupManager(QDialog): # selection button(_("Select &All"), self.onSelectAll).setShortcut("a") button(_("Select &None"), self.onSelectNone).setShortcut("n") - button(_("&Rename..."), self.onRename).setShortcut("r") b = button(_("&Options..."), self.onEdit).setShortcut("o") + button(_("&Rename..."), self.onRename).setShortcut("r") + button(_("&Delete"), self.onDelete) self.connect(box, SIGNAL("helpRequested()"), lambda: aqt.openHelp("GroupManager")) @@ -81,14 +82,28 @@ class GroupManager(QDialog): for i in self.items: i.setCheckState(COLCHECK, Qt.Unchecked) + def onDelete(self): + item = self.form.tree.currentItem() + old = unicode(item.text(0)) + gid = self.groupMap[old] + if not gid: + showInfo(_("Selected item is not a group.")) + return + elif gid == 1: + showInfo(_("The default group can't be deleted.")) + return + self.mw.checkpoint(_("Delete Group")) + self.mw.deck.db.execute( + "update cards set gid = 1 where gid = ?", gid) + self.mw.deck.db.execute( + "delete from groups where id = ?", gid) + self.reload() + def onRename(self): item = self.form.tree.currentItem() old = unicode(item.text(0)) oldfull = self.fullNames[old] gid = self.groupMap[old] - # if not gid: - # showInfo(_("Selected item is not a group.")) - # return txt = getOnlyText(_("Rename to:"), self, default=oldfull) if txt and not txt.startswith("::") and not txt.endswith("::"): self._rename(oldfull, txt, gid, item) diff --git a/aqt/main.py b/aqt/main.py index b3d921a5d..8edc47de2 100755 --- a/aqt/main.py +++ b/aqt/main.py @@ -617,6 +617,10 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors") else: self.form.actionUndo.setEnabled(False) + def checkpoint(self, name): + self.deck.save(name) + self.maybeEnableUndo() + # Other menu operations ########################################################################## diff --git a/aqt/reviewer.py b/aqt/reviewer.py index 75d326c9b..f3f71b650 100644 --- a/aqt/reviewer.py +++ b/aqt/reviewer.py @@ -452,7 +452,6 @@ div#filler { def _showCongrats(self): self.state = "congrats" self.card = None - self.mw.deck.save() buf = """
%s