Review Request: Fix KRunner's 'spell in foreign language' feature
Simeon Bird
bladud at gmail.com
Thu Oct 25 17:24:54 UTC 2012
> On Oct. 25, 2012, 9:25 a.m., Aaron J. Seigo wrote:
> > just some whitespace and code style issues to address; the patch logic itself looks good.
Thanks for the review Aaron! All fixed up in the latest version.
> On Oct. 25, 2012, 9:25 a.m., Aaron J. Seigo wrote:
> > runners/spellchecker/spellcheck.cpp, line 225
> > <http://git.reviewboard.kde.org/r/106244/diff/2/?file=86663#file86663line225>
> >
> > 1_speller is a really odd var name, and doesn't really say much about what it does. just speller should be good enough.
l was for "local" and also "a letter next to m" :)
I changed it to just speller.
- Simeon
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/106244/#review20838
-----------------------------------------------------------
On Oct. 25, 2012, 5:24 p.m., Simeon Bird wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/106244/
> -----------------------------------------------------------
>
> (Updated Oct. 25, 2012, 5:24 p.m.)
>
>
> Review request for Plasma, Sebastian Kügler and Matthias Fuchs.
>
>
> Description
> -------
>
> Krunner's spellcheck plugin has been broken since bd291d21f096a714a171e7af3a534ba345ca5659 (about two years ago) because it called Sonnet::Speller::setLanguage every time the spellchecker was invoked, which was not thread-safe.
> This diff fixes the segfaults, and the feature, which I understand to be, basically, the ability to type 'spell french bonjour' and have it check the spelling.
>
> The current code simply calls setLanguage on the second term in the search query, and then checks whether the resulting dictionary object is valid. The spell-checker expects languages like 'fr_FR' or 'French (France)' which the user was unlikely to type in correctly (at least, I never figured it out until I read the source).
>
> Instead, this patch create a new spell-check object (the creation is guarded by a mutex) when a new language is used (thus never needing to call setLanguage). Future queries use the already created speller for the new language, and spellers are deleted on the teardown() signal.
>
> We make a map between the speller codes and simple natural language language names in init(); this is a little bit tricky, because languages have sub-variants. My approach was to try and find the main language of the group: so 'french' gets you fr_FR. For english I defaulted to US english.
>
> I have not tested this spelling an asian language as I don't speak one.
>
> I have not implemented 'spell canadian french' or similar. If you want a specific sublanguage you have to type in the language code directly.
>
>
> This addresses bugs 264779 and 303831.
> http://bugs.kde.org/show_bug.cgi?id=264779
> http://bugs.kde.org/show_bug.cgi?id=303831
>
>
> Diffs
> -----
>
> runners/spellchecker/spellcheck.h 492c370
> runners/spellchecker/spellcheck.cpp 672732d
>
> Diff: http://git.reviewboard.kde.org/r/106244/diff/
>
>
> Testing
> -------
>
> Compiled, installed, ran for a week and spell-checked a bunch of things in European languages.
>
>
> Thanks,
>
> Simeon Bird
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20121025/5bc9c120/attachment-0001.html>
More information about the Plasma-devel
mailing list