From 2752e342f63fc74c49e19317885280fb279ae2fa Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Thu, 27 Jun 2019 22:14:52 +0300 Subject: DRTVWR-493 LLSpellcheck doesn't need separate init --- indra/llui/llspellcheck.cpp | 31 +++++++-------------------- indra/llui/llspellcheck.h | 21 ++++++++---------- indra/newview/llfloaterspellchecksettings.cpp | 10 ++++----- 3 files changed, 22 insertions(+), 40 deletions(-) (limited to 'indra') diff --git a/indra/llui/llspellcheck.cpp b/indra/llui/llspellcheck.cpp index 7f64743e99..296ea09079 100644 --- a/indra/llui/llspellcheck.cpp +++ b/indra/llui/llspellcheck.cpp @@ -44,7 +44,6 @@ static const std::string DICT_FILE_IGNORE = "user_ignore.dic"; static const std::string DICT_FILE_MAIN = "dictionaries.xml"; static const std::string DICT_FILE_USER = "user_dictionaries.xml"; -LLSD LLSpellChecker::sDictMap; LLSpellChecker::settings_change_signal_t LLSpellChecker::sSettingsChangeSignal; LLSpellChecker::LLSpellChecker() @@ -94,10 +93,9 @@ S32 LLSpellChecker::getSuggestions(const std::string& word, std::vector, public LLInitClass +class LLSpellChecker : public LLSingleton { LLSINGLETON(LLSpellChecker); - friend class LLInitClass; ~LLSpellChecker(); public: @@ -57,26 +56,24 @@ public: bool isActiveDictionary(const std::string& dict_language) const; void setSecondaryDictionaries(dict_list_t dict_list); - static bool canRemoveDictionary(const std::string& dict_language); + bool canRemoveDictionary(const std::string& dict_language); static const std::string getDictionaryAppPath(); static const std::string getDictionaryUserPath(); - static const LLSD getDictionaryData(const std::string& dict_language); - static const LLSD& getDictionaryMap() { return sDictMap; } + const LLSD getDictionaryData(const std::string& dict_language); + const LLSD& getDictionaryMap() { return mDictMap; } static bool getUseSpellCheck(); - static bool hasDictionary(const std::string& dict_language, bool check_installed = false); - static void refreshDictionaryMap(); - static void removeDictionary(const std::string& dict_language); + bool hasDictionary(const std::string& dict_language, bool check_installed = false); + void refreshDictionaryMap(); + void removeDictionary(const std::string& dict_language); static void setUseSpellCheck(const std::string& dict_language); protected: static LLSD loadUserDictionaryMap(); - static void setDictionaryData(const LLSD& dict_info); + void setDictionaryData(const LLSD& dict_info); static void saveUserDictionaryMap(const LLSD& dict_map); public: typedef boost::signals2::signal settings_change_signal_t; static boost::signals2::connection setSettingsChangeCallback(const settings_change_signal_t::slot_type& cb); -protected: - static void initClass(); protected: Hunspell* mHunspell; @@ -84,8 +81,8 @@ protected: std::string mDictFile; dict_list_t mDictSecondary; std::vector mIgnoreList; + LLSD mDictMap; - static LLSD sDictMap; static settings_change_signal_t sSettingsChangeSignal; }; diff --git a/indra/newview/llfloaterspellchecksettings.cpp b/indra/newview/llfloaterspellchecksettings.cpp index b87044ef5a..de5d59f484 100644 --- a/indra/newview/llfloaterspellchecksettings.cpp +++ b/indra/newview/llfloaterspellchecksettings.cpp @@ -56,7 +56,7 @@ void LLFloaterSpellCheckerSettings::draw() bool enable_remove = !sel_items.empty(); for (std::vector::const_iterator sel_it = sel_items.begin(); sel_it != sel_items.end(); ++sel_it) { - enable_remove &= LLSpellChecker::canRemoveDictionary((*sel_it)->getValue().asString()); + enable_remove &= LLSpellChecker::getInstance()->canRemoveDictionary((*sel_it)->getValue().asString()); } getChild("spellcheck_remove_btn")->setEnabled(enable_remove); } @@ -121,7 +121,7 @@ void LLFloaterSpellCheckerSettings::onClose(bool app_quitting) for (std::vector::const_iterator item_it = list_items.begin(); item_it != list_items.end(); ++item_it) { const std::string language = (*item_it)->getValue().asString(); - if (LLSpellChecker::hasDictionary(language, true)) + if (LLSpellChecker::getInstance()->hasDictionary(language, true)) { list_dict.push_back(language); } @@ -164,7 +164,7 @@ void LLFloaterSpellCheckerSettings::refreshDictionaries(bool from_settings) } dict_combo->clearRows(); - const LLSD& dict_map = LLSpellChecker::getDictionaryMap(); + const LLSD& dict_map = LLSpellChecker::getInstance()->getDictionaryMap(); if (dict_map.size()) { for (LLSD::array_const_iterator dict_it = dict_map.beginArray(); dict_it != dict_map.endArray(); ++dict_it) @@ -216,7 +216,7 @@ void LLFloaterSpellCheckerSettings::refreshDictionaries(bool from_settings) for (LLSpellChecker::dict_list_t::const_iterator it = active_list.begin(); it != active_list.end(); ++it) { const std::string language = *it; - const LLSD dict = LLSpellChecker::getDictionaryData(language); + const LLSD dict = LLSpellChecker::getInstance()->getDictionaryData(language); row["value"] = language; row["columns"][0]["value"] = (!dict["user_installed"].asBoolean()) ? language : language + " " + LLTrans::getString("UserDictionary"); active_ctrl->addElement(row); @@ -380,7 +380,7 @@ void LLFloaterSpellCheckerImport::onBtnOK() custom_file_out.close(); } - LLSpellChecker::refreshDictionaryMap(); + LLSpellChecker::getInstance()->refreshDictionaryMap(); } closeFloater(false); -- cgit v1.2.3