summaryrefslogtreecommitdiffstats
path: root/tdespell2/README
diff options
context:
space:
mode:
Diffstat (limited to 'tdespell2/README')
-rw-r--r--tdespell2/README71
1 files changed, 71 insertions, 0 deletions
diff --git a/tdespell2/README b/tdespell2/README
new file mode 100644
index 000000000..4cba772b6
--- /dev/null
+++ b/tdespell2/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 <tdespell_broker.h>
+#include <tdespell_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;