From 60bae7ce027247e6a5be2c6889d37917e8ae5a62 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 6 Jul 2018 07:37:46 +0530 Subject: [PATCH] Add an option in Preferences->Look & feel to disable the new 'drag and drop to merge books feature' --- src/calibre/gui2/__init__.py | 1 + src/calibre/gui2/library/alternate_views.py | 8 ++++-- src/calibre/gui2/preferences/look_feel.py | 1 + src/calibre/gui2/preferences/look_feel.ui | 29 +++++++++++++-------- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/calibre/gui2/__init__.py b/src/calibre/gui2/__init__.py index 1ee8b93355..afa176f795 100644 --- a/src/calibre/gui2/__init__.py +++ b/src/calibre/gui2/__init__.py @@ -168,6 +168,7 @@ def create_defs(): defs['book_details_narrow_comments_layout'] = 'float' defs['book_list_split'] = False defs['wrap_toolbar_text'] = False + defs['dnd_merge'] = True create_defs() diff --git a/src/calibre/gui2/library/alternate_views.py b/src/calibre/gui2/library/alternate_views.py index a1d3c54691..1acccf8b72 100644 --- a/src/calibre/gui2/library/alternate_views.py +++ b/src/calibre/gui2/library/alternate_views.py @@ -201,6 +201,10 @@ def mouseMoveEvent(base_class, self, event): self.drag_start_pos = None +def dnd_merge_ok(md): + return md.hasFormat('application/calibre+from_library') and gprefs['dnd_merge'] + + def dragEnterEvent(self, event): if int(event.possibleActions() & Qt.CopyAction) + \ int(event.possibleActions() & Qt.MoveAction) == 0: @@ -208,13 +212,13 @@ def dragEnterEvent(self, event): paths = self.paths_from_event(event) md = event.mimeData() - if paths or md.hasFormat('application/calibre+from_library'): + if paths or dnd_merge_ok(md): event.acceptProposedAction() def dropEvent(self, event): md = event.mimeData() - if md.hasFormat('application/calibre+from_library'): + if dnd_merge_ok(md): ids = set(map(int, bytes(md.data('application/calibre+from_library')).decode('utf-8').split(' '))) row = self.indexAt(event.pos()).row() if row > -1 and ids: diff --git a/src/calibre/gui2/preferences/look_feel.py b/src/calibre/gui2/preferences/look_feel.py index 915ac150e7..9de6eff486 100644 --- a/src/calibre/gui2/preferences/look_feel.py +++ b/src/calibre/gui2/preferences/look_feel.py @@ -394,6 +394,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form): self.opt_hidpi.setVisible(False), self.label_hidpi.setVisible(False) r('ui_style', gprefs, restart_required=True, choices=[(_('System default'), 'system'), (_('calibre style'), 'calibre')]) r('book_list_tooltips', gprefs) + r('dnd_merge', gprefs) r('wrap_toolbar_text', gprefs, restart_required=True) r('show_layout_buttons', gprefs, restart_required=True) r('row_numbers_in_book_list', gprefs) diff --git a/src/calibre/gui2/preferences/look_feel.ui b/src/calibre/gui2/preferences/look_feel.ui index b5ff7dc3ff..2a7c889ce0 100644 --- a/src/calibre/gui2/preferences/look_feel.ui +++ b/src/calibre/gui2/preferences/look_feel.ui @@ -28,6 +28,16 @@ &Main interface + + + + User interface style (&needs restart): + + + opt_ui_style + + + @@ -140,7 +150,7 @@ - + Qt::Vertical @@ -218,16 +228,6 @@ - - - - User interface style (&needs restart): - - - opt_ui_style - - - @@ -284,6 +284,13 @@ + + + + Allow using &drag and drop to merge books + + +