diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llautoreplace.cpp | 107 | ||||
| -rw-r--r-- | indra/newview/llautoreplace.h | 18 | ||||
| -rw-r--r-- | indra/newview/llfloaterautoreplacesettings.cpp | 26 | ||||
| -rw-r--r-- | indra/newview/llimfloater.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llnearbychatbar.cpp | 2 | 
5 files changed, 90 insertions, 65 deletions
diff --git a/indra/newview/llautoreplace.cpp b/indra/newview/llautoreplace.cpp index fa46f53e96..10005aee9f 100644 --- a/indra/newview/llautoreplace.cpp +++ b/indra/newview/llautoreplace.cpp @@ -30,20 +30,20 @@  #include "llviewercontrol.h"  #include "llnotificationsutil.h" -AutoReplace* AutoReplace::sInstance; +LLAutoReplace* LLAutoReplace::sInstance; -AutoReplace::AutoReplace() +LLAutoReplace::LLAutoReplace()  {  	sInstance = this;  	sInstance->loadFromDisk();  } -AutoReplace::~AutoReplace() +LLAutoReplace::~LLAutoReplace()  {  	sInstance = NULL;  } -void AutoReplace::autoreplaceCallback(LLUIString& inputText, S32& cursorPos) +void LLAutoReplace::autoreplaceCallback(LLUIString& inputText, S32& cursorPos)  {  	static LLCachedControl<bool> perform_autoreplace(gSavedSettings, "AutoReplace");  	if(perform_autoreplace) @@ -52,16 +52,22 @@ void AutoReplace::autoreplaceCallback(LLUIString& inputText, S32& cursorPos)  		S32 wordEnd = cursorPos-1;  		if(wordEnd < 1) +		{  			return; - +		} +		  		LLWString text = inputText.getWString();  		if(text.size()<1) +		{  			return; - +		} +		  		if(LLWStringUtil::isPartOfWord(text[wordEnd])) +		{  			return;//we only check on word breaks - +		} +		  		wordEnd--;  		if(LLWStringUtil::isPartOfWord(text[wordEnd])) @@ -80,11 +86,11 @@ void AutoReplace::autoreplaceCallback(LLUIString& inputText, S32& cursorPos)  			std::string strLastWord = std::string(text.begin(), text.end());  			std::string lastTypedWord = strLastWord.substr(wordStart, wordEnd-wordStart); -			std::string replaceedWord(replaceWord(lastTypedWord)); +			std::string replacedWord(replaceWord(lastTypedWord)); -			if(replaceedWord != lastTypedWord) +			if(replacedWord != lastTypedWord)  			{ -				LLWString strNew = utf8str_to_wstring(replaceedWord); +				LLWString strNew = utf8str_to_wstring(replacedWord);  				LLWString strOld = utf8str_to_wstring(lastTypedWord);  				int nDiff = strNew.size() - strOld.size(); @@ -97,20 +103,21 @@ void AutoReplace::autoreplaceCallback(LLUIString& inputText, S32& cursorPos)  	}  } -AutoReplace* AutoReplace::getInstance() +LLAutoReplace* LLAutoReplace::getInstance()  { -	if(sInstance)return sInstance; -	else +	if(!sInstance)  	{ -		sInstance = new AutoReplace(); -		return sInstance; +		sInstance = new LLAutoReplace();  	} +	return sInstance;  } -void AutoReplace::save() + +void LLAutoReplace::save()  {  	saveToDisk(mAutoReplaces);  } -std::string AutoReplace::getFileName() + +std::string LLAutoReplace::getFileName()  {  	std::string path=gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, ""); @@ -120,7 +127,8 @@ std::string AutoReplace::getFileName()  	}  	return path;    } -std::string AutoReplace::getDefaultFileName() + +std::string LLAutoReplace::getDefaultFileName()  {  	std::string path=gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, ""); @@ -130,7 +138,8 @@ std::string AutoReplace::getDefaultFileName()  	}  	return path;    } -LLSD AutoReplace::exportList(std::string listName) + +LLSD LLAutoReplace::exportList(std::string listName)  {  	LLSD toReturn;  	if(mAutoReplaces.has(listName)) @@ -141,12 +150,12 @@ LLSD AutoReplace::exportList(std::string listName)  	}  	return toReturn;  } -BOOL AutoReplace::addReplacementList(LLSD newList) + +BOOL LLAutoReplace::addReplacementList(LLSD newList)  {  	if(newList.has("listName"))  	{  		std::string name = newList["listName"]; -		//if(!mAutoReplaces.has(name)){  		LLSD newPart;  		newPart["data"]=newList["data"];  		newPart["enabled"]=TRUE; @@ -155,11 +164,11 @@ BOOL AutoReplace::addReplacementList(LLSD newList)  		mAutoReplaces[name]=newPart;  		return TRUE; -  	}  	return FALSE;  } -BOOL AutoReplace::removeReplacementList(std::string listName) + +BOOL LLAutoReplace::removeReplacementList(std::string listName)  {  	if(mAutoReplaces.has(listName))  	{ @@ -168,7 +177,8 @@ BOOL AutoReplace::removeReplacementList(std::string listName)  	}  	return FALSE;  } -BOOL AutoReplace::setListEnabled(std::string listName, BOOL enabled) + +BOOL LLAutoReplace::setListEnabled(std::string listName, BOOL enabled)  {  	if(mAutoReplaces.has(listName))  	{ @@ -178,7 +188,8 @@ BOOL AutoReplace::setListEnabled(std::string listName, BOOL enabled)  	return FALSE;  } -BOOL AutoReplace::setListPriority(std::string listName, int priority) + +BOOL LLAutoReplace::setListPriority(std::string listName, int priority)  {  	if(mAutoReplaces.has(listName))  	{ @@ -187,11 +198,13 @@ BOOL AutoReplace::setListPriority(std::string listName, int priority)  	}  	return FALSE;  } -LLSD AutoReplace::getAutoReplaces() + +LLSD LLAutoReplace::getAutoReplaces()  {  	return mAutoReplaces;  } -void AutoReplace::loadFromDisk() + +void LLAutoReplace::loadFromDisk()  {  	std::string filename=getFileName();  	if (filename.empty()) @@ -214,8 +227,11 @@ void AutoReplace::loadFromDisk()  			}  			file.close();  			saveToDisk(blankllsd); -		}else -		saveToDisk(getExampleLLSD()); +		} +		else +		{ +			saveToDisk(getExampleLLSD()); +		}  	}  	else  	{ @@ -228,7 +244,8 @@ void AutoReplace::loadFromDisk()  		file.close();  	}	  } -void AutoReplace::saveToDisk(LLSD newSettings) + +void LLAutoReplace::saveToDisk(LLSD newSettings)  {  	mAutoReplaces=newSettings;  	std::string filename=getFileName(); @@ -237,7 +254,8 @@ void AutoReplace::saveToDisk(LLSD newSettings)  	LLSDSerialize::toPrettyXML(mAutoReplaces, file);  	file.close();  } -void AutoReplace::runTest() + +void LLAutoReplace::runTest()  {  	std::string startS("He just abandonned all his abilties");  	std::string endS = replaceWords(startS); @@ -245,7 +263,8 @@ void AutoReplace::runTest()  } -BOOL AutoReplace::saveListToDisk(std::string listName, std::string fileName) + +BOOL LLAutoReplace::saveListToDisk(std::string listName, std::string fileName)  {  	if(mAutoReplaces.has(listName))  	{ @@ -257,7 +276,8 @@ BOOL AutoReplace::saveListToDisk(std::string listName, std::string fileName)  	}  	return FALSE;  } -LLSD AutoReplace::getAutoReplaceEntries(std::string listName) + +LLSD LLAutoReplace::getAutoReplaceEntries(std::string listName)  {  	LLSD toReturn;  	if(mAutoReplaces.has(listName)) @@ -266,7 +286,8 @@ LLSD AutoReplace::getAutoReplaceEntries(std::string listName)  	}  	return toReturn;  } -std::string AutoReplace::replaceWord(std::string currentWord) + +std::string LLAutoReplace::replaceWord(std::string currentWord)  {  	static LLCachedControl<bool> perform_autoreplace(gSavedSettings, "AutoReplace");  	if(!(perform_autoreplace))return currentWord; @@ -293,11 +314,15 @@ std::string AutoReplace::replaceWord(std::string currentWord)  	}  	return currentWord;  } -std::string AutoReplace::replaceWords(std::string words) + +std::string LLAutoReplace::replaceWords(std::string words)  {  	static LLCachedControl<bool> perform_autoreplace(gSavedSettings, "AutoReplace"); -	if(!(perform_autoreplace))return words; - +	if(!(perform_autoreplace)) +	{ +		return words; +	} +	  	boost_tokenizer tokens(words, boost::char_separator<char>(" "));  	for (boost_tokenizer::iterator token_iter = tokens.begin(); token_iter != tokens.end(); ++token_iter)  	{ @@ -320,7 +345,8 @@ std::string AutoReplace::replaceWords(std::string words)  	}  	return words;  } -BOOL AutoReplace::addEntryToList(std::string wrong, std::string right, std::string listName) + +BOOL LLAutoReplace::addEntryToList(std::string wrong, std::string right, std::string listName)  {  	// *HACK: Make sure the "Custom" list exists, because the design of this  	// system prevents us from updating it by changing the original file... @@ -339,7 +365,8 @@ BOOL AutoReplace::addEntryToList(std::string wrong, std::string right, std::stri  	return FALSE;  } -BOOL AutoReplace::removeEntryFromList(std::string wrong, std::string listName) + +BOOL LLAutoReplace::removeEntryFromList(std::string wrong, std::string listName)  {  	if(mAutoReplaces.has(listName))  	{ @@ -352,7 +379,7 @@ BOOL AutoReplace::removeEntryFromList(std::string wrong, std::string listName)  	return FALSE;  } -LLSD AutoReplace::getExampleLLSD() +LLSD LLAutoReplace::getExampleLLSD()  {  	LLSD toReturn; diff --git a/indra/newview/llautoreplace.h b/indra/newview/llautoreplace.h index 6c531d0040..27533c4ef1 100644 --- a/indra/newview/llautoreplace.h +++ b/indra/newview/llautoreplace.h @@ -17,19 +17,19 @@   * License along with this library; if not, write to the Free Software   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA   */ -#ifndef AUTO_REPLACE -#define AUTO_REPLACE +#ifndef LLAUTOREPLACE_H +#define LLAUTOREPLACE_H  #include "lllineeditor.h" -class AutoReplace : public LLSingleton<AutoReplace> +class LLAutoReplace : public LLSingleton<LLAutoReplace>  { -	AutoReplace(); -	~AutoReplace(); -	static AutoReplace* sInstance; +	LLAutoReplace(); +	~LLAutoReplace(); +	static LLAutoReplace* sInstance;  public:  	void autoreplaceCallback(LLUIString& inputText, S32& cursorPos); -	static AutoReplace* getInstance(); +	static LLAutoReplace* getInstance();  	BOOL addReplacementList(LLSD newList);  	BOOL removeReplacementList(std::string listName);  	BOOL setListEnabled(std::string listName, BOOL enabled); @@ -48,7 +48,7 @@ public:  	void loadFromDisk();  private: -	friend class LLSingleton<AutoReplace>; +	friend class LLSingleton<LLAutoReplace>;  	void saveToDisk(LLSD newSettings);  	LLSD getExampleLLSD();	  	std::string getFileName(); @@ -58,6 +58,4 @@ private:  }; - -  #endif  diff --git a/indra/newview/llfloaterautoreplacesettings.cpp b/indra/newview/llfloaterautoreplacesettings.cpp index 3dfcfba936..1a52e5d493 100644 --- a/indra/newview/llfloaterautoreplacesettings.cpp +++ b/indra/newview/llfloaterautoreplacesettings.cpp @@ -130,7 +130,7 @@ void LLFloaterAutoReplaceSettings::updateItemsList()  	updateListControlsEnabled(TRUE);  	std::string listName= namesList->getFirstSelected()->getColumn(0)->getValue().asString(); -	LLSD listData = AutoReplace::getInstance()->getAutoReplaceEntries(listName); +	LLSD listData = LLAutoReplace::getInstance()->getAutoReplaceEntries(listName);  	childSetValue("ac_list_enabled",listData["enabled"].asBoolean());  	childSetValue("ac_text_name",listName);  	childSetValue("ac_priority",listData["priority"]); @@ -166,7 +166,7 @@ void LLFloaterAutoReplaceSettings::updateNamesList()  		updateItemsList();  		return;  	} -	LLSD autoReplaces = AutoReplace::getInstance()->getAutoReplaces(); +	LLSD autoReplaces = LLAutoReplace::getInstance()->getAutoReplaces();  	LLSD::map_const_iterator loc_it = autoReplaces.beginMap();  	LLSD::map_const_iterator loc_end = autoReplaces.endMap();  	for ( ; loc_it != loc_end; ++loc_it) @@ -230,7 +230,7 @@ void LLFloaterAutoReplaceSettings::updateEnabledStuff()  	childSetEnabled("ac_list_entry", autoreplace);  	updateListControlsEnabled(autoreplace);  	updateNamesList(); -	AutoReplace::getInstance()->save(); +	LLAutoReplace::getInstance()->save();  }  void LLFloaterAutoReplaceSettings::setData(void * data) @@ -255,12 +255,12 @@ void LLFloaterAutoReplaceSettings::onEntrySettingChange(LLUICtrl* caller, void*  		if ( self )  		{  			std::string listName= self->namesList->getFirstSelected()->getColumn(0)->getValue().asString(); -			AutoReplace::getInstance()->setListEnabled(listName,self->childGetValue("ac_list_enabled").asBoolean()); -			AutoReplace::getInstance()->setListPriority(listName,self->childGetValue("ac_priority").asInteger()); +			LLAutoReplace::getInstance()->setListEnabled(listName,self->childGetValue("ac_list_enabled").asBoolean()); +			LLAutoReplace::getInstance()->setListPriority(listName,self->childGetValue("ac_priority").asInteger());  			//sInstance->updateEnabledStuff();  			self->updateItemsList(); -			AutoReplace::getInstance()->save(); +			LLAutoReplace::getInstance()->save();  		}  	}  } @@ -277,9 +277,9 @@ void LLFloaterAutoReplaceSettings::deleteEntry(void* data)  			if((self->entryList->getAllSelected().size())>0)  			{	  				std::string wrong= self->entryList->getFirstSelected()->getColumn(0)->getValue().asString(); -   				AutoReplace::getInstance()->removeEntryFromList(wrong,listName); +   				LLAutoReplace::getInstance()->removeEntryFromList(wrong,listName);  				self->updateItemsList(); -				AutoReplace::getInstance()->save(); +				LLAutoReplace::getInstance()->save();  			}  		}  	} @@ -301,7 +301,7 @@ void LLFloaterAutoReplaceSettings::loadList(void* data)  	}  	file.close();  	gSavedSettings.setBOOL("AutoReplace",true); -	AutoReplace::getInstance()->addReplacementList(blankllsd); +	LLAutoReplace::getInstance()->addReplacementList(blankllsd);  	if ( data )  	{  		LLFloaterAutoReplaceSettings* self = ( LLFloaterAutoReplaceSettings* )data; @@ -319,7 +319,7 @@ void LLFloaterAutoReplaceSettings::removeList(void* data)  		if ( self )  		{  			std::string listName= self->namesList->getFirstSelected()->getColumn(0)->getValue().asString(); -			AutoReplace::getInstance()->removeReplacementList(listName); +			LLAutoReplace::getInstance()->removeReplacementList(listName);  			self->updateEnabledStuff();  		} @@ -339,7 +339,7 @@ void LLFloaterAutoReplaceSettings::exportList(void *data)  			{  				llofstream file;  				file.open(picker.getFirstFile().c_str()); -				LLSDSerialize::toPrettyXML(AutoReplace::getInstance()->exportList(listName), file); +				LLSDSerialize::toPrettyXML(LLAutoReplace::getInstance()->exportList(listName), file);  				file.close();	  			}	  		} @@ -357,9 +357,9 @@ void LLFloaterAutoReplaceSettings::addEntry(void* data)  			std::string right = self->mNewText->getText();  			if(wrong != "" && right != "")  			{ -				AutoReplace::getInstance()->addEntryToList(wrong, right, listName); +				LLAutoReplace::getInstance()->addEntryToList(wrong, right, listName);  				self->updateItemsList(); -				AutoReplace::getInstance()->save(); +				LLAutoReplace::getInstance()->save();  			}  		}  	} diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 670db3773e..63eedcdfea 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -256,7 +256,7 @@ BOOL LLIMFloater::postBuild()  	// enable line history support for instant message bar  	mInputEditor->setEnableLineHistory(TRUE);  	// *TODO Establish LineEditor with autoreplace callback -	mInputEditor->setAutoreplaceCallback(boost::bind(&AutoReplace::autoreplaceCallback, AutoReplace::getInstance(), _1, _2)); +	mInputEditor->setAutoreplaceCallback(boost::bind(&LLAutoReplace::autoreplaceCallback, LLAutoReplace::getInstance(), _1, _2));  	LLFontGL* font = LLViewerChat::getChatFont();  	mInputEditor->setFont(font);	 diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index a3aeadbfb8..2a1d3b9fc5 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -88,7 +88,7 @@ BOOL LLNearbyChatBar::postBuild()  {  	mChatBox = getChild<LLLineEditor>("chat_box"); -	mChatBox->setAutoreplaceCallback(boost::bind(&AutoReplace::autoreplaceCallback, AutoReplace::getInstance(), _1, _2)); +	mChatBox->setAutoreplaceCallback(boost::bind(&LLAutoReplace::autoreplaceCallback, LLAutoReplace::getInstance(), _1, _2));  	mChatBox->setCommitCallback(boost::bind(&LLNearbyChatBar::onChatBoxCommit, this));  	mChatBox->setKeystrokeCallback(&onChatBoxKeystroke, this);  	mChatBox->setFocusLostCallback(boost::bind(&onChatBoxFocusLost, _1, this));  | 
