diff options
Diffstat (limited to 'kdeui/ksconfig.cpp')
-rw-r--r-- | kdeui/ksconfig.cpp | 1028 |
1 files changed, 0 insertions, 1028 deletions
diff --git a/kdeui/ksconfig.cpp b/kdeui/ksconfig.cpp deleted file mode 100644 index bb1deab52..000000000 --- a/kdeui/ksconfig.cpp +++ /dev/null @@ -1,1028 +0,0 @@ -/* This file is part of the KDE libraries - Copyright (C) 1997 David Sweet <dsweet@kde.org> - Copyright (C) 2000-2001 Wolfram Diestel <wolfram@steloj.de> - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License version 2 as published by the Free Software Foundation. - - 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 <config.h> - -#include <tqcheckbox.h> -#include <tqcombobox.h> -#include <tqlabel.h> -#include <tqlayout.h> -#include <tqtimer.h> - -#include <kapplication.h> -#include <kconfig.h> -#include <kdebug.h> -#include <kdialog.h> -#include <kfiledialog.h> -#include <kglobal.h> -#include <klineedit.h> -#include <klocale.h> -#include <kpushbutton.h> -#include <kstdguiitem.h> - -#include "ksconfig.h" - -class KSpellConfigPrivate -{ -public: - TQStringList replacelist; -}; - - -KSpellConfig::KSpellConfig (const KSpellConfig &_ksc) - : TQWidget(0, 0), nodialog(true) - , kc(0) - , cb1(0) - , cb2(0) - , dictlist(0) - , dictcombo(0) - , encodingcombo(0) - , clientcombo(0) -{ - d = new KSpellConfigPrivate; - setReplaceAllList( _ksc.replaceAllList() ); - setNoRootAffix( _ksc.noRootAffix() ); - setRunTogether( _ksc.runTogether() ); - setDictionary( _ksc.dictionary() ); - setDictFromList( _ksc.dictFromList() ); - // setPersonalDict (_ksc.personalDict()); - setIgnoreList( _ksc.ignoreList() ); - setEncoding( _ksc.encoding() ); - setClient( _ksc.client() ); -} - - -KSpellConfig::KSpellConfig( TQWidget *parent, const char *name, - KSpellConfig *_ksc, bool addHelpButton ) - : TQWidget (parent, name), nodialog(false) - , kc(0) - , cb1(0) - , cb2(0) - , dictlist(0) - , dictcombo(0) - , encodingcombo(0) - , clientcombo(0) -{ - d = new KSpellConfigPrivate; - kc = KGlobal::config(); - - if( !_ksc ) - { - readGlobalSettings(); - } - else - { - setNoRootAffix( _ksc->noRootAffix() ); - setRunTogether( _ksc->runTogether() ); - setDictionary( _ksc->dictionary() ); - setDictFromList( _ksc->dictFromList() ); - //setPersonalDict (_ksc->personalDict()); - setIgnoreList( _ksc->ignoreList() ); - setEncoding( _ksc->encoding() ); - setClient( _ksc->client() ); - } - - TQGridLayout *glay = new TQGridLayout( this, 6, 3, 0, KDialog::spacingHint() ); - cb1 = new TQCheckBox( i18n("Create &root/affix combinations" - " not in dictionary"), this, "NoRootAffix" ); - connect( cb1, TQT_SIGNAL(toggled(bool)), TQT_SLOT(sNoAff(bool)) ); - glay->addMultiCellWidget( cb1, 0, 0, 0, 2 ); - - cb2 = new TQCheckBox( i18n("Consider run-together &words" - " as spelling errors"), this, "RunTogether" ); - connect( cb2, TQT_SIGNAL(toggled(bool)), TQT_SLOT(sRunTogether(bool)) ); - glay->addMultiCellWidget( cb2, 1, 1, 0, 2 ); - - dictcombo = new TQComboBox( this, "DictFromList" ); - dictcombo->setInsertionPolicy( TQComboBox::NoInsertion ); - connect( dictcombo, TQT_SIGNAL (activated(int)), - this, TQT_SLOT (sSetDictionary(int)) ); - glay->addMultiCellWidget( dictcombo, 2, 2, 1, 2 ); - - dictlist = new TQLabel( dictcombo, i18n("&Dictionary:"), this ); - glay->addWidget( dictlist, 2 ,0 ); - - encodingcombo = new TQComboBox( this, "Encoding" ); - encodingcombo->insertItem( "US-ASCII" ); - encodingcombo->insertItem( "ISO 8859-1" ); - encodingcombo->insertItem( "ISO 8859-2" ); - encodingcombo->insertItem( "ISO 8859-3" ); - encodingcombo->insertItem( "ISO 8859-4" ); - encodingcombo->insertItem( "ISO 8859-5" ); - encodingcombo->insertItem( "ISO 8859-7" ); - encodingcombo->insertItem( "ISO 8859-8" ); - encodingcombo->insertItem( "ISO 8859-9" ); - encodingcombo->insertItem( "ISO 8859-13" ); - encodingcombo->insertItem( "ISO 8859-15" ); - encodingcombo->insertItem( "UTF-8" ); - encodingcombo->insertItem( "KOI8-R" ); - encodingcombo->insertItem( "KOI8-U" ); - encodingcombo->insertItem( "CP1251" ); - encodingcombo->insertItem( "CP1255" ); - - connect( encodingcombo, TQT_SIGNAL(activated(int)), this, - TQT_SLOT(sChangeEncoding(int)) ); - glay->addMultiCellWidget( encodingcombo, 3, 3, 1, 2 ); - - TQLabel *tmpQLabel = new TQLabel( encodingcombo, i18n("&Encoding:"), this); - glay->addWidget( tmpQLabel, 3, 0 ); - - - clientcombo = new TQComboBox( this, "Client" ); - clientcombo->insertItem( i18n("International Ispell") ); - clientcombo->insertItem( i18n("Aspell") ); - clientcombo->insertItem( i18n("Hspell") ); - clientcombo->insertItem( i18n("Zemberek") ); - connect( clientcombo, TQT_SIGNAL (activated(int)), this, - TQT_SLOT (sChangeClient(int)) ); - glay->addMultiCellWidget( clientcombo, 4, 4, 1, 2 ); - - tmpQLabel = new TQLabel( clientcombo, i18n("&Client:"), this ); - glay->addWidget( tmpQLabel, 4, 0 ); - - if( addHelpButton ) - { - TQPushButton *pushButton = new KPushButton( KStdGuiItem::help(), this ); - connect( pushButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(sHelp()) ); - glay->addWidget(pushButton, 5, 2); - } - - fillInDialog(); -} - -KSpellConfig::~KSpellConfig() -{ - delete d; -} - - -bool -KSpellConfig::dictFromList() const -{ - return dictfromlist; -} - -bool -KSpellConfig::readGlobalSettings() -{ - KConfigGroupSaver cs( kc,"KSpell" ); - - setNoRootAffix ( kc->readNumEntry("KSpell_NoRootAffix", 0) ); - setRunTogether ( kc->readNumEntry("KSpell_RunTogether", 0) ); - setDictionary ( kc->readEntry("KSpell_Dictionary") ); - setDictFromList ( kc->readNumEntry("KSpell_DictFromList", false) ); - setEncoding ( kc->readNumEntry ("KSpell_Encoding", KS_E_UTF8) ); - setClient ( kc->readNumEntry ("KSpell_Client", KS_CLIENT_ISPELL) ); - - return true; -} - -bool -KSpellConfig::writeGlobalSettings () -{ - KConfigGroupSaver cs( kc,"KSpell" ); - - kc->writeEntry ("KSpell_NoRootAffix",(int) noRootAffix(), true, true); - kc->writeEntry ("KSpell_RunTogether", (int) runTogether(), true, true); - kc->writeEntry ("KSpell_Dictionary", dictionary(), true, true); - kc->writeEntry ("KSpell_DictFromList",(int) dictFromList(), true, true); - kc->writeEntry ("KSpell_Encoding", (int) encoding(), - true, true); - kc->writeEntry ("KSpell_Client", client(), - true, true); - kc->sync(); - - return true; -} - -void -KSpellConfig::sChangeEncoding( int i ) -{ - kdDebug(750) << "KSpellConfig::sChangeEncoding(" << i << ")" << endl; - setEncoding( i ); - emit configChanged(); -} - -void -KSpellConfig::sChangeClient( int i ) -{ - setClient( i ); - - // read in new dict list - if ( dictcombo ) { - if ( iclient == KS_CLIENT_ISPELL ) - getAvailDictsIspell(); - else if ( iclient == KS_CLIENT_HSPELL ) - { - langfnames.clear(); - dictcombo->clear(); - dictcombo->insertItem( i18n("Hebrew") ); - sChangeEncoding( KS_E_CP1255 ); - } else if ( iclient == KS_CLIENT_ZEMBEREK ) { - langfnames.clear(); - dictcombo->clear(); - dictcombo->insertItem( i18n("Turkish") ); - sChangeEncoding( KS_E_UTF8 ); - } - else - getAvailDictsAspell(); - } - emit configChanged(); -} - -// KDE 4: Make it const TQString & fname (only fname) -bool -KSpellConfig::interpret( TQString &fname, TQString &lname, - TQString &hname ) - -{ - - kdDebug(750) << "KSpellConfig::interpret [" << fname << "]" << endl; - - TQString dname( fname ); - - if( dname.endsWith( "+" ) ) - dname.remove( dname.length()-1, 1 ); - - if( dname.endsWith("sml") || dname.endsWith("med") || dname.endsWith("lrg") || - dname.endsWith("xlg")) - dname.remove(dname.length()-3,3); - - TQString extension; - - int i = dname.find('-'); - if ( i != -1 ) - { - extension = dname.mid(i+1); - dname.truncate(i); - } - - // Aspell uses 2 alpha language codes or 2 alpha language + 2 alpha country, - // but since aspell 0.6 also 3-character ISO-codes can be used - if ( (dname.length() == 2) || (dname.length() == 3) ) { - lname = dname; - hname = KGlobal::locale()->twoAlphaToLanguageName( lname ); - } - else if ( (dname.length() == 5) && (dname[2] == '_') ) { - lname = dname.left(2); - hname = KGlobal::locale()->twoAlphaToLanguageName(lname); - TQString country = KGlobal::locale()->twoAlphaToCountryName( dname.right(2) ); - if ( extension.isEmpty() ) - extension = country; - else - extension = country + " - " + extension; - } - //These are mostly the ispell-langpack defaults - else if ( dname=="english" || dname=="american" || - dname=="british" || dname=="canadian" ) { - lname="en"; hname=i18n("English"); - } - else if ( dname == "espa~nol" || dname == "espanol" ) { - lname="es"; hname=i18n("Spanish"); - } - else if (dname=="dansk") { - lname="da"; hname=i18n("Danish"); - } - else if (dname=="deutsch") { - lname="de"; hname=i18n("German"); - } - else if (dname=="german") { - lname="de"; hname=i18n("German (new spelling)"); - } - else if (dname=="portuguesb" || dname=="br") { - lname="br"; hname=i18n("Brazilian Portuguese"); - } - else if (dname=="portugues") { - lname="pt"; hname=i18n("Portuguese"); - } - else if (dname=="esperanto") { - lname="eo"; hname=i18n("Esperanto"); - } - else if (dname=="norsk") { - lname="no"; hname=i18n("Norwegian"); - } - else if (dname=="polish") { - lname="pl"; hname=i18n("Polish"); sChangeEncoding(KS_E_LATIN2); - } - else if (dname=="russian") { - lname="ru"; hname=i18n("Russian"); - } - else if (dname=="slovensko") { - lname="si"; hname=i18n("Slovenian"); sChangeEncoding(KS_E_LATIN2); - } - else if (dname=="slovak"){ - lname="sk"; hname=i18n("Slovak"); sChangeEncoding(KS_E_LATIN2); - } - else if (dname=="czech") { - lname="cs"; hname=i18n("Czech"); sChangeEncoding(KS_E_LATIN2); - } - else if (dname=="svenska") { - lname="sv"; hname=i18n("Swedish"); - } - else if (dname=="swiss") { - lname="de"; hname=i18n("Swiss German"); - } - else if (dname=="ukrainian") { - lname="uk"; hname=i18n("Ukrainian"); - } - else if (dname=="lietuviu" || dname=="lithuanian") { - lname="lt"; hname=i18n("Lithuanian"); - } - else if (dname=="francais" || dname=="french") { - lname="fr"; hname=i18n("French"); - } - else if (dname=="belarusian") { // waiting for post 2.2 to not dissapoint translators - lname="be"; hname=i18n("Belarusian"); - } - else if( dname == "magyar" ) { - lname="hu"; hname=i18n("Hungarian"); - sChangeEncoding(KS_E_LATIN2); - } - else { - lname=""; hname=i18n("Unknown ispell dictionary", "Unknown"); - } - if (!extension.isEmpty()) - { - hname = hname + " (" + extension + ")"; - } - - //We have explicitly chosen English as the default here. - if ( ( KGlobal::locale()->language() == TQString::tqfromLatin1("C") && - lname==TQString::tqfromLatin1("en") ) || - KGlobal::locale()->language() == lname ) - return true; - - return false; -} - -void -KSpellConfig::fillInDialog () -{ - if ( nodialog ) - return; - - kdDebug(750) << "KSpellConfig::fillinDialog" << endl; - - cb1->setChecked( noRootAffix() ); - cb2->setChecked( runTogether() ); - encodingcombo->setCurrentItem( encoding() ); - clientcombo->setCurrentItem( client() ); - - // get list of available dictionaries - if ( iclient == KS_CLIENT_ISPELL ) - getAvailDictsIspell(); - else if ( iclient == KS_CLIENT_HSPELL ) - { - langfnames.clear(); - dictcombo->clear(); - langfnames.append(""); // Default - dictcombo->insertItem( i18n("Hebrew") ); - } else if ( iclient == KS_CLIENT_ZEMBEREK ) { - langfnames.clear(); - dictcombo->clear(); - langfnames.append(""); - dictcombo->insertItem( i18n("Turkish") ); - } - else - getAvailDictsAspell(); - - // select the used dictionary in the list - int whichelement=-1; - - if ( dictFromList() ) - whichelement = langfnames.findIndex(dictionary()); - - dictcombo->setMinimumWidth (dictcombo->tqsizeHint().width()); - - if (dictionary().isEmpty() || whichelement!=-1) - { - setDictFromList (true); - if (whichelement!=-1) - dictcombo->setCurrentItem(whichelement); - } - else - // Current dictionary vanished, present the user with a default if possible. - if ( !langfnames.empty() ) - { - setDictFromList( true ); - dictcombo->setCurrentItem(0); - } - else - setDictFromList( false ); - - sDictionary( dictFromList() ); - sPathDictionary( !dictFromList() ); - -} - - -void KSpellConfig::getAvailDictsIspell () { - - langfnames.clear(); - dictcombo->clear(); - langfnames.append(""); // Default - dictcombo->insertItem( i18n("ISpell Default") ); - - // dictionary path - TQFileInfo dir ("/usr/lib" KDELIBSUFF "/ispell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/lib" KDELIBSUFF "/ispell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/share/ispell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/share/ispell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/pkg/lib"); - /* TODO get them all instead of just one of them. - * If /usr/local/lib exists, it skips the rest - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/lib"); - */ - if (!dir.exists() || !dir.isDir()) return; - - kdDebug(750) << "KSpellConfig::getAvailDictsIspell " - << dir.filePath() << " " << dir.dirPath() << endl; - - const TQDir thedir (dir.filePath(),"*.hash"); - const TQStringList entryList = thedir.entryList(); - - kdDebug(750) << "KSpellConfig" << thedir.path() << "\n" << endl; - kdDebug(750) << "entryList().count()=" - << entryList.count() << endl; - - TQStringList::const_iterator entryListItr = entryList.constBegin(); - const TQStringList::const_iterator entryListEnd = entryList.constEnd(); - - for ( ; entryListItr != entryListEnd; ++entryListItr) - { - TQString fname, lname, hname; - fname = *entryListItr; - - // remove .hash - if (fname.endsWith(".hash")) fname.remove (fname.length()-5,5); - - if (interpret (fname, lname, hname) && langfnames.first().isEmpty()) - { // This one is the KDE default language - // so place it first in the lists (overwrite "Default") - - langfnames.remove ( langfnames.begin() ); - langfnames.prepend ( fname ); - - hname=i18n("default spelling dictionary" - ,"Default - %1 [%2]").arg(hname).arg(fname); - - dictcombo->changeItem (hname,0); - } - else - { - langfnames.append (fname); - hname=hname+" ["+fname+"]"; - - dictcombo->insertItem (hname); - } - } -} - -void KSpellConfig::getAvailDictsAspell () { - - langfnames.clear(); - dictcombo->clear(); - - langfnames.append(""); // Default - dictcombo->insertItem (i18n("ASpell Default")); - - // Aspell now have /usr/lib/aspell as - // ASPELL_DATADIR default. - TQFileInfo dir ( ASPELL_DATADIR ); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/lib" KDELIBSUFF "/aspell-0.60"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/lib" KDELIBSUFF "/aspell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/share/aspell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/share/aspell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/pkg/lib/aspell"); - if (!dir.exists() || !dir.isDir()) return; - - kdDebug(750) << "KSpellConfig::getAvailDictsAspell " - << dir.filePath() << " " << dir.dirPath() << endl; - - const TQDir thedir (dir.filePath(),"*"); - const TQStringList entryList = thedir.entryList(); - - kdDebug(750) << "KSpellConfig" << thedir.path() << "\n" << endl; - kdDebug(750) << "entryList().count()=" - << entryList.count() << endl; - - TQStringList::const_iterator entryListItr = entryList.constBegin(); - const TQStringList::const_iterator entryListEnd = entryList.constEnd(); - - for ( ; entryListItr != entryListEnd; ++entryListItr) - { - TQString fname, lname, hname; - fname = *entryListItr; - - // consider only simple dicts without '-' in the name - // FIXME: may be this is wrong an the list should contain - // all *.multi files too, to allow using special dictionaries - - // Well, KSpell2 has a better way to do this, but this code has to be - // cleaned up somehow: since aspell 0.6 we have quite a lot of files in the - // aspell dictionary that are not dictionaries. These must not be presented as "languages" - // We only keep - // *.rws: dictionary - // *.multi: definition file to load several subdictionaries - if ( !( fname.endsWith(".rws") || fname.endsWith(".multi") ) ) { - // remove noise from the language list - continue; - } - if (fname[0] != '.') - { - - // remove .multi - if (fname.endsWith(".multi")) fname.remove (fname.length()-6,6); - // remove .rws - if (fname.endsWith(".rws")) fname.remove (fname.length()-4,4); - - if (interpret (fname, lname, hname) && langfnames.first().isEmpty()) - { // This one is the KDE default language - // so place it first in the lists (overwrite "Default") - - langfnames.remove ( langfnames.begin() ); - langfnames.prepend ( fname ); - - hname=i18n("default spelling dictionary" - ,"Default - %1").arg(hname); - - dictcombo->changeItem (hname,0); - } - else - { - langfnames.append (fname); - dictcombo->insertItem (hname); - } - } - } -} - -void -KSpellConfig::fillDicts( TQComboBox* box, TQStringList* dictionaries ) -{ - langfnames.clear(); - if ( box ) { - if ( iclient == KS_CLIENT_ISPELL ) { - box->clear(); - langfnames.append(""); // Default - box->insertItem( i18n("ISpell Default") ); - - // dictionary path - TQFileInfo dir ("/usr/lib/ispell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/lib/ispell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/share/ispell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/share/ispell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/pkg/lib"); - /* TODO get them all instead of just one of them. - * If /usr/local/lib exists, it skips the rest - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/lib"); - */ - if (!dir.exists() || !dir.isDir()) return; - - kdDebug(750) << "KSpellConfig::getAvailDictsIspell " - << dir.filePath() << " " << dir.dirPath() << endl; - - const TQDir thedir (dir.filePath(),"*.hash"); - const TQStringList entryList = thedir.entryList(); - - kdDebug(750) << "KSpellConfig" << thedir.path() << "\n" << endl; - kdDebug(750) << "entryList().count()=" - << entryList.count() << endl; - - TQStringList::const_iterator entryListItr = entryList.constBegin(); - const TQStringList::const_iterator entryListEnd = entryList.constEnd(); - - for ( ; entryListItr != entryListEnd; ++entryListItr) - { - TQString fname, lname, hname; - fname = *entryListItr; - - // remove .hash - if (fname.endsWith(".hash")) fname.remove (fname.length()-5,5); - - if (interpret (fname, lname, hname) && langfnames.first().isEmpty()) - { // This one is the KDE default language - // so place it first in the lists (overwrite "Default") - - langfnames.remove ( langfnames.begin() ); - langfnames.prepend ( fname ); - - hname=i18n("default spelling dictionary" - ,"Default - %1 [%2]").arg(hname).arg(fname); - - box->changeItem (hname,0); - } - else - { - langfnames.append (fname); - hname=hname+" ["+fname+"]"; - - box->insertItem (hname); - } - } - } else if ( iclient == KS_CLIENT_HSPELL ) { - box->clear(); - box->insertItem( i18n("Hebrew") ); - langfnames.append(""); // Default - sChangeEncoding( KS_E_CP1255 ); - } else if ( iclient == KS_CLIENT_ZEMBEREK ) { - box->clear(); - box->insertItem( i18n("Turkish") ); - langfnames.append(""); - sChangeEncoding( KS_E_UTF8 ); - } - else { - box->clear(); - langfnames.append(""); // Default - box->insertItem (i18n("ASpell Default")); - - // dictionary path - // FIXME: use "aspell dump config" to find out the dict-dir - TQFileInfo dir ("/usr/lib" KDELIBSUFF "/aspell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/lib" KDELIBSUFF "/aspell-0.60"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/lib" KDELIBSUFF "/aspell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/share/aspell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/local/share/aspell"); - if (!dir.exists() || !dir.isDir()) - dir.setFile ("/usr/pkg/lib/aspell"); - if (!dir.exists() || !dir.isDir()) return; - - kdDebug(750) << "KSpellConfig::getAvailDictsAspell " - << dir.filePath() << " " << dir.dirPath() << endl; - - const TQDir thedir (dir.filePath(),"*"); - const TQStringList entryList = thedir.entryList(); - - kdDebug(750) << "KSpellConfig" << thedir.path() << "\n" << endl; - kdDebug(750) << "entryList().count()=" - << entryList.count() << endl; - - TQStringList::const_iterator entryListItr = entryList.constBegin(); - const TQStringList::const_iterator entryListEnd = entryList.constEnd(); - - for ( ; entryListItr != entryListEnd; ++entryListItr) - { - TQString fname, lname, hname; - fname = *entryListItr; - - // consider only simple dicts without '-' in the name - // FIXME: may be this is wrong an the list should contain - // all *.multi files too, to allow using special dictionaries - - // Well, KSpell2 has a better way to do this, but this code has to be - // cleaned up somehow: since aspell 0.6 we have quite a lot of files in the - // aspell dictionary that are not dictionaries. These must not be presented as "languages" - // We only keep - // *.rws: dictionary - // *.multi: definition file to load several subdictionaries - if ( !( fname.endsWith(".rws") || fname.endsWith(".multi") ) ) { - // remove noise from the language list - continue; - } - if (fname[0] != '.') - { - - // remove .multi - if (fname.endsWith(".multi")) fname.remove (fname.length()-6,6); - // remove .rws - if (fname.endsWith(".rws")) fname.remove (fname.length()-4,4); - - if (interpret (fname, lname, hname) && langfnames.first().isEmpty()) - { // This one is the KDE default language - // so place it first in the lists (overwrite "Default") - - langfnames.remove ( langfnames.begin() ); - langfnames.prepend ( fname ); - - hname=i18n("default spelling dictionary" - ,"Default - %1").arg(hname); - - box->changeItem (hname,0); - } - else - { - langfnames.append (fname); - box->insertItem (hname); - } - } - } - } - int whichelement = langfnames.findIndex(qsdict); - if ( whichelement >= 0 ) { - box->setCurrentItem( whichelement ); - } - if ( dictionaries ) - *dictionaries = langfnames; - } -} - -/* - * Options setting routines. - */ - -void -KSpellConfig::setClient (int c) -{ - iclient = c; - - if (clientcombo) - clientcombo->setCurrentItem(c); -} - -void -KSpellConfig::setNoRootAffix (bool b) -{ - bnorootaffix=b; - - if(cb1) - cb1->setChecked(b); -} - -void -KSpellConfig::setRunTogether(bool b) -{ - bruntogether=b; - - if(cb2) - cb2->setChecked(b); -} - -void -KSpellConfig::setDictionary (const TQString s) -{ - qsdict=s; //.copy(); - - if (qsdict.length()>5) - if ((signed)qsdict.find(".hash")==(signed)qsdict.length()-5) - qsdict.remove (qsdict.length()-5,5); - - - if(dictcombo) - { - int whichelement=-1; - if (dictFromList()) - { - whichelement = langfnames.findIndex(s); - - if(whichelement >= 0) - { - dictcombo->setCurrentItem(whichelement); - } - } - } - - -} - -void -KSpellConfig::setDictFromList (bool dfl) -{ - // kdebug (KDEBUG_INFO, 750, "sdfl = %d", dfl); - dictfromlist=dfl; -} - -/* -void KSpellConfig::setPersonalDict (const char *s) -{ - qspdict=s; -} -*/ - -void -KSpellConfig::setEncoding (int enctype) -{ - enc=enctype; - - if(encodingcombo) - encodingcombo->setCurrentItem(enctype); -} - -/* - Options reading routines. - */ -int -KSpellConfig::client () const -{ - return iclient; -} - - -bool -KSpellConfig::noRootAffix () const -{ - return bnorootaffix; -} - -bool -KSpellConfig::runTogether() const -{ - return bruntogether; -} - -const -TQString KSpellConfig::dictionary () const -{ - return qsdict; -} - -/* -const TQString KSpellConfig::personalDict () const -{ - return qspdict; -} -*/ - -int -KSpellConfig::encoding () const -{ - return enc; -} - -void -KSpellConfig::sRunTogether(bool) -{ - setRunTogether (cb2->isChecked()); - emit configChanged(); -} - -void -KSpellConfig::sNoAff(bool) -{ - setNoRootAffix (cb1->isChecked()); - emit configChanged(); -} - -/* -void -KSpellConfig::sBrowseDict() -{ - return; - - TQString qs( KFileDialog::getOpenFileName ("/usr/local/lib","*.hash") ); - if ( !qs.isNull() ) - kle1->setText (qs); - -} -*/ - -/* -void KSpellConfig::sBrowsePDict() -{ - //how do I find home directory path?? - TQString qs( KFileDialog::getOpenFileName ("",".ispell_*") ); - if ( !qs.isNull() ) - kle2->setText (qs); - - -} -*/ - -void -KSpellConfig::sSetDictionary (int i) -{ - setDictionary (langfnames[i]); - setDictFromList (true); - TQTimer::singleShot( 0, this, TQT_SIGNAL( configChanged() ) ); -} - -void -KSpellConfig::sDictionary(bool on) -{ - if (on) - { - dictcombo->setEnabled (true); - setDictionary (langfnames[dictcombo->currentItem()] ); - setDictFromList (true); - } - else - { - dictcombo->setEnabled (false); - } - emit configChanged(); -} - -void -KSpellConfig::sPathDictionary(bool on) -{ - return; //enough for now - - - if (on) - { - //kle1->setEnabled (true); - // browsebutton1->setEnabled (true); - //setDictionary (kle1->text()); - setDictFromList (false); - } - else - { - //kle1->setEnabled (false); - //browsebutton1->setEnabled (false); - } - emit configChanged(); -} - - -void KSpellConfig::activateHelp( void ) -{ - sHelp(); -} - -void KSpellConfig::sHelp( void ) -{ - kapp->invokeHelp("configuration", "kspell"); -} - -/* -void KSpellConfig::textChanged1 (const char *s) -{ - setDictionary (s); -} - -void KSpellConfig::textChanged2 (const char *) -{ - // setPersonalDict (s); -} -*/ - -void -KSpellConfig::operator= (const KSpellConfig &ksc) -{ - //We want to copy the data members, but not the - //pointers to the child widgets - setNoRootAffix (ksc.noRootAffix()); - setRunTogether (ksc.runTogether()); - setDictionary (ksc.dictionary()); - setDictFromList (ksc.dictFromList()); - // setPersonalDict (ksc.personalDict()); - setEncoding (ksc.encoding()); - setClient (ksc.client()); - - fillInDialog(); -} - -// KDE 4: Make it const TQStringList & -void -KSpellConfig::setIgnoreList (TQStringList _ignorelist) -{ - ignorelist=_ignorelist; -} - -TQStringList -KSpellConfig::ignoreList () const -{ - return ignorelist; -} - -// KDE 4: Make it const TQStringList & -void -KSpellConfig::setReplaceAllList (TQStringList _replacelist) -{ - d->replacelist=_replacelist; -} - -TQStringList -KSpellConfig::replaceAllList() const -{ - return d->replacelist; -} - -#include "ksconfig.moc" - - - |