From 817bde27aa5151a8b8c0f1620b111c2e76252fe5 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 17 Aug 2010 00:03:01 -0600 Subject: [PATCH] ... --- src/calibre/gui2/dialogs/metadata_bulk.py | 13 +++++-------- src/calibre/gui2/dialogs/progress.py | 14 ++++++++++++-- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index dac3e3f477..29ba22a5ac 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -4,13 +4,14 @@ __copyright__ = '2008, Kovid Goyal ' '''Dialog to edit metadata in bulk''' from PyQt4.Qt import SIGNAL, QObject, QDialog, QGridLayout, \ - QProgressDialog, QCoreApplication, QString + QCoreApplication from calibre.gui2.dialogs.metadata_bulk_ui import Ui_MetadataBulkDialog from calibre.gui2.dialogs.tag_editor import TagEditor from calibre.ebooks.metadata import string_to_authors, \ authors_to_string from calibre.gui2.custom_column_widgets import populate_metadata_page +from calibre.gui2.dialogs.progress import ProgressDialog class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): @@ -106,12 +107,11 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): if len(self.ids) < 1: return QDialog.accept(self) - pd = QProgressDialog( + pd = ProgressDialog(_('Working'), _('Applying changes to %d books. This may take a while.')%len(self.ids), - QString(), 0, 0, self) + 0, 0, self, cancelable=False) pd.setModal(True) pd.show() - pd.setValue(0) def upd(): QCoreApplication.processEvents() @@ -164,7 +164,6 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): if rating != -1: self.db.set_rating(id, 2*rating, notify=False) - upd() if pub: self.db.set_publisher(id, pub, notify=False) @@ -181,10 +180,8 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): self.db.remove_format(id, remove_format, index_is_id=True, notify=False) upd() - if do_remove_conv: self.db.delete_conversion_options(id, 'PIPE') - upd() upd() for w in getattr(self, 'custom_column_widgets', []): @@ -195,7 +192,7 @@ class MetadataBulkDialog(QDialog, Ui_MetadataBulkDialog): finally: - pd.cancel() + pd.hide() return QDialog.accept(self) diff --git a/src/calibre/gui2/dialogs/progress.py b/src/calibre/gui2/dialogs/progress.py index 40404050ec..3afa8dd633 100644 --- a/src/calibre/gui2/dialogs/progress.py +++ b/src/calibre/gui2/dialogs/progress.py @@ -13,7 +13,8 @@ class ProgressDialog(QDialog, Ui_Dialog): canceled_signal = pyqtSignal() - def __init__(self, title, msg='', min=0, max=99, parent=None): + def __init__(self, title, msg='', min=0, max=99, parent=None, + cancelable=True): QDialog.__init__(self, parent) self.setupUi(self) self.setWindowTitle(title) @@ -26,6 +27,9 @@ class ProgressDialog(QDialog, Ui_Dialog): self.canceled = False self.button_box.rejected.connect(self._canceled) + if not cancelable: + self.button_box.setVisible(False) + self.cancelable = cancelable def set_msg(self, msg=''): self.message.setText(msg) @@ -54,8 +58,14 @@ class ProgressDialog(QDialog, Ui_Dialog): self.title.setText(_('Aborting...')) self.canceled_signal.emit() + def reject(self): + if not self.cancelable: + return + QDialog.reject(self) + def keyPressEvent(self, ev): if ev.key() == Qt.Key_Escape: - self._canceled() + if self.cancelable: + self._canceled() else: QDialog.keyPressEvent(self, ev)