Automatic fixes

This commit is contained in:
Kovid Goyal 2010-08-12 18:07:45 -06:00
parent cb07d093e2
commit e09ecee421
5 changed files with 60 additions and 60 deletions

View File

@ -13,19 +13,19 @@ class DeleteAction(object):
def _get_selected_formats(self, msg): def _get_selected_formats(self, msg):
from calibre.gui2.dialogs.select_formats import SelectFormats from calibre.gui2.dialogs.select_formats import SelectFormats
fmts = self.library_view.model().db.all_formats() fmts = self.gui.library_view.model().db.all_formats()
d = SelectFormats([x.lower() for x in fmts], msg, parent=self) d = SelectFormats([x.lower() for x in fmts], msg, parent=self)
if d.exec_() != d.Accepted: if d.exec_() != d.Accepted:
return None return None
return d.selected_formats return d.selected_formats
def _get_selected_ids(self, err_title=_('Cannot delete')): def _get_selected_ids(self, err_title=_('Cannot delete')):
rows = self.library_view.selectionModel().selectedRows() rows = self.gui.library_view.selectionModel().selectedRows()
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
d = error_dialog(self, err_title, _('No book selected')) d = error_dialog(self, err_title, _('No book selected'))
d.exec_() d.exec_()
return set([]) return set([])
return set(map(self.library_view.model().id, rows)) return set(map(self.gui.library_view.model().id, rows))
def delete_selected_formats(self, *args): def delete_selected_formats(self, *args):
ids = self._get_selected_ids() ids = self._get_selected_ids()
@ -37,11 +37,11 @@ class DeleteAction(object):
return return
for id in ids: for id in ids:
for fmt in fmts: for fmt in fmts:
self.library_view.model().db.remove_format(id, fmt, self.gui.library_view.model().db.remove_format(id, fmt,
index_is_id=True, notify=False) index_is_id=True, notify=False)
self.library_view.model().refresh_ids(ids) self.gui.library_view.model().refresh_ids(ids)
self.library_view.model().current_changed(self.library_view.currentIndex(), self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(),
self.library_view.currentIndex()) self.gui.library_view.currentIndex())
if ids: if ids:
self.tags_view.recount() self.tags_view.recount()
@ -54,17 +54,17 @@ class DeleteAction(object):
if fmts is None: if fmts is None:
return return
for id in ids: for id in ids:
bfmts = self.library_view.model().db.formats(id, index_is_id=True) bfmts = self.gui.library_view.model().db.formats(id, index_is_id=True)
if bfmts is None: if bfmts is None:
continue continue
bfmts = set([x.lower() for x in bfmts.split(',')]) bfmts = set([x.lower() for x in bfmts.split(',')])
rfmts = bfmts - set(fmts) rfmts = bfmts - set(fmts)
for fmt in rfmts: for fmt in rfmts:
self.library_view.model().db.remove_format(id, fmt, self.gui.library_view.model().db.remove_format(id, fmt,
index_is_id=True, notify=False) index_is_id=True, notify=False)
self.library_view.model().refresh_ids(ids) self.gui.library_view.model().refresh_ids(ids)
self.library_view.model().current_changed(self.library_view.currentIndex(), self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(),
self.library_view.currentIndex()) self.gui.library_view.currentIndex())
if ids: if ids:
self.tags_view.recount() self.tags_view.recount()
@ -113,16 +113,16 @@ class DeleteAction(object):
if not ids: if not ids:
return return
for id in ids: for id in ids:
self.library_view.model().db.remove_cover(id) self.gui.library_view.model().db.remove_cover(id)
self.library_view.model().refresh_ids(ids) self.gui.library_view.model().refresh_ids(ids)
self.library_view.model().current_changed(self.library_view.currentIndex(), self.gui.library_view.model().current_changed(self.gui.library_view.currentIndex(),
self.library_view.currentIndex()) self.gui.library_view.currentIndex())
def delete_books(self, *args): def delete_books(self, *args):
''' '''
Delete selected books from device or library. Delete selected books from device or library.
''' '''
view = self.current_view() view = self.gui.current_view()
rows = view.selectionModel().selectedRows() rows = view.selectionModel().selectedRows()
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
return return

