X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FAppleSpellChecker.cpp;h=3ba1250b2dff695cb98ee551986f1a2bd32436bb;hb=9a31c1b90b0f08fbc3ac2a51f4aa179e879f8d4f;hp=5e6240125fb43b9357b5e9e7bd2ecebf675d9d0c;hpb=587337ae5e6f7b903ce71a9d8db56a096e642e81;p=lyx.git diff --git a/src/AppleSpellChecker.cpp b/src/AppleSpellChecker.cpp index 5e6240125f..3ba1250b2d 100644 --- a/src/AppleSpellChecker.cpp +++ b/src/AppleSpellChecker.cpp @@ -13,7 +13,6 @@ #include "AppleSpellChecker.h" #include "WordLangTuple.h" -#include "support/lassert.h" #include "support/debug.h" #include "support/docstring_list.h" #include "support/AppleSpeller.h" @@ -31,13 +30,13 @@ struct AppleSpellChecker::Private SpellChecker::Result toResult(SpellCheckResult status); string toString(SpellCheckResult status); + int numDictionaries() const; /// the speller AppleSpeller speller; - + /// language map map languageMap; - }; @@ -54,9 +53,9 @@ AppleSpellChecker::Private::~Private() } -AppleSpellChecker::AppleSpellChecker(): d(new Private) -{ -} +AppleSpellChecker::AppleSpellChecker() + : d(new Private) +{} AppleSpellChecker::~AppleSpellChecker() @@ -82,7 +81,7 @@ string AppleSpellChecker::Private::toString(SpellCheckResult status) SpellChecker::Result AppleSpellChecker::check(WordLangTuple const & word) { if (!hasDictionary(word.lang())) - return WORD_OK; + return NO_DICTIONARY; string const word_str = to_utf8(word.word()); string const lang = d->languageMap[word.lang()->lang()]; @@ -107,7 +106,7 @@ void AppleSpellChecker::insert(WordLangTuple const & word) { string const word_str = to_utf8(word.word()); AppleSpeller_learn(d->speller, word_str.c_str()); - LYXERR(Debug::GUI, "learn word: \"" << word.word() << "\"") ; + LYXERR(Debug::GUI, "learn word: \"" << word.word() << "\""); advanceChangeNumber(); } @@ -117,7 +116,7 @@ void AppleSpellChecker::remove(WordLangTuple const & word) { string const word_str = to_utf8(word.word()); AppleSpeller_unlearn(d->speller, word_str.c_str()); - LYXERR(Debug::GUI, "unlearn word: \"" << word.word() << "\"") ; + LYXERR(Debug::GUI, "unlearn word: \"" << word.word() << "\""); advanceChangeNumber(); } @@ -127,7 +126,7 @@ void AppleSpellChecker::accept(WordLangTuple const & word) { string const word_str = to_utf8(word.word()); AppleSpeller_ignore(d->speller, word_str.c_str()); - LYXERR(Debug::GUI, "ignore word: \"" << word.word() << "\"") ; + LYXERR(Debug::GUI, "ignore word: \"" << word.word() << "\""); advanceChangeNumber(); } @@ -137,7 +136,7 @@ void AppleSpellChecker::suggest(WordLangTuple const & wl, { suggestions.clear(); string const word_str = to_utf8(wl.word()); - size_t num = AppleSpeller_makeSuggestion(d->speller, + size_t num = AppleSpeller_makeSuggestion(d->speller, word_str.c_str(), wl.lang()->code().c_str()); for (size_t i = 0; i < num; i++) { char const * next = AppleSpeller_getSuggestion(d->speller, i); @@ -155,15 +154,29 @@ bool AppleSpellChecker::hasDictionary(Language const * lang) const if (result) return result; - result = AppleSpeller_hasLanguage(d->speller,lang->code().c_str()); + result = AppleSpeller_hasLanguage(d->speller, lang->code().c_str()); if (result) { d->languageMap[lang->lang()] = lang->code(); } else { - result = AppleSpeller_hasLanguage(d->speller,lang->lang().c_str()); + result = AppleSpeller_hasLanguage(d->speller, lang->lang().c_str()); if (result) d->languageMap[lang->lang()] = lang->lang(); } - LYXERR(Debug::GUI, "has dictionary: " << lang->lang() << " = " << result) ; + LYXERR(Debug::GUI, "has dictionary: " << lang->lang() << " = " << result); + return result; +} + + +int AppleSpellChecker::numDictionaries() const +{ + int result = 0; + map::const_iterator it = d->languageMap.begin(); + map::const_iterator et = d->languageMap.end(); + + for (; it != et; ++it) { + string const langmap = it->second; + result += langmap.empty() ? 0 : 1; + } return result; }