Sonnet
kspell_aspellclient.cpp
Go to the documentation of this file.00001 00021 #include "kspell_aspellclient.h" 00022 00023 #include "kspell_aspelldict.h" 00024 00025 #include <kpluginfactory.h> 00026 #include <kpluginloader.h> 00027 #include <kdebug.h> 00028 00029 K_PLUGIN_FACTORY( ASpellClientFactory, registerPlugin<ASpellClient>(); ) 00030 K_EXPORT_PLUGIN( ASpellClientFactory( "kspell_aspell" ) ) 00031 00032 using namespace Sonnet; 00033 00034 #ifdef Q_WS_WIN 00035 #include <kstandarddirs.h> 00036 #define ASPELL_DATA_ROOT "lib/aspell-0.60/" 00037 00038 QString aspell_data_dir() { 00039 return KStandardDirs::installPath("kdedir") + ASPELL_DATA_ROOT; 00040 } 00041 #endif 00042 00043 ASpellClient::ASpellClient( QObject *parent, const QVariantList& /* args */ ) 00044 : Client( parent ) 00045 { 00046 m_config = new_aspell_config(); 00047 #ifdef Q_WS_WIN 00048 aspell_config_replace( m_config, "data-dir", aspell_data_dir().toLocal8Bit().data()); 00049 aspell_config_replace( m_config, "dict-dir", aspell_data_dir().toLocal8Bit().data()); 00050 #endif 00051 } 00052 00053 ASpellClient::~ASpellClient() 00054 { 00055 delete_aspell_config( m_config ); 00056 } 00057 00058 SpellerPlugin *ASpellClient::createSpeller(const QString &language) 00059 { 00060 ASpellDict *ad = new ASpellDict( language ); 00061 return ad; 00062 } 00063 00064 QStringList ASpellClient::languages() const 00065 { 00066 AspellDictInfoList *l = get_aspell_dict_info_list( m_config ); 00067 AspellDictInfoEnumeration *el = aspell_dict_info_list_elements( l ); 00068 00069 QStringList langs; 00070 const AspellDictInfo *di = 0; 00071 while ( ( di = aspell_dict_info_enumeration_next( el ) ) ) { 00072 langs.append( di->name ); 00073 } 00074 00075 delete_aspell_dict_info_enumeration( el ); 00076 00077 return langs; 00078 } 00079 00080 #include "kspell_aspellclient.moc"