diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py
index f69788e849..0b21502327 100644
--- a/src/calibre/gui2/__init__.py
+++ b/src/calibre/gui2/__init__.py
@@ -248,10 +248,11 @@ def error_dialog(parent, title, msg, det_msg='', show=False,
return d.exec_()
return d
-def question_dialog(parent, title, msg, det_msg='', show_copy_button=False):
+def question_dialog(parent, title, msg, det_msg='', show_copy_button=False,
+ default_yes=True):
from calibre.gui2.dialogs.message_box import MessageBox
d = MessageBox(MessageBox.QUESTION, title, msg, det_msg, parent=parent,
- show_copy_button=show_copy_button)
+ show_copy_button=show_copy_button, default_yes=default_yes)
return d.exec_() == d.Accepted
def info_dialog(parent, title, msg, det_msg='', show=False,
diff --git a/src/calibre/gui2/actions/choose_library.py b/src/calibre/gui2/actions/choose_library.py
index fb180176df..32460b6bec 100644
--- a/src/calibre/gui2/actions/choose_library.py
+++ b/src/calibre/gui2/actions/choose_library.py
@@ -252,11 +252,12 @@ class ChooseLibraryAction(InterfaceAction):
def delete_requested(self, name, location):
loc = location.replace('/', os.sep)
- if not question_dialog(self.gui, _('Are you sure?'), '
'+
+ if not question_dialog(self.gui, _('Are you sure?'),
+ _('
WARNING
')+
_('All files (not just ebooks) '
'from
%s
will be '
'permanently deleted. Are you sure?') % loc,
- show_copy_button=False):
+ show_copy_button=False, default_yes=False):
return
exists = self.gui.library_view.model().db.exists_at(loc)
if exists:
diff --git a/src/calibre/gui2/dialogs/message_box.py b/src/calibre/gui2/dialogs/message_box.py
index c9198c4aa2..7fd7a0addf 100644
--- a/src/calibre/gui2/dialogs/message_box.py
+++ b/src/calibre/gui2/dialogs/message_box.py
@@ -23,7 +23,7 @@ class MessageBox(QDialog, Ui_Dialog): # {{{
det_msg='',
q_icon=None,
show_copy_button=True,
- parent=None):
+ parent=None, default_yes=True):
QDialog.__init__(self, parent)
if q_icon is None:
icon = {
@@ -65,7 +65,9 @@ class MessageBox(QDialog, Ui_Dialog): # {{{
self.is_question = type_ == self.QUESTION
if self.is_question:
self.bb.setStandardButtons(self.bb.Yes|self.bb.No)
- self.bb.button(self.bb.Yes).setDefault(True)
+ self.bb.button(self.bb.Yes if default_yes else self.bb.No
+ ).setDefault(True)
+ self.default_yes = default_yes
else:
self.bb.button(self.bb.Ok).setDefault(True)
@@ -101,7 +103,8 @@ class MessageBox(QDialog, Ui_Dialog): # {{{
ret = QDialog.showEvent(self, ev)
if self.is_question:
try:
- self.bb.button(self.bb.Yes).setFocus(Qt.OtherFocusReason)
+ self.bb.button(self.bb.Yes if self.default_yes else self.bb.No
+ ).setFocus(Qt.OtherFocusReason)
except:
pass# Buttons were changed
else: