diff options
| author | Merov Linden <merov@lindenlab.com> | 2012-09-10 10:48:45 -0700 | 
|---|---|---|
| committer | Merov Linden <merov@lindenlab.com> | 2012-09-10 10:48:45 -0700 | 
| commit | 5b72a2d7fb917ed6d60ea27873077dca728a9e71 (patch) | |
| tree | bc4a2147773faee64a971910cc77fa4b4ee8432b | |
| parent | 4869e0c269deafa44874a0110cc1f06bdc310407 (diff) | |
| parent | d79037017e3a1627be848b9162f28ae16fcb6004 (diff) | |
Pull merge from richard/viewer-chui
| -rw-r--r-- | indra/newview/llimconversation.cpp | 68 | ||||
| -rw-r--r-- | indra/newview/llimconversation.h | 5 | ||||
| -rw-r--r-- | indra/newview/llimfloater.cpp | 19 | ||||
| -rw-r--r-- | indra/newview/llimfloater.h | 1 | ||||
| -rw-r--r-- | indra/newview/llnearbychat.cpp | 44 | ||||
| -rw-r--r-- | indra/newview/llnearbychat.h | 2 | ||||
| -rw-r--r-- | indra/newview/llnearbychathandler.cpp | 3 | ||||
| -rw-r--r-- | indra/newview/llnotificationhandlerutil.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/llnotificationtiphandler.cpp | 2 | ||||
| -rwxr-xr-x | indra/newview/llviewerwindow.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_im_container.xml | 4 | 
11 files changed, 70 insertions, 86 deletions
| diff --git a/indra/newview/llimconversation.cpp b/indra/newview/llimconversation.cpp index d8c81a7849..216c5bbd70 100644 --- a/indra/newview/llimconversation.cpp +++ b/indra/newview/llimconversation.cpp @@ -148,7 +148,7 @@ BOOL LLIMConversation::postBuild()  	updateHeaderAndToolbar(); -	mSaveRect = !getHost(); +	mSaveRect = isTornOff();  	initRectControl();  	if (isChatMultiTab()) @@ -223,6 +223,46 @@ void LLIMConversation::onFocusLost()  	LLTransientDockableFloater::onFocusLost();  } +std::string LLIMConversation::appendTime() +{ +	time_t utc_time; +	utc_time = time_corrected(); +	std::string timeStr ="["+ LLTrans::getString("TimeHour")+"]:[" +		+LLTrans::getString("TimeMin")+"]"; + +	LLSD substitution; + +	substitution["datetime"] = (S32) utc_time; +	LLStringUtil::format (timeStr, substitution); + +	return timeStr; +} + +void LLIMConversation::appendMessage(const LLChat& chat, const LLSD &args) +{ +	LLChat& tmp_chat = const_cast<LLChat&>(chat); + +	if(tmp_chat.mTimeStr.empty()) +		tmp_chat.mTimeStr = appendTime(); + +	if (!chat.mMuted) +	{ +		tmp_chat.mFromName = chat.mFromName; +		LLSD chat_args; +		if (args) chat_args = args; +		chat_args["use_plain_text_chat_history"] = +				gSavedSettings.getBOOL("PlainTextChatHistory"); +		chat_args["show_time"] = gSavedSettings.getBOOL("IMShowTime"); +		chat_args["show_names_for_p2p_conv"] = +				!mIsP2PChat || gSavedSettings.getBOOL("IMShowNamesForP2PConv"); + +		if (mChatHistory) +		{ +			mChatHistory->appendMessage(chat, chat_args); +		} +	} +} +  void LLIMConversation::buildParticipantList()  { @@ -309,11 +349,11 @@ void LLIMConversation::hideOrShowTitle()  	LLView* floater_contents = getChild<LLView>("contents_view");  	LLRect floater_rect = getLocalRect(); -	S32 top_border_of_contents = floater_rect.mTop - (getHost()? 0 : floater_header_size); +	S32 top_border_of_contents = floater_rect.mTop - (isTornOff()? floater_header_size : 0);  	LLRect handle_rect (0, floater_rect.mTop, floater_rect.mRight, top_border_of_contents);  	LLRect contents_rect (0, top_border_of_contents, floater_rect.mRight, floater_rect.mBottom);  	mDragHandle->setShape(handle_rect); -	mDragHandle->setVisible(!getHost()); +	mDragHandle->setVisible(isTornOff());  	floater_contents->setShape(contents_rect);  } @@ -331,8 +371,8 @@ void LLIMConversation::hideAllStandardButtons()  void LLIMConversation::updateHeaderAndToolbar()  { -	bool is_hosted = !!getHost(); -	if (is_hosted) +	bool is_torn_off = !getHost(); +	if (!is_torn_off)  	{  		hideAllStandardButtons();  	} @@ -341,7 +381,7 @@ void LLIMConversation::updateHeaderAndToolbar()  	// Participant list should be visible only in torn off floaters.  	bool is_participant_list_visible = -			!is_hosted +			is_torn_off  			&& gSavedSettings.getBOOL("IMShowControlPanel")  			&& !mIsP2PChat; @@ -349,21 +389,21 @@ void LLIMConversation::updateHeaderAndToolbar()  	// Display collapse image (<<) if the floater is hosted  	// or if it is torn off but has an open control panel. -	bool is_expanded = is_hosted || is_participant_list_visible; +	bool is_expanded = !is_torn_off || is_participant_list_visible;  	mExpandCollapseBtn->setImageOverlay(getString(is_expanded ? "collapse_icon" : "expand_icon"));  	// toggle floater's drag handle and title visibility  	if (mDragHandle)  	{ -		mDragHandle->setTitleVisible(!is_hosted); +		mDragHandle->setTitleVisible(is_torn_off);  	}  	// The button (>>) should be disabled for torn off P2P conversations. -	mExpandCollapseBtn->setEnabled(is_hosted || !mIsP2PChat); +	mExpandCollapseBtn->setEnabled(!is_torn_off || !mIsP2PChat); -	mTearOffBtn->setImageOverlay(getString(is_hosted? "tear_off_icon" : "return_icon")); +	mTearOffBtn->setImageOverlay(getString(is_torn_off? "return_icon" : "tear_off_icon")); -	mCloseBtn->setVisible(is_hosted && !mIsNearbyChat); +	mCloseBtn->setVisible(!is_torn_off && !mIsNearbyChat);  	enableDisableCallBtn(); @@ -400,7 +440,7 @@ void LLIMConversation::processChatHistoryStyleUpdate()  		}  	} -	LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat"); +	LLNearbyChat* nearby_chat = LLFloaterReg::findTypedInstance<LLNearbyChat>("nearby_chat");  	if (nearby_chat)  	{               nearby_chat->reloadMessages(); @@ -470,8 +510,8 @@ void LLIMConversation::onClose(bool app_quitting)  void LLIMConversation::onTearOffClicked()  { -    setFollows(getHost()? FOLLOWS_NONE : FOLLOWS_ALL); -    mSaveRect = !getHost(); +    setFollows(isTornOff()? FOLLOWS_ALL : FOLLOWS_NONE); +    mSaveRect = isTornOff();      initRectControl();  	LLFloater::onClickTearOff(this);  	updateHeaderAndToolbar(); diff --git a/indra/newview/llimconversation.h b/indra/newview/llimconversation.h index 50feb12aed..41a76c206e 100644 --- a/indra/newview/llimconversation.h +++ b/indra/newview/llimconversation.h @@ -104,6 +104,11 @@ protected:  	/* virtual */ void onFocusLost();  	/* virtual */ void onFocusReceived(); +	// prepare chat's params and out one message to chatHistory +	void appendMessage(const LLChat& chat, const LLSD &args = 0); + +	std::string appendTime(); +  	bool mIsNearbyChat;  	bool mIsP2PChat; diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp index 7b475c1e0b..2474fe0891 100644 --- a/indra/newview/llimfloater.cpp +++ b/indra/newview/llimfloater.cpp @@ -848,25 +848,6 @@ void LLIMFloater::sessionInitReplyReceived(const LLUUID& im_session_id)  	}  } -void LLIMFloater::appendMessage(const LLChat& chat, const LLSD &args) -{ -	LLChat& tmp_chat = const_cast<LLChat&>(chat); - -	if (!chat.mMuted) -	{ -		tmp_chat.mFromName = chat.mFromName; -		LLSD chat_args; -		if (args) chat_args = args; -		chat_args["use_plain_text_chat_history"] = -				gSavedSettings.getBOOL("PlainTextChatHistory"); -		chat_args["show_time"] = gSavedSettings.getBOOL("IMShowTime"); -		chat_args["show_names_for_p2p_conv"] = !mIsP2PChat -				|| gSavedSettings.getBOOL("IMShowNamesForP2PConv"); - -		mChatHistory->appendMessage(chat, chat_args); -	} -} -  void LLIMFloater::updateMessages()  {  	std::list<LLSD> messages; diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h index 7b2c9e7aef..e4a67a3d56 100644 --- a/indra/newview/llimfloater.h +++ b/indra/newview/llimfloater.h @@ -152,7 +152,6 @@ private:  	BOOL isInviteAllowed() const;  	BOOL inviteToSession(const uuid_vec_t& agent_ids); -	void appendMessage(const LLChat& chat, const LLSD &args = 0);  	static void onInputEditorFocusReceived( LLFocusableElement* caller,void* userdata );  	static void onInputEditorFocusLost(LLFocusableElement* caller, void* userdata);  	static void onInputEditorKeystroke(LLTextEditor* caller, void* userdata); diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp index c2ad8cfda3..ddd271e23f 100644 --- a/indra/newview/llnearbychat.cpp +++ b/indra/newview/llnearbychat.cpp @@ -69,7 +69,7 @@  S32 LLNearbyChat::sLastSpecialChatChannel = 0; -// --- 2 functions in the global namespace :( --- +// --- function in the global namespace :( ---  bool isWordsName(const std::string& name)  {  	// checking to see if it's display name plus username in parentheses @@ -89,22 +89,6 @@ bool isWordsName(const std::string& name)  	}  } -std::string appendTime() -{ -	time_t utc_time; -	utc_time = time_corrected(); -	std::string timeStr ="["+ LLTrans::getString("TimeHour")+"]:[" -		+LLTrans::getString("TimeMin")+"]"; - -	LLSD substitution; - -	substitution["datetime"] = (S32) utc_time; -	LLStringUtil::format (timeStr, substitution); - -	return timeStr; -} - -  const S32 EXPANDED_HEIGHT = 266;  const S32 COLLAPSED_HEIGHT = 60;  const S32 EXPANDED_MIN_HEIGHT = 150; @@ -129,6 +113,7 @@ LLNearbyChat::LLNearbyChat(const LLSD& llsd)  	mSpeakerMgr(NULL),  	mExpandedHeight(COLLAPSED_HEIGHT + EXPANDED_HEIGHT)  { +    mIsP2PChat = false;  	mIsNearbyChat = true;  	setIsChrome(TRUE);  	mKey = LLSD(); @@ -604,31 +589,6 @@ void LLNearbyChat::sendChat( EChatType type )  	}  } - -void LLNearbyChat::appendMessage(const LLChat& chat, const LLSD &args) -{ -	LLChat& tmp_chat = const_cast<LLChat&>(chat); - -	if(tmp_chat.mTimeStr.empty()) -		tmp_chat.mTimeStr = appendTime(); - -	if (!chat.mMuted) -	{ -		tmp_chat.mFromName = chat.mFromName; -		LLSD chat_args; -		if (args) chat_args = args; -		chat_args["use_plain_text_chat_history"] = -				gSavedSettings.getBOOL("PlainTextChatHistory"); -		chat_args["show_time"] = gSavedSettings.getBOOL("IMShowTime"); -		chat_args["show_names_for_p2p_conv"] = true; - -		if (mChatHistory) -		{ -			mChatHistory->appendMessage(chat, chat_args); -		} -	} -} -  void	LLNearbyChat::addMessage(const LLChat& chat,bool archive,const LLSD &args)  {  	appendMessage(chat, args); diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h index 1db7afc01f..2cbafbfa62 100644 --- a/indra/newview/llnearbychat.h +++ b/indra/newview/llnearbychat.h @@ -108,8 +108,6 @@ protected:  private: -	// prepare chat's params and out one message to chatHistory -	void appendMessage(const LLChat& chat, const LLSD &args = 0);  	void	onNearbySpeakers	();  	/*virtual*/ void refresh(); diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp index ca3fffeffd..f3e17ea61b 100644 --- a/indra/newview/llnearbychathandler.cpp +++ b/indra/newview/llnearbychathandler.cpp @@ -487,6 +487,8 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg,  	if(chat_msg.mText.empty())  		return;//don't process empty messages +	LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat"); +  	// Build notification data   	LLSD chat;  	chat["message"] = chat_msg.mText; @@ -537,7 +539,6 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg,  		}  	} -	LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat");  	nearby_chat->addMessage(chat_msg, true, args);  	if(chat_msg.mSourceType == CHAT_SOURCE_AGENT  diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp index 2484040ac4..9fd73746e8 100644 --- a/indra/newview/llnotificationhandlerutil.cpp +++ b/indra/newview/llnotificationhandlerutil.cpp @@ -181,7 +181,7 @@ void LLHandlerUtil::logGroupNoticeToIMGroup(  // static  void LLHandlerUtil::logToNearbyChat(const LLNotificationPtr& notification, EChatSourceType type)  { -    LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat"); +    LLNearbyChat* nearby_chat = LLFloaterReg::findTypedInstance<LLNearbyChat>("nearby_chat");  	if (nearby_chat)  	{  		LLChat chat_msg(notification->getMessage()); diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp index ef6668247c..a293e6acb6 100644 --- a/indra/newview/llnotificationtiphandler.cpp +++ b/indra/newview/llnotificationtiphandler.cpp @@ -86,7 +86,7 @@ bool LLTipHandler::processNotification(const LLNotificationPtr& notification)  		// don't show toast if Nearby Chat is opened  		LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat"); -		if (nearby_chat && nearby_chat->isChatVisible()) +		if (nearby_chat->isChatVisible())  		{  			return false;  		} diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index 791cadaee4..403288b2fd 100755 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -2493,7 +2493,7 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)  		return TRUE;  	} -	LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat"); +	LLNearbyChat* nearby_chat = LLFloaterReg::findTypedInstance<LLNearbyChat>("nearby_chat");  	// Traverses up the hierarchy  	if( keyboard_focus ) @@ -2561,10 +2561,10 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)  	// If "Pressing letter keys starts local chat" option is selected, we are not in mouselook,   	// no view has keyboard focus, this is a printable character key (and no modifier key is   	// pressed except shift), then give focus to nearby chat (STORM-560) -	if ( gSavedSettings.getS32("LetterKeysFocusChatBar") && !gAgentCamera.cameraMouselook() &&  +	if ( nearby_chat && gSavedSettings.getS32("LetterKeysFocusChatBar") && !gAgentCamera.cameraMouselook() &&  		!keyboard_focus && key < 0x80 && (mask == MASK_NONE || mask == MASK_SHIFT) )  	{ -		LLChatEntry* chat_editor = nearby_chat->getChatBox(); +		LLChatEntry* chat_editor = LLFloaterReg::findTypedInstance<LLNearbyChat>("nearby_chat")->getChatBox();  		if (chat_editor)  		{  			// passing NULL here, character will be added later when it is handled by character handler. diff --git a/indra/newview/skins/default/xui/en/floater_im_container.xml b/indra/newview/skins/default/xui/en/floater_im_container.xml index e439fc9005..1583add857 100644 --- a/indra/newview/skins/default/xui/en/floater_im_container.xml +++ b/indra/newview/skins/default/xui/en/floater_im_container.xml @@ -36,7 +36,7 @@           name="conversations_layout_panel"           min_dim="38"           width="268" -         expanded_min_dim="120"> +         expanded_min_dim="165">              <layout_stack               animate="false"                follows="left|top|right" @@ -113,7 +113,7 @@           height="430"           name="messages_layout_panel"           width="412" -         expanded_min_dim="205"> +         expanded_min_dim="225">              <panel_container               follows="all"               height="430" | 
