00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#include <qcheckbox.h>
00022
#include <qcombobox.h>
00023
#include <qlabel.h>
00024
#include <qlayout.h>
00025
00026
#include <kapplication.h>
00027
#include <kconfig.h>
00028
#include <kdebug.h>
00029
#include <kdialog.h>
00030
#include <kfiledialog.h>
00031
#include <kglobal.h>
00032
#include <klineedit.h>
00033
#include <klocale.h>
00034
#include <kpushbutton.h>
00035
#include <kstdguiitem.h>
00036
00037
#include "ksconfig.h"
00038
00039
class KSpellConfigPrivate
00040 {
00041
public:
00042
QStringList replacelist;
00043 };
00044
00045
00046
KSpellConfig::KSpellConfig (
const KSpellConfig &_ksc)
00047 :
QWidget(0, 0), nodialog(true)
00048 , kc(0)
00049 , cb1(0)
00050 , cb2(0)
00051 , dictlist(0)
00052 , dictcombo(0)
00053 , encodingcombo(0)
00054 , clientcombo(0)
00055 {
00056 d =
new KSpellConfigPrivate;
00057 setReplaceAllList( _ksc.
replaceAllList() );
00058 setNoRootAffix( _ksc.
noRootAffix() );
00059 setRunTogether( _ksc.
runTogether() );
00060 setDictionary( _ksc.
dictionary() );
00061 setDictFromList( _ksc.
dictFromList() );
00062
00063 setIgnoreList( _ksc.
ignoreList() );
00064 setEncoding( _ksc.
encoding() );
00065 setClient( _ksc.
client() );
00066 }
00067
00068
00069 KSpellConfig::KSpellConfig(
QWidget *parent,
const char *name,
00070
KSpellConfig *_ksc,
bool addHelpButton )
00071 :
QWidget (parent, name), nodialog(false)
00072 , kc(0)
00073 , cb1(0)
00074 , cb2(0)
00075 , dictlist(0)
00076 , dictcombo(0)
00077 , encodingcombo(0)
00078 , clientcombo(0)
00079 {
00080 d =
new KSpellConfigPrivate;
00081 kc =
KGlobal::config();
00082
00083
if( !_ksc )
00084 {
00085 readGlobalSettings();
00086 }
00087
else
00088 {
00089
setNoRootAffix( _ksc->
noRootAffix() );
00090
setRunTogether( _ksc->
runTogether() );
00091
setDictionary( _ksc->
dictionary() );
00092 setDictFromList( _ksc->
dictFromList() );
00093
00094
setIgnoreList( _ksc->
ignoreList() );
00095 setEncoding( _ksc->
encoding() );
00096 setClient( _ksc->
client() );
00097 }
00098
00099
QGridLayout *glay =
new QGridLayout(
this, 6, 3, 0, KDialog::spacingHint() );
00100 cb1 =
new QCheckBox( i18n(
"Create &root/affix combinations"
00101
" not in dictionary"),
this,
"NoRootAffix" );
00102 connect( cb1, SIGNAL(toggled(
bool)), SLOT(sNoAff(
bool)) );
00103 glay->addMultiCellWidget( cb1, 0, 0, 0, 2 );
00104
00105 cb2 =
new QCheckBox( i18n(
"Consider run-together &words"
00106
" as spelling errors"),
this,
"RunTogether" );
00107 connect( cb2, SIGNAL(toggled(
bool)), SLOT(sRunTogether(
bool)) );
00108 glay->addMultiCellWidget( cb2, 1, 1, 0, 2 );
00109
00110 dictcombo =
new QComboBox(
this,
"DictFromList" );
00111 dictcombo->setInsertionPolicy( QComboBox::NoInsertion );
00112 connect( dictcombo, SIGNAL (activated(
int)),
00113
this, SLOT (sSetDictionary(
int)) );
00114 glay->addMultiCellWidget( dictcombo, 2, 2, 1, 2 );
00115
00116 dictlist =
new QLabel( dictcombo, i18n(
"&Dictionary:"),
this );
00117 glay->addWidget( dictlist, 2 ,0 );
00118
00119 encodingcombo =
new QComboBox(
this,
"Encoding" );
00120 encodingcombo->insertItem(
"US-ASCII" );
00121 encodingcombo->insertItem(
"ISO 8859-1" );
00122 encodingcombo->insertItem(
"ISO 8859-2" );
00123 encodingcombo->insertItem(
"ISO 8859-3" );
00124 encodingcombo->insertItem(
"ISO 8859-4" );
00125 encodingcombo->insertItem(
"ISO 8859-5" );
00126 encodingcombo->insertItem(
"ISO 8859-7" );
00127 encodingcombo->insertItem(
"ISO 8859-8" );
00128 encodingcombo->insertItem(
"ISO 8859-9" );
00129 encodingcombo->insertItem(
"ISO 8859-13" );
00130 encodingcombo->insertItem(
"ISO 8859-15" );
00131 encodingcombo->insertItem(
"UTF-8" );
00132 encodingcombo->insertItem(
"KOI8-R" );
00133 encodingcombo->insertItem(
"KOI8-U" );
00134 encodingcombo->insertItem(
"CP1251" );
00135 encodingcombo->insertItem(
"CP1255" );
00136
00137 connect( encodingcombo, SIGNAL(activated(
int)),
this,
00138 SLOT(sChangeEncoding(
int)) );
00139 glay->addMultiCellWidget( encodingcombo, 3, 3, 1, 2 );
00140
00141 QLabel *tmpQLabel =
new QLabel( encodingcombo, i18n(
"&Encoding:"),
this);
00142 glay->addWidget( tmpQLabel, 3, 0 );
00143
00144
00145 clientcombo =
new QComboBox(
this,
"Client" );
00146 clientcombo->insertItem( i18n(
"International Ispell") );
00147 clientcombo->insertItem( i18n(
"Aspell") );
00148 clientcombo->insertItem( i18n(
"Hspell") );
00149 connect( clientcombo, SIGNAL (activated(
int)),
this,
00150 SLOT (sChangeClient(
int)) );
00151 glay->addMultiCellWidget( clientcombo, 4, 4, 1, 2 );
00152
00153 tmpQLabel =
new QLabel( clientcombo, i18n(
"&Client:"),
this );
00154 glay->addWidget( tmpQLabel, 4, 0 );
00155
00156
if( addHelpButton )
00157 {
00158
QPushButton *pushButton =
new KPushButton( KStdGuiItem::help(),
this );
00159 connect( pushButton, SIGNAL(clicked()),
this, SLOT(
sHelp()) );
00160 glay->addWidget(pushButton, 5, 2);
00161 }
00162
00163 fillInDialog();
00164 }
00165
00166 KSpellConfig::~KSpellConfig()
00167 {
00168
delete d;
00169 }
00170
00171
00172
bool
00173 KSpellConfig::dictFromList()
const
00174
{
00175
return dictfromlist;
00176 }
00177
00178
bool
00179 KSpellConfig::readGlobalSettings()
00180 {
00181
KConfigGroupSaver cs( kc,
"KSpell" );
00182
00183
setNoRootAffix ( kc->
readNumEntry(
"KSpell_NoRootAffix", 0) );
00184
setRunTogether ( kc->
readNumEntry(
"KSpell_RunTogether", 0) );
00185
setDictionary ( kc->
readEntry(
"KSpell_Dictionary") );
00186 setDictFromList ( kc->
readNumEntry(
"KSpell_DictFromList",
false) );
00187 setEncoding ( kc->
readNumEntry (
"KSpell_Encoding", KS_E_ASCII) );
00188 setClient ( kc->
readNumEntry (
"KSpell_Client", KS_CLIENT_ASPELL) );
00189
00190
return true;
00191 }
00192
00193
bool
00194 KSpellConfig::writeGlobalSettings ()
00195 {
00196
KConfigGroupSaver cs( kc,
"KSpell" );
00197
00198 kc->
writeEntry (
"KSpell_NoRootAffix",(
int)
noRootAffix(),
true,
true);
00199 kc->
writeEntry (
"KSpell_RunTogether", (
int) runTogether(),
true,
true);
00200 kc->
writeEntry (
"KSpell_Dictionary", dictionary(),
true,
true);
00201 kc->
writeEntry (
"KSpell_DictFromList",(
int) dictFromList(),
true,
true);
00202 kc->
writeEntry (
"KSpell_Encoding", (
int) encoding(),
00203
true,
true);
00204 kc->
writeEntry (
"KSpell_Client", client(),
00205
true,
true);
00206 kc->
sync();
00207
00208
return true;
00209 }
00210
00211
void
00212 KSpellConfig::sChangeEncoding(
int i )
00213 {
00214
kdDebug(750) <<
"KSpellConfig::sChangeEncoding(" << i <<
")" <<
endl;
00215 setEncoding( i );
00216 emit configChanged();
00217 }
00218
00219
void
00220 KSpellConfig::sChangeClient(
int i )
00221 {
00222 setClient( i );
00223
00224
00225
if ( dictcombo ) {
00226
if ( iclient == KS_CLIENT_ISPELL )
00227 getAvailDictsIspell();
00228
else if ( iclient == KS_CLIENT_HSPELL )
00229 {
00230 langfnames.clear();
00231 dictcombo->clear();
00232 dictcombo->insertItem( i18n(
"Hebrew") );
00233 sChangeEncoding( KS_E_CP1255 );
00234 }
00235
else
00236 getAvailDictsAspell();
00237 }
00238 emit configChanged();
00239 }
00240
00241
00242
bool
00243 KSpellConfig::interpret(
QString &fname,
QString &lname,
00244
QString &hname )
00245
00246 {
00247
00248
kdDebug(750) <<
"KSpellConfig::interpret [" << fname <<
"]" <<
endl;
00249
00250
QString dname( fname );
00251
00252
if( dname.endsWith(
"+" ) )
00253 dname.remove( dname.length()-1, 1 );
00254
00255
if( dname.endsWith(
"sml") || dname.endsWith(
"med") || dname.endsWith(
"lrg") ||
00256 dname.endsWith(
"xlg"))
00257 dname.remove(dname.length()-3,3);
00258
00259
QString extension;
00260
00261
int i = dname.find(
'-');
00262
if ( i != -1 )
00263 {
00264 extension = dname.mid(i+1);
00265 dname.truncate(i);
00266 }
00267
00268
00269
00270
if ( (dname.length() == 2) || (dname.length() == 3) ) {
00271 lname = dname;
00272 hname =
KGlobal::locale()->
twoAlphaToLanguageName( lname );
00273 }
00274
else if ( (dname.length() == 5) && (dname[2] ==
'_') ) {
00275 lname = dname.left(2);
00276 hname =
KGlobal::locale()->
twoAlphaToLanguageName(lname);
00277
QString country =
KGlobal::locale()->
twoAlphaToCountryName( dname.right(2) );
00278
if ( extension.isEmpty() )
00279 extension = country;
00280
else
00281 extension = country +
" - " + extension;
00282 }
00283
00284
else if ( dname==
"english" || dname==
"american" ||
00285 dname==
"british" || dname==
"canadian" ) {
00286 lname=
"en"; hname=i18n(
"English");
00287 }
00288
else if ( dname ==
"espa~nol" || dname ==
"espanol" ) {
00289 lname=
"es"; hname=i18n(
"Spanish");
00290 }
00291
else if (dname==
"dansk") {
00292 lname=
"da"; hname=i18n(
"Danish");
00293 }
00294
else if (dname==
"deutsch") {
00295 lname=
"de"; hname=i18n(
"German");
00296 }
00297
else if (dname==
"german") {
00298 lname=
"de"; hname=i18n(
"German (new spelling)");
00299 }
00300
else if (dname==
"portuguesb" || dname==
"br") {
00301 lname=
"br"; hname=i18n(
"Brazilian Portuguese");
00302 }
00303
else if (dname==
"portugues") {
00304 lname=
"pt"; hname=i18n(
"Portuguese");
00305 }
00306
else if (dname==
"esperanto") {
00307 lname=
"eo"; hname=i18n(
"Esperanto");
00308 }
00309
else if (dname==
"norsk") {
00310 lname=
"no"; hname=i18n(
"Norwegian");
00311 }
00312
else if (dname==
"polish") {
00313 lname=
"pl"; hname=i18n(
"Polish"); sChangeEncoding(KS_E_LATIN2);
00314 }
00315
else if (dname==
"russian") {
00316 lname=
"ru"; hname=i18n(
"Russian");
00317 }
00318
else if (dname==
"slovensko") {
00319 lname=
"si"; hname=i18n(
"Slovenian"); sChangeEncoding(KS_E_LATIN2);
00320 }
00321
else if (dname==
"slovak"){
00322 lname=
"sk"; hname=i18n(
"Slovak"); sChangeEncoding(KS_E_LATIN2);
00323 }
00324
else if (dname==
"czech") {
00325 lname=
"cs"; hname=i18n(
"Czech"); sChangeEncoding(KS_E_LATIN2);
00326 }
00327
else if (dname==
"svenska") {
00328 lname=
"sv"; hname=i18n(
"Swedish");
00329 }
00330
else if (dname==
"swiss") {
00331 lname=
"de"; hname=i18n(
"Swiss German");
00332 }
00333
else if (dname==
"ukrainian") {
00334 lname=
"uk"; hname=i18n(
"Ukrainian");
00335 }
00336
else if (dname==
"lietuviu" || dname==
"lithuanian") {
00337 lname=
"lt"; hname=i18n(
"Lithuanian");
00338 }
00339
else if (dname==
"francais" || dname==
"french") {
00340 lname=
"fr"; hname=i18n(
"French");
00341 }
00342
else if (dname==
"belarusian") {
00343 lname=
"be"; hname=i18n(
"Belarusian");
00344 }
00345
else if( dname ==
"magyar" ) {
00346 lname=
"hu"; hname=i18n(
"Hungarian");
00347 sChangeEncoding(KS_E_LATIN2);
00348 }
00349
else {
00350 lname=
""; hname=i18n(
"Unknown ispell dictionary",
"Unknown");
00351 }
00352
if (!extension.isEmpty())
00353 {
00354 hname = hname +
" (" + extension +
")";
00355 }
00356
00357
00358
if ( (
KGlobal::locale()->
language() == QString::fromLatin1(
"C") &&
00359 lname==QString::fromLatin1(
"en") ) ||
00360
KGlobal::locale()->
language() == lname )
00361
return true;
00362
00363
return false;
00364 }
00365
00366
void
00367 KSpellConfig::fillInDialog ()
00368 {
00369
if ( nodialog )
00370
return;
00371
00372
kdDebug(750) <<
"KSpellConfig::fillinDialog" <<
endl;
00373
00374 cb1->setChecked(
noRootAffix() );
00375 cb2->setChecked( runTogether() );
00376 encodingcombo->setCurrentItem( encoding() );
00377 clientcombo->setCurrentItem( client() );
00378
00379
00380
if ( iclient == KS_CLIENT_ISPELL )
00381 getAvailDictsIspell();
00382
else if ( iclient == KS_CLIENT_HSPELL )
00383 {
00384 langfnames.clear();
00385 dictcombo->clear();
00386 langfnames.append(
"");
00387 dictcombo->insertItem( i18n(
"Hebrew") );
00388 }
00389
else
00390 getAvailDictsAspell();
00391
00392
00393
int whichelement=-1;
00394
00395
if ( dictFromList() )
00396 whichelement = langfnames.findIndex(dictionary());
00397
00398 dictcombo->setMinimumWidth (dictcombo->sizeHint().width());
00399
00400
if (dictionary().isEmpty() || whichelement!=-1)
00401 {
00402 setDictFromList (
true);
00403
if (whichelement!=-1)
00404 dictcombo->setCurrentItem(whichelement);
00405 }
00406
else
00407
00408
if ( !langfnames.empty() )
00409 {
00410 setDictFromList(
true );
00411 dictcombo->setCurrentItem(0);
00412 }
00413
else
00414 setDictFromList(
false );
00415
00416 sDictionary( dictFromList() );
00417 sPathDictionary( !dictFromList() );
00418
00419 }
00420
00421
00422
void KSpellConfig::getAvailDictsIspell () {
00423
00424 langfnames.clear();
00425 dictcombo->clear();
00426 langfnames.append(
"");
00427 dictcombo->insertItem( i18n(
"ISpell Default") );
00428
00429
00430
QFileInfo dir (
"/usr/lib/ispell");
00431
if (!dir.exists() || !dir.isDir())
00432 dir.setFile (
"/usr/local/lib/ispell");
00433
if (!dir.exists() || !dir.isDir())
00434 dir.setFile (
"/usr/local/share/ispell");
00435
if (!dir.exists() || !dir.isDir())
00436 dir.setFile (
"/usr/share/ispell");
00437
00438
00439
00440
00441
00442
if (!dir.exists() || !dir.isDir())
return;
00443
00444
kdDebug(750) <<
"KSpellConfig::getAvailDictsIspell "
00445 << dir.filePath() <<
" " << dir.dirPath() <<
endl;
00446
00447
const QDir thedir (dir.filePath(),
"*.hash");
00448
const QStringList entryList = thedir.entryList();
00449
00450
kdDebug(750) <<
"KSpellConfig" << thedir.path() <<
"\n" <<
endl;
00451
kdDebug(750) <<
"entryList().count()="
00452 << entryList.count() <<
endl;
00453
00454 QStringList::const_iterator entryListItr = entryList.constBegin();
00455
const QStringList::const_iterator entryListEnd = entryList.constEnd();
00456
00457
for ( ; entryListItr != entryListEnd; ++entryListItr)
00458 {
00459
QString fname, lname, hname;
00460 fname = *entryListItr;
00461
00462
00463
if (fname.endsWith(
".hash")) fname.remove (fname.length()-5,5);
00464
00465
if (
interpret (fname, lname, hname) && langfnames.first().isEmpty())
00466 {
00467
00468
00469 langfnames.remove ( langfnames.begin() );
00470 langfnames.prepend ( fname );
00471
00472 hname=i18n(
"default spelling dictionary"
00473 ,
"Default - %1 [%2]").arg(hname).arg(fname);
00474
00475 dictcombo->changeItem (hname,0);
00476 }
00477
else
00478 {
00479 langfnames.append (fname);
00480 hname=hname+
" ["+fname+
"]";
00481
00482 dictcombo->insertItem (hname);
00483 }
00484 }
00485 }
00486
00487
void KSpellConfig::getAvailDictsAspell () {
00488
00489 langfnames.clear();
00490 dictcombo->clear();
00491
00492 langfnames.append(
"");
00493 dictcombo->insertItem (i18n(
"ASpell Default"));
00494
00495
00496
00497
QFileInfo dir (
"/usr/lib/aspell");
00498
if (!dir.exists() || !dir.isDir())
00499 dir.setFile (
"/usr/lib/aspell-0.60");
00500
if (!dir.exists() || !dir.isDir())
00501 dir.setFile (
"/usr/lib/aspell-0.60");
00502
if (!dir.exists() || !dir.isDir())
00503 dir.setFile (
"/usr/local/lib/aspell");
00504
if (!dir.exists() || !dir.isDir())
00505 dir.setFile (
"/usr/share/aspell");
00506
if (!dir.exists() || !dir.isDir())
00507 dir.setFile (
"/usr/local/share/aspell");
00508
if (!dir.exists() || !dir.isDir())
return;
00509
00510
kdDebug(750) <<
"KSpellConfig::getAvailDictsAspell "
00511 << dir.filePath() <<
" " << dir.dirPath() <<
endl;
00512
00513
const QDir thedir (dir.filePath(),
"*");
00514
const QStringList entryList = thedir.entryList();
00515
00516
kdDebug(750) <<
"KSpellConfig" << thedir.path() <<
"\n" <<
endl;
00517
kdDebug(750) <<
"entryList().count()="
00518 << entryList.count() <<
endl;
00519
00520 QStringList::const_iterator entryListItr = entryList.constBegin();
00521
const QStringList::const_iterator entryListEnd = entryList.constEnd();
00522
00523
for ( ; entryListItr != entryListEnd; ++entryListItr)
00524 {
00525
QString fname, lname, hname;
00526 fname = *entryListItr;
00527
00528
00529
00530
00531
00532
00533
00534
00535
00536
00537
00538
if ( !( fname.endsWith(
".rws") || fname.endsWith(
".multi") ) ) {
00539
00540
continue;
00541 }
00542
if (fname[0] !=
'.')
00543 {
00544
00545
00546
if (fname.endsWith(
".multi")) fname.remove (fname.length()-6,6);
00547
00548
if (fname.endsWith(
".rws")) fname.remove (fname.length()-4,4);
00549
00550
if (
interpret (fname, lname, hname) && langfnames.first().isEmpty())
00551 {
00552
00553
00554 langfnames.remove ( langfnames.begin() );
00555 langfnames.prepend ( fname );
00556
00557 hname=i18n(
"default spelling dictionary"
00558 ,
"Default - %1").arg(hname);
00559
00560 dictcombo->changeItem (hname,0);
00561 }
00562
else
00563 {
00564 langfnames.append (fname);
00565 dictcombo->insertItem (hname);
00566 }
00567 }
00568 }
00569 }
00570
00571
void
00572 KSpellConfig::fillDicts(
QComboBox* box,
QStringList* dictionaries )
00573 {
00574 langfnames.clear();
00575
if ( box ) {
00576
if ( iclient == KS_CLIENT_ISPELL ) {
00577 box->clear();
00578 langfnames.append(
"");
00579 box->insertItem( i18n(
"ISpell Default") );
00580
00581
00582
QFileInfo dir (
"/usr/lib/ispell");
00583
if (!dir.exists() || !dir.isDir())
00584 dir.setFile (
"/usr/local/lib/ispell");
00585
if (!dir.exists() || !dir.isDir())
00586 dir.setFile (
"/usr/local/share/ispell");
00587
if (!dir.exists() || !dir.isDir())
00588 dir.setFile (
"/usr/share/ispell");
00589
00590
00591
00592
00593
00594
if (!dir.exists() || !dir.isDir())
return;
00595
00596
kdDebug(750) <<
"KSpellConfig::getAvailDictsIspell "
00597 << dir.filePath() <<
" " << dir.dirPath() <<
endl;
00598
00599
const QDir thedir (dir.filePath(),
"*.hash");
00600
const QStringList entryList = thedir.entryList();
00601
00602
kdDebug(750) <<
"KSpellConfig" << thedir.path() <<
"\n" <<
endl;
00603
kdDebug(750) <<
"entryList().count()="
00604 << entryList.count() <<
endl;
00605
00606 QStringList::const_iterator entryListItr = entryList.constBegin();
00607
const QStringList::const_iterator entryListEnd = entryList.constEnd();
00608
00609
for ( ; entryListItr != entryListEnd; ++entryListItr)
00610 {
00611
QString fname, lname, hname;
00612 fname = *entryListItr;
00613
00614
00615
if (fname.endsWith(
".hash")) fname.remove (fname.length()-5,5);
00616
00617
if (
interpret (fname, lname, hname) && langfnames.first().isEmpty())
00618 {
00619
00620
00621 langfnames.remove ( langfnames.begin() );
00622 langfnames.prepend ( fname );
00623
00624 hname=i18n(
"default spelling dictionary"
00625 ,
"Default - %1 [%2]").arg(hname).arg(fname);
00626
00627 box->changeItem (hname,0);
00628 }
00629
else
00630 {
00631 langfnames.append (fname);
00632 hname=hname+
" ["+fname+
"]";
00633
00634 box->insertItem (hname);
00635 }
00636 }
00637 }
else if ( iclient == KS_CLIENT_HSPELL ) {
00638 box->clear();
00639 box->insertItem( i18n(
"Hebrew") );
00640 langfnames.append(
"");
00641 sChangeEncoding( KS_E_CP1255 );
00642 }
00643
else {
00644 box->clear();
00645 langfnames.append(
"");
00646 box->insertItem (i18n(
"ASpell Default"));
00647
00648
00649
00650
QFileInfo dir (
"/usr/lib/aspell");
00651
if (!dir.exists() || !dir.isDir())
00652 dir.setFile (
"/usr/lib/aspell-0.60");
00653
if (!dir.exists() || !dir.isDir())
00654 dir.setFile (
"/usr/local/lib/aspell");
00655
if (!dir.exists() || !dir.isDir())
00656 dir.setFile (
"/usr/share/aspell");
00657
if (!dir.exists() || !dir.isDir())
00658 dir.setFile (
"/usr/local/share/aspell");
00659
if (!dir.exists() || !dir.isDir())
return;
00660
00661
kdDebug(750) <<
"KSpellConfig::getAvailDictsAspell "
00662 << dir.filePath() <<
" " << dir.dirPath() <<
endl;
00663
00664
const QDir thedir (dir.filePath(),
"*");
00665
const QStringList entryList = thedir.entryList();
00666
00667
kdDebug(750) <<
"KSpellConfig" << thedir.path() <<
"\n" <<
endl;
00668
kdDebug(750) <<
"entryList().count()="
00669 << entryList.count() <<
endl;
00670
00671 QStringList::const_iterator entryListItr = entryList.constBegin();
00672
const QStringList::const_iterator entryListEnd = entryList.constEnd();
00673
00674
for ( ; entryListItr != entryListEnd; ++entryListItr)
00675 {
00676
QString fname, lname, hname;
00677 fname = *entryListItr;
00678
00679
00680
00681
00682
if (fname[0] !=
'.')
00683 {
00684
00685
00686
if (fname.endsWith(
".multi")) fname.remove (fname.length()-6,6);
00687
00688
if (
interpret (fname, lname, hname) && langfnames.first().isEmpty())
00689 {
00690
00691
00692 langfnames.remove ( langfnames.begin() );
00693 langfnames.prepend ( fname );
00694
00695 hname=i18n(
"default spelling dictionary"
00696 ,
"Default - %1").arg(hname);
00697
00698 box->changeItem (hname,0);
00699 }
00700
else
00701 {
00702 langfnames.append (fname);
00703 box->insertItem (hname);
00704 }
00705 }
00706 }
00707 }
00708
int whichelement = langfnames.findIndex(qsdict);
00709
if ( whichelement >= 0 ) {
00710 box->setCurrentItem( whichelement );
00711 }
00712
if ( dictionaries )
00713 *dictionaries = langfnames;
00714 }
00715 }
00716
00717
00718
00719
00720
00721
void
00722 KSpellConfig::setClient (
int c)
00723 {
00724 iclient = c;
00725
00726
if (clientcombo)
00727 clientcombo->setCurrentItem(c);
00728 }
00729
00730
void
00731 KSpellConfig::setNoRootAffix (
bool b)
00732 {
00733 bnorootaffix=b;
00734
00735
if(cb1)
00736 cb1->setChecked(b);
00737 }
00738
00739
void
00740 KSpellConfig::setRunTogether(
bool b)
00741 {
00742 bruntogether=b;
00743
00744
if(cb2)
00745 cb2->setChecked(b);
00746 }
00747
00748
void
00749 KSpellConfig::setDictionary (
const QString s)
00750 {
00751 qsdict=s;
00752
00753
if (qsdict.length()>5)
00754
if ((
signed)qsdict.find(
".hash")==(
signed)qsdict.length()-5)
00755 qsdict.remove (qsdict.length()-5,5);
00756
00757
00758
if(dictcombo)
00759 {
00760
int whichelement=-1;
00761
if (dictFromList())
00762 {
00763 whichelement = langfnames.findIndex(s);
00764
00765
if(whichelement >= 0)
00766 {
00767 dictcombo->setCurrentItem(whichelement);
00768 }
00769 }
00770 }
00771
00772
00773 }
00774
00775
void
00776 KSpellConfig::setDictFromList (
bool dfl)
00777 {
00778
00779 dictfromlist=dfl;
00780 }
00781
00782
00783
00784
00785
00786
00787
00788
00789
void
00790 KSpellConfig::setEncoding (
int enctype)
00791 {
00792 enc=enctype;
00793
00794
if(encodingcombo)
00795 encodingcombo->setCurrentItem(enctype);
00796 }
00797
00798
00799
00800
00801
int
00802 KSpellConfig::client ()
const
00803
{
00804
return iclient;
00805 }
00806
00807
00808
bool
00809 KSpellConfig::noRootAffix ()
const
00810
{
00811
return bnorootaffix;
00812 }
00813
00814
bool
00815 KSpellConfig::runTogether()
const
00816
{
00817
return bruntogether;
00818 }
00819
00820
const
00821
QString KSpellConfig::dictionary ()
const
00822
{
00823
return qsdict;
00824 }
00825
00826
00827
00828
00829
00830
00831
00832
00833
int
00834 KSpellConfig::encoding ()
const
00835
{
00836
return enc;
00837 }
00838
00839
void
00840 KSpellConfig::sRunTogether(
bool)
00841 {
00842
setRunTogether (cb2->isChecked());
00843 emit configChanged();
00844 }
00845
00846
void
00847 KSpellConfig::sNoAff(
bool)
00848 {
00849
setNoRootAffix (cb1->isChecked());
00850 emit configChanged();
00851 }
00852
00853
00854
00855
00856
00857
00858
00859
00860
00861
00862
00863
00864
00865
00866
00867
00868
00869
00870
00871
00872
00873
00874
00875
00876
00877
00878
void
00879 KSpellConfig::sSetDictionary (
int i)
00880 {
00881
setDictionary (langfnames[i]);
00882 setDictFromList (
true);
00883 emit configChanged();
00884 }
00885
00886
void
00887 KSpellConfig::sDictionary(
bool on)
00888 {
00889
if (on)
00890 {
00891 dictcombo->setEnabled (
true);
00892
setDictionary (langfnames[dictcombo->currentItem()] );
00893 setDictFromList (
true);
00894 }
00895
else
00896 {
00897 dictcombo->setEnabled (
false);
00898 }
00899 emit configChanged();
00900 }
00901
00902
void
00903 KSpellConfig::sPathDictionary(
bool on)
00904 {
00905
return;
00906
00907
00908
if (on)
00909 {
00910
00911
00912
00913 setDictFromList (
false);
00914 }
00915
else
00916 {
00917
00918
00919 }
00920 emit configChanged();
00921 }
00922
00923
00924 void KSpellConfig::activateHelp(
void )
00925 {
00926
sHelp();
00927 }
00928
00929 void KSpellConfig::sHelp(
void )
00930 {
00931 kapp->invokeHelp(
"configuration",
"kspell");
00932 }
00933
00934
00935
00936
00937
00938
00939
00940
00941
00942
00943
00944
00945
00946
void
00947 KSpellConfig::operator= (
const KSpellConfig &ksc)
00948 {
00949
00950
00951 setNoRootAffix (ksc.
noRootAffix());
00952 setRunTogether (ksc.
runTogether());
00953 setDictionary (ksc.
dictionary());
00954 setDictFromList (ksc.
dictFromList());
00955
00956 setEncoding (ksc.
encoding());
00957 setClient (ksc.
client());
00958
00959 fillInDialog();
00960 }
00961
00962
00963
void
00964 KSpellConfig::setIgnoreList (
QStringList _ignorelist)
00965 {
00966 ignorelist=_ignorelist;
00967 }
00968
00969
QStringList
00970 KSpellConfig::ignoreList ()
const
00971
{
00972
return ignorelist;
00973 }
00974
00975
00976
void
00977 KSpellConfig::setReplaceAllList (
QStringList _replacelist)
00978 {
00979 d->replacelist=_replacelist;
00980 }
00981
00982
QStringList
00983 KSpellConfig::replaceAllList()
const
00984
{
00985
return d->replacelist;
00986 }
00987
00988
#include "ksconfig.moc"
00989
00990
00991