Fix #2449 (Crashing on mac os X 10.5.7 when cancel metadata search)

This commit is contained in:
Kovid Goyal 2009-05-16 18:26:32 -07:00
parent 40bae0cf4a
commit 2bad2c5162
2 changed files with 17 additions and 15 deletions

View File

@ -187,6 +187,8 @@ class FetchMetadata(QDialog, Ui_FetchMetadata):
def terminate(self):
if hasattr(self, 'fetcher') and self.fetcher.isRunning():
self.fetcher.terminate()
if hasattr(self, '_hangcheck') and self._hangcheck.isActive():
self._hangcheck.stop()
def __enter__(self, *args):

View File

@ -419,22 +419,22 @@ class MetadataSingleDialog(ResizableDialog, Ui_MetadataSingleDialog):
publisher = qstring_to_unicode(self.publisher.currentText())
if isbn or title or author or publisher:
d = FetchMetadata(self, isbn, title, author, publisher, self.timeout)
self._fetch_metadata_scope = d
with d:
d.exec_()
if d.result() == QDialog.Accepted:
book = d.selected_book()
if book:
self.title.setText(book.title)
self.authors.setText(authors_to_string(book.authors))
if book.author_sort: self.author_sort.setText(book.author_sort)
if book.publisher: self.publisher.setEditText(book.publisher)
if book.isbn: self.isbn.setText(book.isbn)
summ = book.comments
if summ:
prefix = qstring_to_unicode(self.comments.toPlainText())
if prefix:
prefix += '\n'
self.comments.setText(prefix + summ)
if d.exec_() == QDialog.Accepted:
book = d.selected_book()
if book:
self.title.setText(book.title)
self.authors.setText(authors_to_string(book.authors))
if book.author_sort: self.author_sort.setText(book.author_sort)
if book.publisher: self.publisher.setEditText(book.publisher)
if book.isbn: self.isbn.setText(book.isbn)
summ = book.comments
if summ:
prefix = qstring_to_unicode(self.comments.toPlainText())
if prefix:
prefix += '\n'
self.comments.setText(prefix + summ)
else:
error_dialog(self, _('Cannot fetch metadata'),
_('You must specify at least one of ISBN, Title, '