diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py index a58c4555dd..11f29b384b 100644 --- a/src/calibre/gui2/library/alternate_views.py +++ b/src/calibre/gui2/library/alternate_views.py @@ -468,9 +468,12 @@ def setup_dnd_interface(cls_or_self): self = cls_or_self self.drag_allowed = True self.drag_start_pos = None - self.setDragEnabled(True) - self.setDragDropOverwriteMode(False) - self.setDragDropMode(QAbstractItemView.DragDropMode.DragDrop) + if isinstance(self, QAbstractItemView): + self.setDragEnabled(True) + self.setDragDropOverwriteMode(False) + self.setDragDropMode(QAbstractItemView.DragDropMode.DragDrop) + else: + self.setAcceptDrops(True) # }}} diff --git a/src/calibre/gui2/library/bookshelf_view.py b/src/calibre/gui2/library/bookshelf_view.py index 473e29a832..f4f77db69b 100644 --- a/src/calibre/gui2/library/bookshelf_view.py +++ b/src/calibre/gui2/library/bookshelf_view.py @@ -1527,9 +1527,8 @@ class BookshelfView(MomentumScrollMixin, QAbstractScrollArea): self.second_line_renderer = self.build_template_renderer('authors', '') # Initialize drag and drop - # so we set the attributes manually - self.drag_allowed = True - self.drag_start_pos = None + setup_dnd_interface(self) + self.bookcase = BookCase(self) self.bookcase.shelf_added.connect(self.on_shelf_layout_done, type=Qt.ConnectionType.QueuedConnection) self.bookcase.num_of_groups_changed.connect(self.update_scrollbar_ranges, type=Qt.ConnectionType.QueuedConnection)