<div dir="ltr">Eike,<div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 9, 2015 at 1:03 PM, Eike Hein <span dir="ltr"><<a href="mailto:hein@kde.org" target="_blank">hein@kde.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Hi,<br>
<br>
we currently have numerous dynamic search fields across KDE<br>
apps that, for performance reasons, disregard input shorter<br>
than a particular QString::length(). Examples are KMail and<br>
some things in KRunner. It's a common pattern.<br>
<br>
This is very English-centric behavior; many scripts are<br>
more complex than this, in particular CJK ones. In Korean,<br>
a single character may be composed of multiple letters and<br>
form a complex syllable. Most Korean given names are two<br>
characters, many useful words are only one character.<br>
The situation in Japanese is similar - it's written using<br>
a mix of syllabaries and ideograms. The check for 3 has<br>
good intentions but breaks real use cases for these users,<br>
such as finding mail by name.<br>
<br>
Addressing this algorithmically is not all that hard. When<br>
normalizing to Unicode NFD, those complex Korean characters<br>
turn into a sequence of combining characters for the indi-<br>
vidual letters. Syllabic and ideographic code points are<br>
assigned the character class Lo in Unicode, which is info<br>
available via QChar. An NFD pass + counting Lo chars as 2<br>
would be simple and effective enough for this purpose.<br>
<br>
The way I'd like to see this fixed is placing an API like<br>
isMinimumSearchableLength(<u></u>QString) somewhere in KF5 and to<br>
start using it everywhere. Realistically developers won't<br>
find this on their own, but it means I could go around and<br>
patch up all these places without copying code around.<br></blockquote><div><br></div><div>That's a great idea imo. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Which framework would be a good place for this?<br></blockquote><div><br></div><div>Without giving it much thought I would think either KI18n or Sonnet. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
Cheers,<br>
Eike<br>
______________________________<u></u>_________________<br>
Kde-frameworks-devel mailing list<br>
<a href="mailto:Kde-frameworks-devel@kde.org" target="_blank">Kde-frameworks-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/kde-frameworks-devel" target="_blank">https://mail.kde.org/mailman/<u></u>listinfo/kde-frameworks-devel</a><br>
</blockquote></div><br></div></div>