Character composing doesn't work on metadata editor

Bug #1266795 reported by R00KIE on 2014-01-07
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
calibre
Undecided
Unassigned

Bug Description

Like the summary/description says, character composing doesn't work on the metadata editor, this makes it cumbersome to add author names like João, José or similar names.

Characters like ã or é are obtained by pressing 2 keys in sequence, first the accentuation key and then the letter key. Currently this results in something like: ~a or 'e.

Calibre version
calibre 1.18.0-1

OS
Arch linux

You should report the bug to Qt, nothing I can do about it.

 status invalid

Changed in calibre:
status: New → Invalid
R00KIE (registosites) wrote :

Is this something specific to the functionality provided by the author text box in the metadata editor? Character composing works fine in Calibre in some other places, like the search bar/box and the tag browser search box.

I have other Qt apps where character composing also seems to work correctly, such as VLC (well known), cutecom and speedcrunch (probably unknown to most people).

If I'm to report this upstream I'll need to provide more details/examples otherwise it will most probably be dismissed as not a bug, since it seems to work just fine in other places.

Kovid Goyal (kovid) wrote :

It might have something to do with the fact that that widget has completion popups. When the popup is active, key events have to be redirected from the popup to the line edit. However, the redirection is pretty simple, so I dont see where there could be a bug, see Line 191 onwards in https://github.com/kovidgoyal/calibre/blob/master/src/calibre/gui2/complete2.py

Fixed in branch master. The fix will be in the next release. calibre is usually released every Friday.

 status fixreleased

Turns out that for input method support one also has to forward the
input method event.

Changed in calibre:
status: Invalid → Fix Released
R00KIE (registosites) wrote :

My knowledge of python is close to zero but if I understood correctly, with each key press event you will read the pressed key, handle some special cases, and then pass the pressed key to completer_widget to do its completion magic.

I see how this might cause the problem. Accent keys need to be pressed and released before pressing a letter key, this makes them register like any other normal letter key, thus passing the accent directly to completer_widget and not waiting for another key to be pressed.

I guess there must be some way to deal with diacritics in general (I guess that the correct name for accents) without adding special treatment for each one, but from a quick google search I couldn't find any examples that seemed to apply (I could only find something related to tkinter which I guess you dont use since you use Qt).

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers