mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Add an action to remove all formats to the remove books button
This commit is contained in:
parent
679a56660c
commit
8713db208e
@ -94,6 +94,9 @@ class DeleteAction(InterfaceAction):
|
|||||||
self.delete_menu.addAction(
|
self.delete_menu.addAction(
|
||||||
_('Remove all formats from selected books, except...'),
|
_('Remove all formats from selected books, except...'),
|
||||||
self.delete_all_but_selected_formats)
|
self.delete_all_but_selected_formats)
|
||||||
|
self.delete_menu.addAction(
|
||||||
|
_('Remove all formats from selected books'),
|
||||||
|
self.delete_all_formats)
|
||||||
self.delete_menu.addAction(
|
self.delete_menu.addAction(
|
||||||
_('Remove covers from selected books'), self.delete_covers)
|
_('Remove covers from selected books'), self.delete_covers)
|
||||||
self.delete_menu.addSeparator()
|
self.delete_menu.addSeparator()
|
||||||
@ -174,6 +177,28 @@ class DeleteAction(InterfaceAction):
|
|||||||
if ids:
|
if ids:
|
||||||
self.gui.tags_view.recount()
|
self.gui.tags_view.recount()
|
||||||
|
|
||||||
|
def delete_all_formats(self, *args):
|
||||||
|
ids = self._get_selected_ids()
|
||||||
|
if not ids:
|
||||||
|
return
|
||||||
|
if not confirm('<p>'+_('<b>All formats</b> for the selected books will '
|
||||||
|
'be <b>deleted</b> from your library.<br>'
|
||||||
|
'The book metadata will be kept. Are you sure?')
|
||||||
|
+'</p>', 'delete_all_formats', self.gui):
|
||||||
|
return
|
||||||
|
db = self.gui.library_view.model().db
|
||||||
|
for id in ids:
|
||||||
|
fmts = db.formats(id, index_is_id=True, verify_formats=False)
|
||||||
|
if fmts:
|
||||||
|
for fmt in fmts.split(','):
|
||||||
|
self.gui.library_view.model().db.remove_format(id, fmt,
|
||||||
|
index_is_id=True, notify=False)
|
||||||
|
self.gui.library_view.model().refresh_ids(ids)
|
||||||
|
self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(),
|
||||||
|
self.gui.library_view.currentIndex())
|
||||||
|
if ids:
|
||||||
|
self.gui.tags_view.recount()
|
||||||
|
|
||||||
def remove_matching_books_from_device(self, *args):
|
def remove_matching_books_from_device(self, *args):
|
||||||
if not self.gui.device_manager.is_device_connected:
|
if not self.gui.device_manager.is_device_connected:
|
||||||
d = error_dialog(self.gui, _('Cannot delete books'),
|
d = error_dialog(self.gui, _('Cannot delete books'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user