mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Metadata edit dialog: Fix keyboard shortcuts for bold/italic/underline not workining when more than one comments editor widget is present on a single tab. Fixes #1905479 [Edit Metadata: Non-default layout and custom longtext column breaks formatting shortcuts](https://bugs.launchpad.net/calibre/+bug/1905479)
This commit is contained in:
parent
56e0fc69fb
commit
635337068e
@ -255,12 +255,6 @@ class EditorWidget(QTextEdit, LineEditECM): # {{{
|
|||||||
self._parent = weakref.ref(parent)
|
self._parent = weakref.ref(parent)
|
||||||
self.comments_pat = re.compile(r'<!--.*?-->', re.DOTALL)
|
self.comments_pat = re.compile(r'<!--.*?-->', re.DOTALL)
|
||||||
|
|
||||||
extra_shortcuts = {
|
|
||||||
'bold': 'Bold',
|
|
||||||
'italic': 'Italic',
|
|
||||||
'underline': 'Underline',
|
|
||||||
}
|
|
||||||
|
|
||||||
for rec in (
|
for rec in (
|
||||||
('bold', 'format-text-bold', _('Bold'), True),
|
('bold', 'format-text-bold', _('Bold'), True),
|
||||||
('italic', 'format-text-italic', _('Italic'), True),
|
('italic', 'format-text-italic', _('Italic'), True),
|
||||||
@ -298,9 +292,6 @@ class EditorWidget(QTextEdit, LineEditECM): # {{{
|
|||||||
if checkable:
|
if checkable:
|
||||||
ac.setCheckable(checkable)
|
ac.setCheckable(checkable)
|
||||||
setattr(self, 'action_'+name, ac)
|
setattr(self, 'action_'+name, ac)
|
||||||
ss = extra_shortcuts.get(name)
|
|
||||||
if ss is not None:
|
|
||||||
ac.setShortcut(QKeySequence(getattr(QKeySequence, ss)))
|
|
||||||
ac.triggered.connect(getattr(self, 'do_' + name))
|
ac.triggered.connect(getattr(self, 'do_' + name))
|
||||||
|
|
||||||
self.action_block_style = QAction(QIcon(I('format-text-heading.png')),
|
self.action_block_style = QAction(QIcon(I('format-text-heading.png')),
|
||||||
@ -341,6 +332,21 @@ class EditorWidget(QTextEdit, LineEditECM): # {{{
|
|||||||
self.textChanged.connect(self.data_changed)
|
self.textChanged.connect(self.data_changed)
|
||||||
self.update_cursor_position_actions()
|
self.update_cursor_position_actions()
|
||||||
|
|
||||||
|
def keyPressEvent(self, ev):
|
||||||
|
if ev.matches(QKeySequence.Bold):
|
||||||
|
ev.accept()
|
||||||
|
self.action_bold.toggle(), self.action_bold.trigger()
|
||||||
|
return
|
||||||
|
if ev.matches(QKeySequence.Italic):
|
||||||
|
ev.accept()
|
||||||
|
self.action_italic.toggle(), self.action_italic.trigger()
|
||||||
|
return
|
||||||
|
if ev.matches(QKeySequence.Underline):
|
||||||
|
ev.accept()
|
||||||
|
self.action_underline.toggle(), self.action_underline.trigger()
|
||||||
|
return
|
||||||
|
return QTextEdit.keyPressEvent(self, ev)
|
||||||
|
|
||||||
def update_clipboard_actions(self, copy_available):
|
def update_clipboard_actions(self, copy_available):
|
||||||
self.action_copy.setEnabled(copy_available)
|
self.action_copy.setEnabled(copy_available)
|
||||||
self.action_cut.setEnabled(copy_available)
|
self.action_cut.setEnabled(copy_available)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user