diff --git a/aqt/browser.py b/aqt/browser.py
index e63e7449a..9c8d2787a 100644
--- a/aqt/browser.py
+++ b/aqt/browser.py
@@ -794,7 +794,36 @@ where id in %s""" % ids2str(sf))
######################################################################
def changeGroup(self):
- pass
+ d = QDialog(self)
+ d.setWindowModality(Qt.WindowModal)
+ l = QVBoxLayout()
+ d.setLayout(l)
+ lab = QLabel(_("Put cards in group:"))
+ l.addWidget(lab)
+ from aqt.tagedit import TagEdit
+ te = TagEdit(d, type=1)
+ l.addWidget(te)
+ te.setDeck(self.deck)
+ cf = QCheckBox(_("Change facts too"))
+ l.addWidget(cf)
+ bb = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
+ bb.connect(bb, SIGNAL("accepted()"), d, SLOT("accept()"))
+ bb.connect(bb, SIGNAL("rejected()"), d, SLOT("reject()"))
+ l.addWidget(bb)
+ if d.exec_():
+ gid = self.deck.groupId(unicode(te.text()))
+ self.model.beginReset()
+ self.mw.checkpoint(_("Set Group"))
+ self.deck.db.execute(
+ "update cards set gid = ? where id in " + ids2str(
+ self.selectedCards()), gid)
+ if cf.isChecked():
+ self.deck.db.execute(
+ "update facts set gid = ? where id in " + ids2str(
+ self.selectedFacts()), gid)
+ self.onSearch(reset=False)
+ self.mw.requireReset()
+ self.model.endReset()
# Tags
######################################################################
diff --git a/designer/browser.ui b/designer/browser.ui
index 98c42c963..d5ba216fb 100644
--- a/designer/browser.ui
+++ b/designer/browser.ui
@@ -211,6 +211,7 @@
+
@@ -556,6 +557,9 @@
Change Group
+
+ Ctrl+G
+