From 00fd77ffe895fd39bf7d1f2eb2f151d7f16122e9 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Mon, 11 Oct 2010 12:08:54 +0100 Subject: [PATCH] More fix for #7131 - disable drag & drop --- src/calibre/gui2/device.py | 9 ++++++--- src/calibre/gui2/library/views.py | 9 ++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/calibre/gui2/device.py b/src/calibre/gui2/device.py index bc9f5cf671..49bc5c0016 100644 --- a/src/calibre/gui2/device.py +++ b/src/calibre/gui2/device.py @@ -793,11 +793,14 @@ class DeviceMixin(object): # {{{ self.set_books_in_library(job.result, reset=True) mainlist, cardalist, cardblist = job.result self.memory_view.set_database(mainlist) - self.memory_view.set_editable(self.device_manager.device.CAN_SET_METADATA) + self.memory_view.set_editable(self.device_manager.device.CAN_SET_METADATA, + self.device_manager.device.SUPPORTS_BACKLOADING) self.card_a_view.set_database(cardalist) - self.card_a_view.set_editable(self.device_manager.device.CAN_SET_METADATA) + self.card_a_view.set_editable(self.device_manager.device.CAN_SET_METADATA, + self.device_manager.device.SUPPORTS_BACKLOADING) self.card_b_view.set_database(cardblist) - self.card_b_view.set_editable(self.device_manager.device.CAN_SET_METADATA) + self.card_b_view.set_editable(self.device_manager.device.CAN_SET_METADATA, + self.device_manager.device.SUPPORTS_BACKLOADING) self.sync_news() self.sync_catalogs() self.refresh_ondevice() diff --git a/src/calibre/gui2/library/views.py b/src/calibre/gui2/library/views.py index 57ea04fb75..8f86bf43b8 100644 --- a/src/calibre/gui2/library/views.py +++ b/src/calibre/gui2/library/views.py @@ -30,6 +30,7 @@ class BooksView(QTableView): # {{{ def __init__(self, parent, modelcls=BooksModel): QTableView.__init__(self, parent) + self.drag_allowed = True self.setDragEnabled(True) self.setDragDropOverwriteMode(False) self.setDragDropMode(self.DragDrop) @@ -505,6 +506,8 @@ class BooksView(QTableView): # {{{ return QTableView.mousePressEvent(self, event) def mouseMoveEvent(self, event): + if not self.drag_allowed: + return if self.drag_start_pos is None: return QTableView.mouseMoveEvent(self, event) @@ -613,7 +616,7 @@ class BooksView(QTableView): # {{{ def close(self): self._model.close() - def set_editable(self, editable): + def set_editable(self, editable, supports_backloading): self._model.set_editable(editable) def connect_to_search_box(self, sb, search_done): @@ -700,5 +703,9 @@ class DeviceBooksView(BooksView): # {{{ error_dialog(self, _('Not allowed'), _('Dropping onto a device is not supported. First add the book to the calibre library.')).exec_() + def set_editable(self, editable, supports_backloading): + self._model.set_editable(editable) + self.drag_allowed = supports_backloading + # }}}