From 232ad55ff0ef08f035c546195c8078daeaf2a5af Mon Sep 17 00:00:00 2001 From: John Schember Date: Fri, 28 Jan 2011 07:45:08 -0500 Subject: [PATCH] Implement bug #3101: GUI, Stop Job Confirmation dialog. --- src/calibre/gui2/dialogs/confirm_delete.py | 2 +- src/calibre/gui2/dialogs/jobs.ui | 10 +++++----- src/calibre/gui2/jobs.py | 20 +++++++++++--------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/calibre/gui2/dialogs/confirm_delete.py b/src/calibre/gui2/dialogs/confirm_delete.py index ff7f0a285a..9cdd46712f 100644 --- a/src/calibre/gui2/dialogs/confirm_delete.py +++ b/src/calibre/gui2/dialogs/confirm_delete.py @@ -21,10 +21,10 @@ class Dialog(QDialog, Ui_Dialog): self.again.stateChanged.connect(self.toggle) self.buttonBox.setFocus(Qt.OtherFocusReason) - def toggle(self, *args): dynamic[_config_name(self.name)] = self.again.isChecked() + def confirm(msg, name, parent=None, pixmap='dialog_warning.png'): if not dynamic.get(_config_name(name), True): return True diff --git a/src/calibre/gui2/dialogs/jobs.ui b/src/calibre/gui2/dialogs/jobs.ui index 5b311bf056..51fb03c40b 100644 --- a/src/calibre/gui2/dialogs/jobs.ui +++ b/src/calibre/gui2/dialogs/jobs.ui @@ -14,7 +14,7 @@ Active Jobs - + :/images/jobs.png:/images/jobs.png @@ -44,16 +44,16 @@ - + - &Stop selected job + Show job &details - + - Show job &details + &Stop selected job diff --git a/src/calibre/gui2/jobs.py b/src/calibre/gui2/jobs.py index a2bd8e4492..9e09a6ca53 100644 --- a/src/calibre/gui2/jobs.py +++ b/src/calibre/gui2/jobs.py @@ -19,7 +19,7 @@ from PyQt4.Qt import QAbstractTableModel, QVariant, QModelIndex, Qt, \ from calibre.utils.ipc.server import Server from calibre.utils.ipc.job import ParallelJob -from calibre.gui2 import Dispatcher, error_dialog, NONE, config, gprefs +from calibre.gui2 import Dispatcher, error_dialog, question_dialog, NONE, config, gprefs from calibre.gui2.device import DeviceJob from calibre.gui2.dialogs.jobs_ui import Ui_JobsDialog from calibre import __appname__ @@ -380,8 +380,8 @@ class JobsDialog(QDialog, Ui_JobsDialog): self.model = model self.setWindowModality(Qt.NonModal) self.setWindowTitle(__appname__ + _(' - Jobs')) - self.kill_button.clicked.connect(self.kill_job) self.details_button.clicked.connect(self.show_details) + self.kill_button.clicked.connect(self.kill_job) self.stop_all_jobs_button.clicked.connect(self.kill_all_jobs) self.pb_delegate = ProgressBarDelegate(self) self.jobs_view.setItemDelegateForColumn(2, self.pb_delegate) @@ -415,19 +415,21 @@ class JobsDialog(QDialog, Ui_JobsDialog): d.exec_() d.timer.stop() - def kill_job(self, *args): - for index in self.jobs_view.selectedIndexes(): - row = index.row() - self.model.kill_job(row, self) - return - def show_details(self, *args): for index in self.jobs_view.selectedIndexes(): self.show_job_details(index) return + def kill_job(self, *args): + if question_dialog(self, _('Are you sure?'), _('Do you really want to stop the selected job?')): + for index in self.jobs_view.selectedIndexes(): + row = index.row() + self.model.kill_job(row, self) + return + def kill_all_jobs(self, *args): - self.model.kill_all_jobs() + if question_dialog(self, _('Are you sure?'), _('Do you really want to stop all non-device jobs?')): + self.model.kill_all_jobs() def closeEvent(self, e): self.save_state()