Add ability to remove a format to bulk metadata edit dialog

This commit is contained in:
Kovid Goyal 2008-09-29 11:19:04 -07:00
parent 58e97405fc
commit 5d91dfe0f7
3 changed files with 29 additions and 1 deletions

View File

@ -29,6 +29,11 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog):
id, name = i id, name = i
self.series.addItem(name) 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('') self.series.lineEdit().setText('')
QObject.connect(self.series, SIGNAL('currentIndexChanged(int)'), self.series_changed) QObject.connect(self.series, SIGNAL('currentIndexChanged(int)'), self.series_changed)
QObject.connect(self.series, SIGNAL('editTextChanged(QString)'), 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) self.db.unapply_tags(id, remove_tags)
if self.write_series: if self.write_series:
self.db.set_series(id, qstring_to_unicode(self.series.currentText())) 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): def series_changed(self):
self.write_series = True self.write_series = True

View File

@ -211,6 +211,19 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="7" column="1" >
<widget class="QComboBox" name="remove_format" />
</item>
<item row="7" column="0" >
<widget class="QLabel" name="label_5" >
<property name="text" >
<string>Remove &amp;format:</string>
</property>
<property name="buddy" >
<cstring>remove_format</cstring>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>

View File

@ -570,6 +570,12 @@ class LibraryDatabase2(LibraryDatabase):
p.loadFromData(data) p.loadFromData(data)
p.save(path) 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): def formats(self, index, index_is_id=False):
''' Return available formats as a comma separated list or None if htere are no available formats ''' ''' 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) id = index if index_is_id else self.id(index)