diff options
Diffstat (limited to 'indra')
| -rwxr-xr-x | indra/newview/llappviewer.cpp | 8 | ||||
| -rwxr-xr-x | indra/newview/llconversationlog.h | 3 | ||||
| -rwxr-xr-x | indra/newview/llfloaterimcontainer.cpp | 26 | ||||
| -rwxr-xr-x | indra/newview/lllogchat.cpp | 16 | ||||
| -rwxr-xr-x | indra/newview/lllogchat.h | 1 | 
5 files changed, 49 insertions, 5 deletions
| diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 6dc71bc94e..5a5d2eb744 100755 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -2783,10 +2783,12 @@ bool LLAppViewer::initConfiguration()  	//  	gWindowTitle = LLTrans::getString("APP_NAME");  #if LL_DEBUG -	gWindowTitle += std::string(" [DEBUG] ") + gArgs; -#else -	gWindowTitle += std::string(" ") + gArgs; +	gWindowTitle += std::string(" [DEBUG]")  #endif +	if (!gArgs.empty()) +	{ +		gWindowTitle += std::string(" ") + gArgs; +	}  	LLStringUtil::truncate(gWindowTitle, 255);  	//RN: if we received a URL, hand it off to the existing instance. diff --git a/indra/newview/llconversationlog.h b/indra/newview/llconversationlog.h index b38d472156..62f08144b9 100755 --- a/indra/newview/llconversationlog.h +++ b/indra/newview/llconversationlog.h @@ -153,6 +153,7 @@ public:  	 * file name is conversation.log  	 */  	std::string getFileName(); +	LLConversation* findConversation(const LLIMModel::LLIMSession* session);  private: @@ -184,7 +185,7 @@ private:  	void updateConversationName(const LLIMModel::LLIMSession* session, const std::string& name);  	void updateOfflineIMs(const LLIMModel::LLIMSession* session, BOOL new_messages); -	LLConversation* findConversation(const LLIMModel::LLIMSession* session); +  	typedef std::vector<LLConversation> conversations_vec_t;  	std::vector<LLConversation>				mConversations; diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index 66278f4987..04f8c09ca0 100755 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -1220,7 +1220,22 @@ void LLFloaterIMContainer::doToSelectedConversation(const std::string& command,          {  			if (selectedIDS.size() > 0)  			{ -				LLAvatarActions::viewChatHistory(selectedIDS.front()); +				if(conversationItem->getType() == LLConversationItem::CONV_SESSION_GROUP) +				{ +					LLFloaterReg::showInstance("preview_conversation", conversationItem->getUUID(), true); +				} +				else if(conversationItem->getType() == LLConversationItem::CONV_SESSION_AD_HOC) +				{ +					LLConversation* conv = LLConversationLog::instance().findConversation(LLIMModel::getInstance()->findIMSession(conversationItem->getUUID())); +					if(conv) +					{ +						LLFloaterReg::showInstance("preview_conversation", conv->getSessionID(), true); +					} +				} +				else +				{ +					LLAvatarActions::viewChatHistory(selectedIDS.front()); +				}  			}          }          else @@ -1320,6 +1335,15 @@ bool LLFloaterIMContainer::enableContextMenuItem(const LLSD& userdata)  			{  				return LLLogChat::isNearbyTranscriptExist();  			} +			else if (getCurSelectedViewModelItem()->getType() == LLConversationItem::CONV_SESSION_AD_HOC) +			{ +				const LLConversation* conv = LLConversationLog::instance().findConversation(LLIMModel::getInstance()->findIMSession(uuids.front())); +				if(conv) +				{ +					return LLLogChat::isAdHocTranscriptExist(conv->getHistoryFileName()); +				} +				return false; +			}  			else  			{  				bool is_group = (getCurSelectedViewModelItem()->getType() == LLConversationItem::CONV_SESSION_GROUP); diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp index 7ddacf3033..4116e38f11 100755 --- a/indra/newview/lllogchat.cpp +++ b/indra/newview/lllogchat.cpp @@ -804,6 +804,22 @@ bool LLLogChat::isNearbyTranscriptExist()  	return false;  } +bool LLLogChat::isAdHocTranscriptExist(std::string file_name) +{ +	std::vector<std::string> list_of_transcriptions; +	LLLogChat::getListOfTranscriptFiles(list_of_transcriptions); + +	file_name = makeLogFileName(file_name); +	BOOST_FOREACH(std::string& transcript_file_name, list_of_transcriptions) +	{ +	   	if (transcript_file_name == file_name) +	   	{ +	   		return true; +		} +	} +	return false; +} +  //*TODO mark object's names in a special way so that they will be distinguishable form avatar name   //which are more strict by its nature (only firstname and secondname)  //Example, an object's name can be written like "Object <actual_object's_name>" diff --git a/indra/newview/lllogchat.h b/indra/newview/lllogchat.h index ca597599dd..6022e539a9 100755 --- a/indra/newview/lllogchat.h +++ b/indra/newview/lllogchat.h @@ -120,6 +120,7 @@ public:  	static void deleteTranscripts();  	static bool isTranscriptExist(const LLUUID& avatar_id, bool is_group=false);  	static bool isNearbyTranscriptExist(); +	static bool isAdHocTranscriptExist(std::string file_name);  	static bool historyThreadsFinished(LLUUID session_id);  	static LLLoadHistoryThread* getLoadHistoryThread(LLUUID session_id); | 
