diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py
index 99175b656b..98ec115e51 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.py
+++ b/src/calibre/gui2/dialogs/metadata_bulk.py
@@ -29,6 +29,11 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog):
id, name = i
self.series.addItem(name)
+ for f in self.db.all_formats():
+ self.remove_format.addItem(f)
+
+ self.remove_format.setCurrentIndex(-1)
+
self.series.lineEdit().setText('')
QObject.connect(self.series, SIGNAL('currentIndexChanged(int)'), self.series_changed)
QObject.connect(self.series, SIGNAL('editTextChanged(QString)'), self.series_changed)
@@ -66,7 +71,11 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog):
self.db.unapply_tags(id, remove_tags)
if self.write_series:
self.db.set_series(id, qstring_to_unicode(self.series.currentText()))
- self.changed = True
+
+ if self.remove_format.currentIndex() > -1:
+ self.db.remove_format(id, unicode(self.remove_format.currentText()), index_is_id=True)
+
+ self.changed = True
def series_changed(self):
self.write_series = True
diff --git a/src/calibre/gui2/dialogs/metadata_bulk.ui b/src/calibre/gui2/dialogs/metadata_bulk.ui
index 1b7929cdc6..334ce1b42b 100644
--- a/src/calibre/gui2/dialogs/metadata_bulk.ui
+++ b/src/calibre/gui2/dialogs/metadata_bulk.ui
@@ -211,6 +211,19 @@
+ -
+
+
+ -
+
+
+ Remove &format:
+
+
+ remove_format
+
+
+
diff --git a/src/calibre/library/database2.py b/src/calibre/library/database2.py
index 3dda826e46..d224555b63 100644
--- a/src/calibre/library/database2.py
+++ b/src/calibre/library/database2.py
@@ -570,6 +570,12 @@ class LibraryDatabase2(LibraryDatabase):
p.loadFromData(data)
p.save(path)
+ def all_formats(self):
+ formats = self.conn.execute('SELECT format from data').fetchall()
+ if not formats:
+ return set([])
+ return set([f[0] for f in formats])
+
def formats(self, index, index_is_id=False):
''' Return available formats as a comma separated list or None if htere are no available formats '''
id = index if index_is_id else self.id(index)