add group deletion, add checkpoint()

This commit is contained in:
Damien Elmes 2011-03-29 17:12:49 +09:00
parent 309f98fcbb
commit a70d7be25b
4 changed files with 27 additions and 9 deletions

View file

@ -130,7 +130,7 @@ class GroupConf(QDialog):
c = self.conf c = self.conf
c['maxTaken'] = f.maxTaken.value() c['maxTaken'] = f.maxTaken.value()
# update db # update db
self.mw.deck.save(_("Group Options")) self.mw.checkpoint(_("Group Options"))
self.mw.deck.db.execute( self.mw.deck.db.execute(
"update gconf set conf = ? where id = ?", "update gconf set conf = ? where id = ?",
simplejson.dumps(self.conf), self.gcid) simplejson.dumps(self.conf), self.gcid)
@ -197,7 +197,7 @@ class GroupConfSelector(QDialog):
if gcid == 1: if gcid == 1:
showInfo(_("The default configuration can't be removed."), self) showInfo(_("The default configuration can't be removed."), self)
else: else:
self.mw.deck.save(_("Delete Group Config")) self.mw.checkpoint(_("Delete Group Config"))
self.mw.deck.db.execute( self.mw.deck.db.execute(
"update groups set gcid = 1 where gcid = ?", gcid) "update groups set gcid = 1 where gcid = ?", gcid)
self.mw.deck.db.execute( self.mw.deck.db.execute(

View file

@ -35,11 +35,11 @@ class GroupManager(QDialog):
self.form.tree.addTopLevelItems(items) self.form.tree.addTopLevelItems(items)
self.items = items self.items = items
self.form.tree.expandAll() self.form.tree.expandAll()
# default to check column
self.form.tree.setCurrentItem(self.items[0], 1)
def loadTable(self): def loadTable(self):
self.reload() self.reload()
# default to check column
self.form.tree.setCurrentItem(self.items[0], 1)
# config tree # config tree
h = self.form.tree.header() h = self.form.tree.header()
h.setResizeMode(QHeaderView.ResizeToContents) h.setResizeMode(QHeaderView.ResizeToContents)
@ -59,8 +59,9 @@ class GroupManager(QDialog):
# selection # selection
button(_("Select &All"), self.onSelectAll).setShortcut("a") button(_("Select &All"), self.onSelectAll).setShortcut("a")
button(_("Select &None"), self.onSelectNone).setShortcut("n") button(_("Select &None"), self.onSelectNone).setShortcut("n")
button(_("&Rename..."), self.onRename).setShortcut("r")
b = button(_("&Options..."), self.onEdit).setShortcut("o") b = button(_("&Options..."), self.onEdit).setShortcut("o")
button(_("&Rename..."), self.onRename).setShortcut("r")
button(_("&Delete"), self.onDelete)
self.connect(box, self.connect(box,
SIGNAL("helpRequested()"), SIGNAL("helpRequested()"),
lambda: aqt.openHelp("GroupManager")) lambda: aqt.openHelp("GroupManager"))
@ -81,14 +82,28 @@ class GroupManager(QDialog):
for i in self.items: for i in self.items:
i.setCheckState(COLCHECK, Qt.Unchecked) 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): def onRename(self):
item = self.form.tree.currentItem() item = self.form.tree.currentItem()
old = unicode(item.text(0)) old = unicode(item.text(0))
oldfull = self.fullNames[old] oldfull = self.fullNames[old]
gid = self.groupMap[old] gid = self.groupMap[old]
# if not gid:
# showInfo(_("Selected item is not a group."))
# return
txt = getOnlyText(_("Rename to:"), self, default=oldfull) txt = getOnlyText(_("Rename to:"), self, default=oldfull)
if txt and not txt.startswith("::") and not txt.endswith("::"): if txt and not txt.startswith("::") and not txt.endswith("::"):
self._rename(oldfull, txt, gid, item) self._rename(oldfull, txt, gid, item)

View file

@ -617,6 +617,10 @@ Debug info:\n%s""") % traceback.format_exc(), help="DeckErrors")
else: else:
self.form.actionUndo.setEnabled(False) self.form.actionUndo.setEnabled(False)
def checkpoint(self, name):
self.deck.save(name)
self.maybeEnableUndo()
# Other menu operations # Other menu operations
########################################################################## ##########################################################################

View file

@ -452,7 +452,6 @@ div#filler {
def _showCongrats(self): def _showCongrats(self):
self.state = "congrats" self.state = "congrats"
self.card = None self.card = None
self.mw.deck.save()
buf = """ buf = """
<center> <center>
%s %s