View File

@ -19,13 +19,13 @@ class EditMetadataAction(object):
def download_metadata(self, checked, covers=True, set_metadata=True, def download_metadata(self, checked, covers=True, set_metadata=True,
set_social_metadata=None): set_social_metadata=None):
rows = self.library_view.selectionModel().selectedRows() rows = self.gui.library_view.selectionModel().selectedRows()
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
d = error_dialog(self, _('Cannot download metadata'), d = error_dialog(self, _('Cannot download metadata'),
_('No books selected')) _('No books selected'))
d.exec_() d.exec_()
return return
db = self.library_view.model().db db = self.gui.library_view.model().db
ids = [db.id(row.row()) for row in rows] ids = [db.id(row.row()) for row in rows]
self.do_download_metadata(ids, covers=covers, self.do_download_metadata(ids, covers=covers,
set_metadata=set_metadata, set_metadata=set_metadata,
@ -33,7 +33,7 @@ class EditMetadataAction(object):
def do_download_metadata(self, ids, covers=True, set_metadata=True, def do_download_metadata(self, ids, covers=True, set_metadata=True,
set_social_metadata=None): set_social_metadata=None):
db = self.library_view.model().db db = self.gui.library_view.model().db
if set_social_metadata is None: if set_social_metadata is None:
get_social_metadata = config['get_social_metadata'] get_social_metadata = config['get_social_metadata']
else: else:
@ -59,11 +59,11 @@ class EditMetadataAction(object):
return return
self._book_metadata_download_check.stop() self._book_metadata_download_check.stop()
self.progress_indicator.stop() self.progress_indicator.stop()
cr = self.library_view.currentIndex().row() cr = self.gui.library_view.currentIndex().row()
x = self._download_book_metadata x = self._download_book_metadata
self._download_book_metadata = None self._download_book_metadata = None
if x.exception is None: if x.exception is None:
self.library_view.model().refresh_ids( self.gui.library_view.model().refresh_ids(
x.updated, cr) x.updated, cr)
if self.cover_flow: if self.cover_flow:
self.cover_flow.dataChanged() self.cover_flow.dataChanged()
@ -83,8 +83,8 @@ class EditMetadataAction(object):
''' '''
Edit metadata of selected books in library. Edit metadata of selected books in library.
''' '''
rows = self.library_view.selectionModel().selectedRows() rows = self.gui.library_view.selectionModel().selectedRows()
previous = self.library_view.currentIndex() previous = self.gui.library_view.currentIndex()
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
d = error_dialog(self, _('Cannot edit metadata'), d = error_dialog(self, _('Cannot edit metadata'),
_('No books selected')) _('No books selected'))
@ -95,12 +95,12 @@ class EditMetadataAction(object):
return self.edit_bulk_metadata(checked) return self.edit_bulk_metadata(checked)
def accepted(id): def accepted(id):
self.library_view.model().refresh_ids([id]) self.gui.library_view.model().refresh_ids([id])
for row in rows: for row in rows:
self._metadata_view_id = self.library_view.model().db.id(row.row()) self._metadata_view_id = self.gui.library_view.model().db.id(row.row())
d = MetadataSingleDialog(self, row.row(), d = MetadataSingleDialog(self, row.row(),
self.library_view.model().db, self.gui.library_view.model().db,
accepted_callback=accepted, accepted_callback=accepted,
cancel_all=rows.index(row) < len(rows)-1) cancel_all=rows.index(row) < len(rows)-1)
d.view_format.connect(self.metadata_view_format) d.view_format.connect(self.metadata_view_format)
@ -108,8 +108,8 @@ class EditMetadataAction(object):
if d.cancel_all: if d.cancel_all:
break break
if rows: if rows:
current = self.library_view.currentIndex() current = self.gui.library_view.currentIndex()
m = self.library_view.model() m = self.gui.library_view.model()
if self.cover_flow: if self.cover_flow:
self.cover_flow.dataChanged() self.cover_flow.dataChanged()
m.current_changed(current, previous) m.current_changed(current, previous)
@ -120,16 +120,16 @@ class EditMetadataAction(object):
Edit metadata of selected books in library in bulk. Edit metadata of selected books in library in bulk.
''' '''
rows = [r.row() for r in \ rows = [r.row() for r in \
self.library_view.selectionModel().selectedRows()] self.gui.library_view.selectionModel().selectedRows()]
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
d = error_dialog(self, _('Cannot edit metadata'), d = error_dialog(self, _('Cannot edit metadata'),
_('No books selected')) _('No books selected'))
d.exec_() d.exec_()
return return
if MetadataBulkDialog(self, rows, if MetadataBulkDialog(self, rows,
self.library_view.model().db).changed: self.gui.library_view.model().db).changed:
self.library_view.model().resort(reset=False) self.gui.library_view.model().resort(reset=False)
self.library_view.model().research() self.gui.library_view.model().research()
self.tags_view.recount() self.tags_view.recount()
if self.cover_flow: if self.cover_flow:
self.cover_flow.dataChanged() self.cover_flow.dataChanged()
@ -141,7 +141,7 @@ class EditMetadataAction(object):
''' '''
if self.stack.currentIndex() != 0: if self.stack.currentIndex() != 0:
return return
rows = self.library_view.selectionModel().selectedRows() rows = self.gui.library_view.selectionModel().selectedRows()
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
return error_dialog(self, _('Cannot merge books'), return error_dialog(self, _('Cannot merge books'),
_('No books selected'), show=True) _('No books selected'), show=True)
@ -186,22 +186,22 @@ class EditMetadataAction(object):
for row in rows: for row in rows:
if row.row() < rows[0].row(): if row.row() < rows[0].row():
dest_row -= 1 dest_row -= 1
ci = self.library_view.model().index(dest_row, 0) ci = self.gui.library_view.model().index(dest_row, 0)
if ci.isValid(): if ci.isValid():
self.library_view.setCurrentIndex(ci) self.gui.library_view.setCurrentIndex(ci)
def add_formats(self, dest_id, src_books, replace=False): def add_formats(self, dest_id, src_books, replace=False):
for src_book in src_books: for src_book in src_books:
if src_book: if src_book:
fmt = os.path.splitext(src_book)[-1].replace('.', '').upper() fmt = os.path.splitext(src_book)[-1].replace('.', '').upper()
with open(src_book, 'rb') as f: with open(src_book, 'rb') as f:
self.library_view.model().db.add_format(dest_id, fmt, f, index_is_id=True, self.gui.library_view.model().db.add_format(dest_id, fmt, f, index_is_id=True,
notify=False, replace=replace) notify=False, replace=replace)
def books_to_merge(self, rows): def books_to_merge(self, rows):
src_books = [] src_books = []
src_ids = [] src_ids = []
m = self.library_view.model() m = self.gui.library_view.model()
for i, row in enumerate(rows): for i, row in enumerate(rows):
id_ = m.id(row) id_ = m.id(row)
if i == 0: if i == 0:
@ -216,10 +216,10 @@ class EditMetadataAction(object):
return [dest_id, src_books, src_ids] return [dest_id, src_books, src_ids]
def delete_books_after_merge(self, ids_to_delete): def delete_books_after_merge(self, ids_to_delete):
self.library_view.model().delete_books_by_id(ids_to_delete) self.gui.library_view.model().delete_books_by_id(ids_to_delete)
def merge_metadata(self, dest_id, src_ids): def merge_metadata(self, dest_id, src_ids):
db = self.library_view.model().db db = self.gui.library_view.model().db
dest_mi = db.get_metadata(dest_id, index_is_id=True, get_cover=True) dest_mi = db.get_metadata(dest_id, index_is_id=True, get_cover=True)
orig_dest_comments = dest_mi.comments orig_dest_comments = dest_mi.comments
for src_id in src_ids: for src_id in src_ids:

View File

@ -29,8 +29,8 @@ class FetchNewsAction(object):
if job.failed: if job.failed:
self.scheduler.recipe_download_failed(arg) self.scheduler.recipe_download_failed(arg)
return self.job_exception(job) return self.job_exception(job)
id = self.library_view.model().add_news(pt.name, arg) id = self.gui.library_view.model().add_news(pt.name, arg)
self.library_view.model().reset() self.gui.library_view.model().reset()
sync = dynamic.get('news_to_be_synced', set([])) sync = dynamic.get('news_to_be_synced', set([]))
sync.add(id) sync.add(id)
dynamic.set('news_to_be_synced', sync) dynamic.set('news_to_be_synced', sync)

View File

@ -28,7 +28,7 @@ class SaveToDiskAction(object):
single_format=prefs['output_format']) single_format=prefs['output_format'])
def save_to_disk(self, checked, single_dir=False, single_format=None): def save_to_disk(self, checked, single_dir=False, single_format=None):
rows = self.current_view().selectionModel().selectedRows() rows = self.gui.current_view().selectionModel().selectedRows()
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
return error_dialog(self, _('Cannot save to disk'), return error_dialog(self, _('Cannot save to disk'),
_('No books selected'), show=True) _('No books selected'), show=True)
@ -37,7 +37,7 @@ class SaveToDiskAction(object):
if not path: if not path:
return return
dpath = os.path.abspath(path).replace('/', os.sep) dpath = os.path.abspath(path).replace('/', os.sep)
lpath = self.library_view.model().db.library_path.replace('/', os.sep) lpath = self.gui.library_view.model().db.library_path.replace('/', os.sep)
if dpath.startswith(lpath): if dpath.startswith(lpath):
return error_dialog(self, _('Not allowed'), return error_dialog(self, _('Not allowed'),
_('You are trying to save files into the calibre ' _('You are trying to save files into the calibre '
@ -45,7 +45,7 @@ class SaveToDiskAction(object):
'library. Save to disk is meant to export ' 'library. Save to disk is meant to export '
'files from your calibre library elsewhere.'), show=True) 'files from your calibre library elsewhere.'), show=True)
if self.current_view() is self.library_view: if self.gui.current_view() is self.gui.library_view:
from calibre.gui2.add import Saver from calibre.gui2.add import Saver
from calibre.library.save_to_disk import config from calibre.library.save_to_disk import config
opts = config().parse() opts = config().parse()
@ -61,12 +61,12 @@ class SaveToDiskAction(object):
opts.template = opts.template.split('/')[-1].strip() opts.template = opts.template.split('/')[-1].strip()
if not opts.template: if not opts.template:
opts.template = '{title} - {authors}' opts.template = '{title} - {authors}'
self._saver = Saver(self, self.library_view.model().db, self._saver = Saver(self, self.gui.library_view.model().db,
Dispatcher(self._books_saved), rows, path, opts, Dispatcher(self._books_saved), rows, path, opts,
spare_server=self.spare_server) spare_server=self.spare_server)
else: else:
paths = self.current_view().model().paths(rows) paths = self.gui.current_view().model().paths(rows)
self.device_manager.save_books( self.device_manager.save_books(
Dispatcher(self.books_saved), paths, path) Dispatcher(self.books_saved), paths, path)

