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)