]> git.lyx.org Git - lyx.git/blobdiff - src/EnchantChecker.cpp
Prevent accidental usage of wrong copy constructor
[lyx.git] / src / EnchantChecker.cpp
index 77c9e309ed1c79fbb60ec94f5e266e5741ddf971..b98cfdb9294d3c443bc24fec083608a3487a0639 100644 (file)
@@ -69,21 +69,17 @@ EnchantChecker::Private::~Private()
 enchant::Dict * EnchantChecker::Private::addSpeller(string const & lang)
 {
        enchant::Broker * instance = enchant::Broker::instance();
+       Speller m;
 
-       if (!instance->dict_exists(lang))
+       try {
+               m.speller = instance->request_dict(lang);
+       }
+       catch (const enchant::Exception & e) {
                // FIXME error handling?
-               return 0;
-
-       enchant::Dict * dict = instance->request_dict(lang);
-
-       if (dict) {
-               Speller m;
-               m.speller = dict;
-               spellers_[lang] = m;
-               return m.speller;
+               m.speller = 0;
        }
-       // FIXME error handling?
-       return 0;
+       spellers_[lang] = m;
+       return m.speller;
 }
 
 
@@ -135,9 +131,9 @@ void EnchantChecker::advanceChangeNumber()
 
 void EnchantChecker::insert(WordLangTuple const & word)
 {
-       Spellers::iterator it = d->spellers_.find(word.lang()->code());
-       if (it != d->spellers_.end()) {
-               it->second.speller->add(to_utf8(word.word()));
+       enchant::Dict * m = d->speller(word.lang()->code());
+       if (m) {
+               m->add(to_utf8(word.word()));
                advanceChangeNumber();
        }
 }
@@ -145,9 +141,9 @@ void EnchantChecker::insert(WordLangTuple const & word)
        
 void EnchantChecker::remove(WordLangTuple const & word)
 {
-       Spellers::iterator it = d->spellers_.find(word.lang()->code());
-       if (it != d->spellers_.end()) {
-               it->second.speller->remove(to_utf8(word.word()));
+       enchant::Dict * m = d->speller(word.lang()->code());
+       if (m) {
+               m->remove(to_utf8(word.word()));
                advanceChangeNumber();
        }
 }
@@ -155,9 +151,9 @@ void EnchantChecker::remove(WordLangTuple const & word)
 
 void EnchantChecker::accept(WordLangTuple const & word)
 {
-       Spellers::iterator it = d->spellers_.find(word.lang()->code());
-       if (it != d->spellers_.end()) {
-               it->second.speller->add_to_session(to_utf8(word.word()));
+       enchant::Dict * m = d->speller(word.lang()->code());
+       if (m) {
+               m->add_to_session(to_utf8(word.word()));
                advanceChangeNumber();
        }
 }