diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | ce4a32fe52ef09d8f5ff1dd22c001110902b60a2 (patch) | |
tree | 5ac38a06f3dde268dc7927dc155896926aaf7012 /kspell2/README | |
download | tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.tar.gz tdelibs-ce4a32fe52ef09d8f5ff1dd22c001110902b60a2.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kspell2/README')
-rw-r--r-- | kspell2/README | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/kspell2/README b/kspell2/README new file mode 100644 index 000000000..6dfbc1601 --- /dev/null +++ b/kspell2/README @@ -0,0 +1,71 @@ +This is KSpell 2 beta implementation. KSpell 2 is completely in +process and is plugin based. + +The main class in the KSpell 2 is the KSpell::Broker. Broker is +responsible for loading all the plugins and creating the actual +dictionaries. + +Dictionaries are abstracted in the KSpell::Dictionary object which +encapsulates all spell-checking functionality. + +You'll notice that the Broker is being created via the +Broker::Ptr Broker::openBroker( KSharedConfig *config =0 ); +call. The Broker is a shared object and the reason for this construct +is very simple: +- most application would need to have a few Broker objects (one for +the dialog dictionaries, one for the background spell checking, one +for the suggestion dictionaries) and because Broker loads plugins on +creation it would be ineffective to have a few redundant Broker +objects in one application, +- each Broker maps to a configuration file. If one Broker would change +in the application, all others would have to reparse and repopulate +the options, which would be really inefficient. + +Due to the above you deal with the broker via the Broker::Ptr +interface. + +Once you have the Broker object in your application, you can ask it +for a Dictionary of some language. If such a dictionary is available +you get it back as a Dictionary class and you use that class to do the +actual spell checking. + +Broker on construction checks for available KSpell::Client's which are +loaded as dynamic plugins. It's the actual KSpell::Client that gives +the broker the KSpell::Dictionary. +One can specify a default client and the default language for a Broker +theough the settings() method and the KSpell::Settings class which it +returns. + +Also note that you can have dictionaries for multiple languages in +your application. +And most importantly the interface to KSpell::Dictionary is +synchronous so once you pass a word to check you don't have to wait +for any signals - you get corrections right back. +Sample usage of KSpell 2 looks like follows: + +#include <kspell_broker.h> +#include <kspell_dictionary.h> +using namespace KSpell; + + +Broker::Ptr broker = Broker::openBroker( someKSettingsObject ); +Dictionary *enDict = broker->dictionary( "en_US" ); +Dictionary *deDict = broker->dictionary( "de_DE" ); + +void someFunc( const QString& word ) +{ + if ( enDict->check( word ) ) { + kdDebug()<<"Word \""<<word<<"\" is misspelled." <<endl; + QStringList suggestion = enDict->suggest( word ); + kdDebug()<<"Suggestions: "<< suggestions <<endl; + } + + QStringList suggestions; + if ( deDict->checkAndSuggest( word, suggestions ) ) { + kdDebug()<<"Wort \""<<word<<"\" ist fehlbuchstabiert." <<endl; + kdDebug()<<"Vorschlage: "<< suggestions <<endl; + } +} + +delete enDict; +delete deDict; |