Add an option in Preferences->Look & feel to disable the new 'drag and drop to merge books feature'

This commit is contained in:
Kovid Goyal 2018-07-06 07:37:46 +05:30
parent 551417a0e7
commit 60bae7ce02
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
4 changed files with 26 additions and 13 deletions

View File

@ -168,6 +168,7 @@ def create_defs():
defs['book_details_narrow_comments_layout'] = 'float' defs['book_details_narrow_comments_layout'] = 'float'
defs['book_list_split'] = False defs['book_list_split'] = False
defs['wrap_toolbar_text'] = False defs['wrap_toolbar_text'] = False
defs['dnd_merge'] = True
create_defs() create_defs()

View File

@ -201,6 +201,10 @@ def mouseMoveEvent(base_class, self, event):
self.drag_start_pos = None 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): def dragEnterEvent(self, event):
if int(event.possibleActions() & Qt.CopyAction) + \ if int(event.possibleActions() & Qt.CopyAction) + \
int(event.possibleActions() & Qt.MoveAction) == 0: int(event.possibleActions() & Qt.MoveAction) == 0:
@ -208,13 +212,13 @@ def dragEnterEvent(self, event):
paths = self.paths_from_event(event) paths = self.paths_from_event(event)
md = event.mimeData() md = event.mimeData()
if paths or md.hasFormat('application/calibre+from_library'): if paths or dnd_merge_ok(md):
event.acceptProposedAction() event.acceptProposedAction()
def dropEvent(self, event): def dropEvent(self, event):
md = event.mimeData() 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(' '))) ids = set(map(int, bytes(md.data('application/calibre+from_library')).decode('utf-8').split(' ')))
row = self.indexAt(event.pos()).row() row = self.indexAt(event.pos()).row()
if row > -1 and ids: if row > -1 and ids:

View File

@ -394,6 +394,7 @@ class ConfigWidget(ConfigWidgetBase, Ui_Form):
self.opt_hidpi.setVisible(False), self.label_hidpi.setVisible(False) 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('ui_style', gprefs, restart_required=True, choices=[(_('System default'), 'system'), (_('calibre style'), 'calibre')])
r('book_list_tooltips', gprefs) r('book_list_tooltips', gprefs)
r('dnd_merge', gprefs)
r('wrap_toolbar_text', gprefs, restart_required=True) r('wrap_toolbar_text', gprefs, restart_required=True)
r('show_layout_buttons', gprefs, restart_required=True) r('show_layout_buttons', gprefs, restart_required=True)
r('row_numbers_in_book_list', gprefs) r('row_numbers_in_book_list', gprefs)

View File

@ -28,6 +28,16 @@
<string>&amp;Main interface</string> <string>&amp;Main interface</string>
</attribute> </attribute>
<layout class="QGridLayout" name="gridLayout_9"> <layout class="QGridLayout" name="gridLayout_9">
<item row="0" column="0">
<widget class="QLabel" name="label_widget_style">
<property name="text">
<string>User interface style (&amp;needs restart):</string>
</property>
<property name="buddy">
<cstring>opt_ui_style</cstring>
</property>
</widget>
</item>
<item row="2" column="0"> <item row="2" column="0">
<widget class="QLabel" name="label_17"> <widget class="QLabel" name="label_17">
<property name="text"> <property name="text">
@ -140,7 +150,7 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="12" column="0"> <item row="13" column="0">
<spacer name="verticalSpacer_3"> <spacer name="verticalSpacer_3">
<property name="orientation"> <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
@ -218,16 +228,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="0" column="0">
<widget class="QLabel" name="label_widget_style">
<property name="text">
<string>User interface style (&amp;needs restart):</string>
</property>
<property name="buddy">
<cstring>opt_ui_style</cstring>
</property>
</widget>
</item>
<item row="5" column="1"> <item row="5" column="1">
<widget class="QCheckBox" name="opt_disable_animations"> <widget class="QCheckBox" name="opt_disable_animations">
<property name="toolTip"> <property name="toolTip">
@ -284,6 +284,13 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="12" column="0">
<widget class="QCheckBox" name="opt_dnd_merge">
<property name="text">
<string>Allow using &amp;drag and drop to merge books</string>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
<widget class="QWidget" name="cover_grid_tab"> <widget class="QWidget" name="cover_grid_tab">