diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llimview.cpp | 8 | ||||
| -rw-r--r-- | indra/newview/llimview.h | 10 | ||||
| -rw-r--r-- | indra/newview/llnotificationhandlerutil.cpp | 32 | 
3 files changed, 25 insertions, 25 deletions
| diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 827234be6e..21a3ddfd78 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -455,7 +455,13 @@ bool LLIMModel::logToFile(const LLUUID& session_id, const std::string& from, con  {  	if (gSavedPerAccountSettings.getBOOL("LogInstantMessages"))  	{ -		LLLogChat::saveHistory(LLIMModel::getInstance()->getName(session_id), from, from_id, utf8_text); +		std::string name = LLIMModel::getInstance()->getName(session_id); +		if (name == LLStringUtil::null) +		{ +			name = from; +		} + +		LLLogChat::saveHistory(name, from, from_id, utf8_text);  		return true;  	}  	else diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h index 79b0acad69..5cc0b033a2 100644 --- a/indra/newview/llimview.h +++ b/indra/newview/llimview.h @@ -200,17 +200,17 @@ public:  	void testMessages(); +	/** +	 * Save an IM message into a file +	 */ +	bool logToFile(const LLUUID& session_id, const std::string& from, const LLUUID& from_id, const std::string& utf8_text); +  private:  	/**  	 * Add message to a list of message associated with session specified by session_id  	 */  	bool addToHistory(const LLUUID& session_id, const std::string& from, const LLUUID& from_id, const std::string& utf8_text);  - -	/** -	 * Save an IM message into a file -	 */ -	bool logToFile(const LLUUID& session_id, const std::string& from, const LLUUID& from_id, const std::string& utf8_text);  };  class LLIMSessionObserver diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp index 112d829563..a30f896fa2 100644 --- a/indra/newview/llnotificationhandlerutil.cpp +++ b/indra/newview/llnotificationhandlerutil.cpp @@ -71,29 +71,23 @@ void LLHandlerUtil::logToIMP2P(const LLNotificationPtr& notification)  		LLIMModel::LLIMSession* session = LLIMModel::instance().findIMSession(session_id);  		if (session == NULL)  		{ -			session_id = LLIMMgr::instance().addSession(name, -					IM_NOTHING_SPECIAL, from_id); -			session = LLIMModel::instance().findIMSession(session_id); +			LLIMModel::instance().logToFile(session_id, name, from_id, +					notification->getMessage());  		} - -		if (session == NULL) +		else  		{ -			llerrs << "session " << session_id << "does not exist " << llendl; -			return; -		} +			// store active session id +			const LLUUID & active_session_id = +					LLIMModel::instance().getActiveSessionID(); +			// set searched session as active to avoid IM toast popup +			LLIMModel::instance().setActiveSessionID(session->mSessionID); -		// store active session id -		const LLUUID & active_session_id = -				LLIMModel::instance().getActiveSessionID(); +			LLIMModel::instance().addMessage(session->mSessionID, name, from_id, +					notification->getMessage()); -		// set created session as active to avoid IM toast popup -		LLIMModel::instance().setActiveSessionID(session->mSessionID); - -		LLIMModel::instance().addMessage(session->mSessionID, name, from_id, -				notification->getMessage()); - -		// restore active session id -		LLIMModel::instance().setActiveSessionID(active_session_id); +			// restore active session id +			LLIMModel::instance().setActiveSessionID(active_session_id); +		}  	}  } | 
