kspell2 reorganization

Zack Rusin zack at kde.org
Mon Apr 10 20:00:08 BST 2006

On Monday 10 April 2006 19:52, David Faure wrote:
> Hmm, so to avoid actually discussing changes to your code, you just
> dropped it and created something else entirely? This seems a little
> messy to me :(

Nah, the reason I moved is because I don't have good enough machine to 
hold both KDE 3 and 4 development environments. And running KDE 4 apps 
requires using a different account right now, which is not a big 
problem when you're testing sessions but it's uncomfortable for small 
apps/tests. So I just went with only QtCore with qmake as the build 
system because it allowed me to do what I really wanted in my spare 
time (meaning to just write code that is testable without jumping 
through any hoops)

> So if you want to "upgrade" kspell2 to QSpell that'd be great...
> Just a few questions:
> - do you want to keep it non-kde? 

It simply comes down to "is there anything that it needs from KDE". If 
the answer is "yes" than of course forcing non-kde would be silly. From 
the other side linking to some KDE libraries just to make it officially 
KDE dependent is equally silly. So I guess the answer is, my preference 
is to have it naturally evolve. 

> kspell2 used KLineEdit and other  kde things in its config dialog. 

Not at the moment. Well, like I mentioned I wanted to have Sonnet 
completely gui free to make it just that, lingustic framework that can 
be used by everyone. Then I'd like to have a "binding" layer that 
actually does the GUI stuff. 
The config handling in KSpell2 is the most messy part because it 
propagates this custom config object through all classes even though 
none of them really uses it. 
So something like KSpell2::DefaultDictionary doesn't exist in Sonnet 
right now. I wanted to actually fix the concept of DefaultDictionary. 
But things like:
- DefaultDictionary,
- background checker
- configuration dialog 
are things I'd like to have in the "binding" part. The reason is that 
they all require desktop wide logic and because I didn't have time to 
somehow fix all the issues to at least allow me to run KDE4 apps on 
KDE3 I haven't tackled that.

> (does qspell provide a config dialog?). 

No, because in its current state there's nothing to configure. It's just 
a loader with a speller.  

> This also raises the question on how plugins are found by 
> the loader, I guess that part should be ported to at least
> KStandardDirs (if not ktrader)? 

They're all Qt plugins. In the same way that styles, or image formats 
are. Off the top of my mind I'm not sure if there's anything I'm 
missing from kstandarddirs/ktrader combo that would mandate a change to 

> - does it come with aspell+hspell+ispell plugins?

It comes with aspell/enchant/hspell/hunspell. Ispell plugin that I had 
was lifted from enchant and never worked because they required a small 
change in the dictionary files which causes a lot of confusion (ispell 
plugin is there but it doesn't detect my ispell dictionary). The 
combination of aspell/enchant/hspell/hunspell covers every language 
that ispell supported in a lot better way (hunspell is myspell 
replacement for openoffice).

So, yeah, that's the run down as to how it all looks. Now if we're to 
use Sonnet, I'm not sure whether it makes seperating just the spelling 
lib from the rest of it. IMHO text segmentation, thesaurus and 
dictionary should at least go with it.


It is dangerous to be right when the government is wrong. - Voltaire 
(1694 - 1778)

More information about the kde-core-devel mailing list