Add tweak to change the (new) behavior of the enter key

This commit is contained in:
Charles Haley 2017-11-17 18:15:15 +01:00
parent 1323644b8d
commit 1ecaf1c5ff
2 changed files with 24 additions and 3 deletions

View File

@ -559,3 +559,11 @@ cover_drop_exclude = ()
# new Saved search is shown in the Search bar. If you would like to have the # new Saved search is shown in the Search bar. If you would like to have the
# old Saved searches box with its two buttons back, set this tweak to True. # old Saved searches box with its two buttons back, set this tweak to True.
show_saved_search_box = False show_saved_search_box = False
#: Control behavior of Enter key on the books view
# The behaviors:
# 'viewer': open the book in the viewer,
# 'down_arrow': perform a down arrow,
# 'edit_metadata': open the edit metadata (single) dialog,
# 'do_nothing': makes the key do nothing.
enter_key_behavior = 'viewer'

View File

@ -19,7 +19,7 @@ from PyQt5.Qt import (
QMimeData, QUrl, QDrag, QPoint, QPainter, QRect, pyqtProperty, QEvent, QMimeData, QUrl, QDrag, QPoint, QPainter, QRect, pyqtProperty, QEvent,
QPropertyAnimation, QEasingCurve, pyqtSlot, QHelpEvent, QAbstractItemView, QPropertyAnimation, QEasingCurve, pyqtSlot, QHelpEvent, QAbstractItemView,
QStyleOptionViewItem, QToolTip, QByteArray, QBuffer, QBrush, qRed, qGreen, QStyleOptionViewItem, QToolTip, QByteArray, QBuffer, QBrush, qRed, qGreen,
qBlue, QItemSelectionModel, QIcon, QFont) qBlue, QItemSelectionModel, QIcon, QFont, QKeyEvent)
from calibre import fit_image, prints, prepare_string_for_xml, human_readable from calibre import fit_image, prints, prepare_string_for_xml, human_readable
from calibre.constants import DEBUG, config_dir, islinux from calibre.constants import DEBUG, config_dir, islinux
@ -47,9 +47,22 @@ def handle_enter_press(self, ev, special_action=None):
if self.state() != self.EditingState and self.hasFocus() and self.currentIndex().isValid(): if self.state() != self.EditingState and self.hasFocus() and self.currentIndex().isValid():
from calibre.gui2.ui import get_gui from calibre.gui2.ui import get_gui
ev.ignore() ev.ignore()
if special_action is not None: tweak = tweaks['enter_key_behavior']
if tweak != 'down_arrow' and special_action is not None:
# Don't animate (or whatever) if emulating the down arrow
# Could be that this should check == 'do nothing', but the
# animation is nice when opening the viewer.
special_action(self.currentIndex()) special_action(self.currentIndex())
get_gui().iactions['View'].view_triggered(self.currentIndex()) gui = get_gui()
if tweak == 'viewer':
gui.iactions['View'].view_triggered(self.currentIndex())
elif tweak == 'down_arrow':
nev = QKeyEvent(QEvent.KeyPress, Qt.Key_Down, ev.modifiers(), ev.text())
self.keyPressEvent(nev)
elif tweak == 'edit_metadata':
gui.iactions['Edit Metadata'].edit_metadata(False)
elif tweak == 'do_nothing': # for completeness
pass
return True return True