|02-18-2011, 08:57 AM||#1|
Join Date: Oct 2008
|02-18-2011, 10:48 AM||#3|
"chaley", not "charley"
Join Date: Jan 2010
Device: Many android devices
The problem is that ICU's sort_key (ICU == International Components for Unicode, sort_key == the unicode sort key generator) orders the list differently from ASCII order, putting '!' and '+' after '-' instead of before it. Calibre tells the Qt completer that the list is ordered, so unless the search gets lucky (the binary search hits exactly), the out-of-order items are never found. The same problem exists with accented characters like é, because ascii and ICU disagree about the order.
Two possible solutions:
1) change to an ascii ordering. Not sure this will really work in the face of non-ansi (larger than 255) unicode characters.
2) Tell the completer that the list is not ordered (c.setModelSorting(QCompleter.UnsortedModel). This works because the completer scans for a match, but will be somewhat more costly if the completion list is very long. My guess is that unless the list is in excess of hundreds of thousands, the performance penalty won't be visible.
I leave it to the owners of completer.py to decide what to do.
|Thread Tools||Search this Thread|
|Thread||Thread Starter||Forum||Replies||Last Post|
|Bug Tracker not returning completion on entering tickets||DoctorOhh||Calibre||1||02-07-2011 01:08 PM|
|Tag Synchronization||ccowie||Calibre||2||08-27-2010 08:41 PM|
|Tag behavior...||guyanonymous||Calibre||1||11-29-2009 03:57 PM|
|Google announces completion of Bodleian & other Oxford libraries PD book scans||AnemicOak||News||2||03-27-2009 12:46 AM|
|'Keep' tag?||AnemicOak||Amazon Kindle||13||03-17-2009 05:19 PM|