lib Library API Documentation

koSpellConfig.cc

00001 /* This file is part of the KDE project 00002 Copyright (C) 2002-2003 Montel Laurent <lmontel@mandrakesoft.com> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #include <koSpellConfig.h> 00021 #include <kdebug.h> 00022 #include "koSpellConfig.moc" 00023 #include "klocale.h" 00024 #include <kdialog.h> 00025 #include <klineedit.h> 00026 #include <keditlistbox.h> 00027 #include <kio/netaccess.h> 00028 #include "koSconfig.h" 00029 00030 #include <qcheckbox.h> 00031 #include <qlabel.h> 00032 #include <qvbox.h> 00033 #include <qcombobox.h> 00034 #include <qwhatsthis.h> 00035 #include <qvgroupbox.h> 00036 #include <qlistbox.h> 00037 #include <qpushbutton.h> 00038 #include <qtabwidget.h> 00039 #include <qgrid.h> 00040 #include <qgroupbox.h> 00041 #include <qlayout.h> 00042 #include <qfile.h> 00043 #include <qtextstream.h> 00044 #include <qdir.h> 00045 00046 KoSpellConfigWidget::KoSpellConfigWidget( QWidget *_parent, KOSpellConfig *_config, bool backgroundSpellCheck ) 00047 : QWidget( _parent) 00048 { 00049 QTabWidget *tab = new QTabWidget(_parent); 00050 QGroupBox* tmpQGroupBox = new QGroupBox( tab, "GroupBox" ); 00051 tmpQGroupBox->setTitle(i18n("Spelling")); 00052 QGridLayout *grid1 = new QGridLayout(tmpQGroupBox, 6, 1, KDialog::marginHint(), KDialog::spacingHint()); 00053 grid1->addRowSpacing( 0, KDialog::marginHint() + 5 ); 00054 grid1->setRowStretch( 5, 10 ); 00055 m_spellConfig = new KOSpellConfig(tmpQGroupBox, 0L, _config, false ); 00056 grid1->addWidget(m_spellConfig,1,0); 00057 00058 m_cbBackgroundSpellCheck=new QCheckBox(i18n("Show misspelled words in document"),tmpQGroupBox); 00059 grid1->addWidget(m_cbBackgroundSpellCheck,4,0); 00060 00061 if ( !backgroundSpellCheck ) 00062 m_cbBackgroundSpellCheck->hide(); 00063 00064 tab->addTab(tmpQGroupBox, i18n("General")); 00065 00066 QVBox* tmpQGroupBox2 = new QVBox( tab, "GroupBox2" ); 00067 m_listignoreall = new KEditListBox( i18n("Word"), 00068 tmpQGroupBox2, "list_ignoreall" , false, 00069 KEditListBox::Add|KEditListBox::Remove ); 00070 00071 m_clearIgnoreAllHistory= new QPushButton( i18n("Clear Ignore All Word History"),tmpQGroupBox2); 00072 connect( m_clearIgnoreAllHistory, SIGNAL(clicked()),this, SLOT(slotClearIgnoreAllHistory())); 00073 00074 tab->addTab(tmpQGroupBox2, i18n( "Ignore All List" ) ); 00075 00076 00077 QVBox* tmpQGroupBox3 = new QVBox( tab, "GroupBox3" ); 00078 m_dictionary = new KEditListBox( i18n("Word"), 00079 tmpQGroupBox3, "dictionary" , false, 00080 KEditListBox::Add|KEditListBox::Remove ); 00081 00082 m_clearDictionary = new QPushButton( i18n("Clear Dictionary"),tmpQGroupBox3); 00083 connect( m_clearDictionary, SIGNAL(clicked()),this, SLOT(slotClearDictionary())); 00084 00085 tab->addTab(tmpQGroupBox3, i18n("Dictionary")); 00086 initDictionaryListWord(); 00087 } 00088 00089 00090 void KoSpellConfigWidget::initDictionaryListWord() 00091 { 00092 if ( m_spellConfig->client() == KOS_CLIENT_ISPELL ) 00093 { 00094 00095 QString directoryName = QDir::homeDirPath() + "/.ispell_"+m_spellConfig->dictionary(); 00096 kdDebug()<<" directoryName :"<<directoryName<<endl; 00097 QFile f( directoryName ); 00098 if ( f.exists() && f.open(IO_ReadOnly)) 00099 { 00100 QTextStream t( &f ); 00101 QString result = t.read(); 00102 f.close(); 00103 QStringList lst = QStringList::split("\n", result); 00104 m_dictionary->insertStringList( lst ); 00105 } 00106 } 00107 else 00108 { 00109 m_dictionary->setEnabled( false ); 00110 m_clearDictionary->setEnabled( false ); 00111 } 00112 } 00113 00114 bool KoSpellConfigWidget::backgroundSpellCheck() 00115 { 00116 return m_cbBackgroundSpellCheck->isChecked(); 00117 } 00118 00119 void KoSpellConfigWidget::setBackgroundSpellCheck( bool _b ) 00120 { 00121 m_cbBackgroundSpellCheck->setChecked(_b); 00122 } 00123 00124 void KoSpellConfigWidget::slotClearIgnoreAllHistory() 00125 { 00126 m_listignoreall->listBox()->clear(); 00127 m_listignoreall->lineEdit()->clear(); 00128 00129 } 00130 00131 void KoSpellConfigWidget::addIgnoreList( const QStringList & lst) 00132 { 00133 m_listignoreall->listBox()->insertStringList( lst ); 00134 00135 } 00136 00137 QStringList KoSpellConfigWidget::ignoreList() 00138 { 00139 QStringList lst; 00140 for (int i = 0; i< (int)m_listignoreall->listBox()->count() ; i++) 00141 lst << m_listignoreall->listBox()->text( i ); 00142 return lst; 00143 } 00144 00145 void KoSpellConfigWidget::setDefault() 00146 { 00147 m_spellConfig->setNoRootAffix( 0); 00148 m_spellConfig->setRunTogether(0); 00149 m_spellConfig->setDictionary( ""); 00150 m_spellConfig->setDictFromList( FALSE); 00151 m_spellConfig->setEncoding (KOS_E_ASCII); 00152 m_spellConfig->setClient (KOS_CLIENT_ISPELL); 00153 00154 00155 m_spellConfig->setIgnoreCase(false); 00156 m_spellConfig->setIgnoreAccent(false); 00157 m_spellConfig->setSpellWordWithNumber(false); 00158 m_spellConfig->setDontCheckUpperWord(false); 00159 m_spellConfig->setDontCheckTitleCase(false); 00160 m_cbBackgroundSpellCheck->setChecked(false); 00161 m_listignoreall->listBox()->clear(); 00162 } 00163 00164 void KoSpellConfigWidget::slotClearDictionary() 00165 { 00166 m_dictionary->listBox()->clear(); 00167 m_dictionary->lineEdit()->clear(); 00168 } 00169 00170 void KoSpellConfigWidget::saveDictionary() 00171 { 00172 QString lst; 00173 for (int i = 0; i< (int)m_dictionary->listBox()->count() ; i++) 00174 lst+= m_dictionary->listBox()->text( i ) +"\n"; 00175 00176 if ( m_spellConfig->client() == KOS_CLIENT_ISPELL ) 00177 { 00178 QString directoryName = QDir::homeDirPath() + "/.ispell_"+m_spellConfig->dictionary(); 00179 QFile f( directoryName ); 00180 (void )KIO::NetAccess::del( KURL( f.name() ) ); 00181 if ( f.open(IO_ReadWrite)) 00182 { 00183 QTextStream t( &f ); 00184 t <<lst; 00185 f.close(); 00186 } 00187 } 00188 00189 }
KDE Logo
This file is part of the documentation for lib Library Version 1.3.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Sep 24 18:22:26 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003