View File

@ -19,18 +19,18 @@ from calibre.ptempfile import PersistentTemporaryFile
class ViewAction(object): class ViewAction(object):
def view_format(self, row, format): def view_format(self, row, format):
fmt_path = self.library_view.model().db.format_abspath(row, format) fmt_path = self.gui.library_view.model().db.format_abspath(row, format)
if fmt_path: if fmt_path:
self._view_file(fmt_path) self._view_file(fmt_path)
def view_format_by_id(self, id_, format): def view_format_by_id(self, id_, format):
fmt_path = self.library_view.model().db.format_abspath(id_, format, fmt_path = self.gui.library_view.model().db.format_abspath(id_, format,
index_is_id=True) index_is_id=True)
if fmt_path: if fmt_path:
self._view_file(fmt_path) self._view_file(fmt_path)
def metadata_view_format(self, fmt): def metadata_view_format(self, fmt):
fmt_path = self.library_view.model().db.\ fmt_path = self.gui.library_view.model().db.\
format_abspath(self._metadata_view_id, format_abspath(self._metadata_view_id,
fmt, index_is_id=True) fmt, index_is_id=True)
if fmt_path: if fmt_path:
@ -67,14 +67,14 @@ class ViewAction(object):
self._launch_viewer(name, viewer, internal) self._launch_viewer(name, viewer, internal)
def view_specific_format(self, triggered): def view_specific_format(self, triggered):
rows = self.library_view.selectionModel().selectedRows() rows = self.gui.library_view.selectionModel().selectedRows()
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
d = error_dialog(self, _('Cannot view'), _('No book selected')) d = error_dialog(self, _('Cannot view'), _('No book selected'))
d.exec_() d.exec_()
return return
row = rows[0].row() row = rows[0].row()
formats = self.library_view.model().db.formats(row).upper().split(',') formats = self.gui.library_view.model().db.formats(row).upper().split(',')
d = ChooseFormatDialog(self, _('Choose the format to view'), formats) d = ChooseFormatDialog(self, _('Choose the format to view'), formats)
if d.exec_() == d.Accepted: if d.exec_() == d.Accepted:
format = d.format() format = d.format()
@ -91,7 +91,7 @@ class ViewAction(object):
) % num) ) % num)
def view_folder(self, *args): def view_folder(self, *args):
rows = self.current_view().selectionModel().selectedRows() rows = self.gui.current_view().selectionModel().selectedRows()
if not rows or len(rows) == 0: if not rows or len(rows) == 0:
d = error_dialog(self, _('Cannot open folder'), d = error_dialog(self, _('Cannot open folder'),
_('No book selected')) _('No book selected'))
@ -100,15 +100,15 @@ class ViewAction(object):
if not self._view_check(len(rows)): if not self._view_check(len(rows)):
return return
for row in rows: for row in rows:
path = self.library_view.model().db.abspath(row.row()) path = self.gui.library_view.model().db.abspath(row.row())
open_local_file(path) open_local_file(path)
def view_folder_for_id(self, id_): def view_folder_for_id(self, id_):
path = self.library_view.model().db.abspath(id_, index_is_id=True) path = self.gui.library_view.model().db.abspath(id_, index_is_id=True)
open_local_file(path) open_local_file(path)
def view_book(self, triggered): def view_book(self, triggered):
rows = self.current_view().selectionModel().selectedRows() rows = self.gui.current_view().selectionModel().selectedRows()
self._view_books(rows) self._view_books(rows)
def view_specific_book(self, index): def view_specific_book(self, index):
@ -122,13 +122,13 @@ class ViewAction(object):
if not self._view_check(len(rows)): if not self._view_check(len(rows)):
return return
if self.current_view() is self.library_view: if self.gui.current_view() is self.gui.library_view:
for row in rows: for row in rows:
if hasattr(row, 'row'): if hasattr(row, 'row'):
row = row.row() row = row.row()
formats = self.library_view.model().db.formats(row) formats = self.gui.library_view.model().db.formats(row)
title = self.library_view.model().db.title(row) title = self.gui.library_view.model().db.title(row)
if not formats: if not formats:
error_dialog(self, _('Cannot view'), error_dialog(self, _('Cannot view'),
_('%s has no available formats.')%(title,), show=True) _('%s has no available formats.')%(title,), show=True)
@ -146,7 +146,7 @@ class ViewAction(object):
if not in_prefs: if not in_prefs:
self.view_format(row, formats[0]) self.view_format(row, formats[0])
else: else:
paths = self.current_view().model().paths(rows) paths = self.gui.current_view().model().paths(rows)
for path in paths: for path in paths:
pt = PersistentTemporaryFile('_viewer_'+\ pt = PersistentTemporaryFile('_viewer_'+\
os.path.splitext(path)[1]) os.path.splitext(path)[1])