summaryrefslogtreecommitdiffstats
path: root/tools/spell/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/spell/main.cpp')
-rw-r--r--tools/spell/main.cpp137
1 files changed, 137 insertions, 0 deletions
diff --git a/tools/spell/main.cpp b/tools/spell/main.cpp
new file mode 100644
index 000000000..564f66622
--- /dev/null
+++ b/tools/spell/main.cpp
@@ -0,0 +1,137 @@
+/* This file is part of the KDE project
+ Copyright (C) 1998, 1999 Torben Weis <weis@kde.org>
+ Copyright (C) 2002 Laurent Montel <lmontel@mandrakesoft.com>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include "main.h"
+#include <tdemessagebox.h>
+#include <tdelocale.h>
+#include <kdebug.h>
+#include <kinstance.h>
+#include <tdeconfig.h>
+#include <kgenericfactory.h>
+#include <klibloader.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+/***************************************************
+ *
+ * Factory
+ *
+ ***************************************************/
+
+K_EXPORT_COMPONENT_FACTORY( libtdespelltool, KGenericFactory<SpellChecker> )
+
+/***************************************************
+ *
+ * Spellchecker
+ *
+ ***************************************************/
+
+SpellChecker::SpellChecker( TQObject* parent, const char* name, const TQStringList & )
+ : KDataTool( parent, name )
+{
+}
+
+bool SpellChecker::run( const TQString& command, void* data, const TQString& datatype, const TQString& mimetype )
+{
+ if ( command != "tools-check-spelling" )
+ {
+ kdDebug(31000) << "SpellChecker does only accept the command 'spellcheck'" << endl;
+ kdDebug(31000) << " The commands " << command << " is not accepted" << endl;
+ return FALSE;
+ }
+
+ // Check wether we can accept the data
+ if ( datatype != TQSTRING_OBJECT_NAME_STRING )
+ {
+ kdDebug(31000) << "SpellChecker only accepts datatype TQString" << endl;
+ return FALSE;
+ }
+
+ if ( mimetype != "text/plain" && mimetype != "application/x-singleword" )
+ {
+ kdDebug(31000) << "SpellChecker only accepts mimetype text/plain and application/x-singleword" << endl;
+ return FALSE;
+ }
+
+ // Get data
+ TQString buffer = *((TQString *)data);
+ buffer = buffer.stripWhiteSpace();
+
+ if ( instance() )
+ {
+ TDEConfig * config = instance()->config();
+ TQCString gn( "KSpell " );
+ gn += instance()->instanceName(); // for compat reasons, and to avoid finding the group in kdeglobals (hmm...)
+ TQString groupName = TQString::fromLatin1( gn );
+ //kdDebug() << "Group: " << groupName << endl;
+ if ( config->hasGroup( groupName ) )
+ {
+ //kdDebug() << "SpellChecker::run - group found -" << endl;
+ config->setGroup( groupName );
+#if 0
+ kosconfig.setNoRootAffix(config->readNumEntry ("KSpell_NoRootAffix", 0));
+ kosconfig.setRunTogether(config->readNumEntry ("KSpell_RunTogether", 0));
+ kosconfig.setDictionary(config->readEntry ("KSpell_Dictionary", ""));
+ kosconfig.setDictFromList(config->readNumEntry ("KSpell_DictFromList", FALSE));
+ kosconfig.setEncoding(config->readNumEntry ("KSpell_Encoding", KOS_E_ASCII));
+ kosconfig.setClient(config->readNumEntry ("KSpell_Client", KOS_CLIENT_ISPELL));
+ kosconfig.setNoRootAffix(config->readNumEntry ("KSpell_NoRootAffix", 0));
+ kosconfig.setRunTogether(config->readNumEntry ("KSpell_RunTogether", 0));
+ kosconfig.setDictionary(config->readEntry ("KSpell_Dictionary", ""));
+ kosconfig.setDictFromList(config->readNumEntry ("KSpell_DictFromList", FALSE));
+
+ kosconfig.setIgnoreCase( config->readNumEntry( "KSpell_IgnoreCase", 0));
+ kosconfig.setIgnoreAccent( config->readNumEntry( "KSpell_IgnoreAccent", 0));
+ kosconfig.setDontCheckUpperWord(config->readBoolEntry("KSpell_dont_check_upper_word",false));
+ kosconfig.setDontCheckTitleCase(config->readBoolEntry("KSpell_dont_check_title_case",false));
+ kosconfig.setSpellWordWithNumber( config->readNumEntry("KSpell_SpellWordWithNumber", false));
+#endif
+ }
+ }
+#if 0 //PORT to tdespell2
+ // Call the spell checker
+ KOSpell::modalCheck( buffer, &kosconfig );
+ *((TQString*)data) = buffer;
+#endif
+#if 0 //fixme
+ // Call the spell checker
+ KSpell::spellStatus status=(KSpell::spellStatus)KSpell::modalCheck( buffer, &ksconfig );
+
+ if (status == KSpell::Error)
+ {
+ KMessageBox::sorry(0L, i18n("KSpell could not be started.\n"
+ "Please make sure you have ISpell or ASpell properly configured and in your PATH."));
+ }
+ else if (status == KSpell::Crashed)
+ {
+ KMessageBox::sorry(0L, i18n("KSpell seems to have crashed."));
+ }
+ else
+ {
+ // Set data
+ *((TQString*)data) = buffer;
+ }
+#endif
+ return TRUE;
+}
+
+#include "main.moc"