diff --git a/src/calibre/gui2/actions/delete.py b/src/calibre/gui2/actions/delete.py index 7989a75ad5..e60758584d 100644 --- a/src/calibre/gui2/actions/delete.py +++ b/src/calibre/gui2/actions/delete.py @@ -356,6 +356,14 @@ class DeleteAction(InterfaceAction): if view.model().rowCount(QModelIndex()) < 1: self.gui.book_details.reset_info() + @property + def show_message_popup(self): + if not hasattr(self, 'message_popup'): + self.message_popup = MessagePopup(self.gui) + self.message_popup.OFFSET_FROM_TOP = 12 + self.message_popup.undo_requested.connect(self.undelete) + return self.message_popup + def library_ids_deleted2(self, ids_deleted, next_id=None, can_undo=False): view = self.gui.library_view current_row = None @@ -364,18 +372,12 @@ class DeleteAction(InterfaceAction): current_row = rmap.get(next_id, None) self.library_ids_deleted(ids_deleted, current_row=current_row) if can_undo: - if not hasattr(self, 'message_popup'): - self.message_popup = MessagePopup(self.gui) - self.message_popup.undo_requested.connect(self.undelete) - self.message_popup(ngettext('One book deleted from library.', '{} books deleted from library.', len(ids_deleted)).format(len(ids_deleted)), + self.show_message_popup(ngettext('One book deleted from library.', '{} books deleted from library.', len(ids_deleted)).format(len(ids_deleted)), show_undo=(self.gui.current_db.new_api.library_id, ids_deleted)) def show_undo_for_deleted_formats(self, removed_map): - if not hasattr(self, 'message_popup'): - self.message_popup = MessagePopup(self.gui) - self.message_popup.undo_requested.connect(self.undelete) num = sum(map(len, removed_map.values())) - self.message_popup(ngettext('One book format deleted.', '{} book formats deleted.', num).format(num), + self.show_message_popup(ngettext('One book format deleted.', '{} book formats deleted.', num).format(num), show_undo=(self.gui.current_db.new_api.library_id, removed_map)) def library_changed(self, db): diff --git a/src/calibre/gui2/widgets2.py b/src/calibre/gui2/widgets2.py index 986ab42a3a..65f58ee054 100644 --- a/src/calibre/gui2/widgets2.py +++ b/src/calibre/gui2/widgets2.py @@ -729,6 +729,7 @@ class DateTimeEdit(QDateTimeEdit): class MessagePopup(QLabel): undo_requested = pyqtSignal(object) + OFFSET_FROM_TOP = 25 def __init__(self, parent): QLabel.__init__(self, parent) @@ -778,7 +779,7 @@ class MessagePopup(QLabel): def position_in_parent(self): p = self.parent() - self.move((p.width() - self.width()) // 2, 25) + self.move((p.width() - self.width()) // 2, self.OFFSET_FROM_TOP)