diff options
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/llcommon/llversionviewer.h | 4 | ||||
| -rw-r--r-- | indra/llui/lltextbase.cpp | 1 | ||||
| -rw-r--r-- | indra/llui/llurlaction.cpp | 14 | ||||
| -rw-r--r-- | indra/llui/llurlaction.h | 1 | ||||
| -rwxr-xr-x | indra/newview/llconversationview.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llfloaterimcontainer.cpp | 26 | ||||
| -rw-r--r-- | indra/newview/llfloaterimnearbychat.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llimview.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/menu_url_agent.xml | 7 | 
9 files changed, 54 insertions, 12 deletions
| diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index 6a5ff314e4..1554e9e665 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -28,8 +28,8 @@  #define LL_LLVERSIONVIEWER_H  const S32 LL_VERSION_MAJOR = 3; -const S32 LL_VERSION_MINOR = 4; -const S32 LL_VERSION_PATCH = 6; +const S32 LL_VERSION_MINOR = 5; +const S32 LL_VERSION_PATCH = 0;  const S32 LL_VERSION_BUILD = 0;  const char * const LL_CHANNEL = "Second Life Developer"; diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 7cee9f5b46..4bb819a7f6 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -1911,6 +1911,7 @@ void LLTextBase::createUrlContextMenu(S32 x, S32 y, const std::string &in_url)  	registrar.add("Url.Execute", boost::bind(&LLUrlAction::executeSLURL, url));  	registrar.add("Url.Teleport", boost::bind(&LLUrlAction::teleportToLocation, url));  	registrar.add("Url.ShowProfile", boost::bind(&LLUrlAction::showProfile, url)); +	registrar.add("Url.SendIM", boost::bind(&LLUrlAction::sendIM, url));  	registrar.add("Url.ShowOnMap", boost::bind(&LLUrlAction::showLocationOnMap, url));  	registrar.add("Url.CopyLabel", boost::bind(&LLUrlAction::copyLabelToClipboard, url));  	registrar.add("Url.CopyUrl", boost::bind(&LLUrlAction::copyURLToClipboard, url)); diff --git a/indra/llui/llurlaction.cpp b/indra/llui/llurlaction.cpp index fd9b3d9a6d..fd872eca4b 100644 --- a/indra/llui/llurlaction.cpp +++ b/indra/llui/llurlaction.cpp @@ -157,3 +157,17 @@ void LLUrlAction::showProfile(std::string url)  		}  	}  } + +void LLUrlAction::sendIM(std::string url) +{ +	LLURI uri(url); +	LLSD path_array = uri.pathArray(); +	if (path_array.size() == 4) +	{ +		std::string id_str = path_array.get(2).asString(); +		if (LLUUID::validate(id_str)) +		{ +			executeSLURL("secondlife:///app/agent/" + id_str + "/im"); +		} +	} +} diff --git a/indra/llui/llurlaction.h b/indra/llui/llurlaction.h index c34960b826..f5f2ceba72 100644 --- a/indra/llui/llurlaction.h +++ b/indra/llui/llurlaction.h @@ -76,6 +76,7 @@ public:  	/// if the Url specifies an SL command in the form like 'app/{cmd}/{id}/*', show its profile  	static void showProfile(std::string url); +	static void sendIM(std::string url);  	/// specify the callbacks to enable this class's functionality  	typedef boost::function<void (const std::string&)> url_callback_t; diff --git a/indra/newview/llconversationview.cpp b/indra/newview/llconversationview.cpp index 882ef64715..74b348cd81 100755 --- a/indra/newview/llconversationview.cpp +++ b/indra/newview/llconversationview.cpp @@ -567,6 +567,7 @@ BOOL LLConversationViewParticipant::handleMouseDown( S32 x, S32 y, MASK mask )      		LLFloaterIMContainer *im_container = LLFloaterReg::getTypedInstance<LLFloaterIMContainer>("im_container");      		LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::findConversation(session_id); +			im_container->setSelectedSession(session_id);  			im_container->flashConversationItemWidget(session_id,false);  			im_container->selectFloater(session_floater);  			im_container->collapseMessagesPane(false); diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index 46ec1d510d..a0c386717b 100644 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -758,11 +758,21 @@ void LLFloaterIMContainer::assignResizeLimits()  	// between the panels are merged into one      S32 number_of_visible_borders = llmin((is_conv_pane_expanded? 2 : 0) + (is_msg_pane_expanded? 2 : 0), 3);      S32 summary_width_of_visible_borders = number_of_visible_borders * LLPANEL_BORDER_WIDTH; -	S32 conv_pane_current_width = is_msg_pane_expanded -			? mConversationsPane->getRect().getWidth() -			: (is_conv_pane_expanded? mConversationsPane->getExpandedMinDim() : mConversationsPane->getMinDim()); +	S32 conv_pane_target_width = is_conv_pane_expanded? +			(is_msg_pane_expanded? +					mConversationsPane->getRect().getWidth() +					: mConversationsPane->getExpandedMinDim()) +			: mConversationsPane->getMinDim();  	S32 msg_pane_min_width  = is_msg_pane_expanded ? mMessagesPane->getExpandedMinDim() : 0; -	S32 new_min_width = conv_pane_current_width + msg_pane_min_width + summary_width_of_visible_borders; +	S32 new_min_width = conv_pane_target_width + msg_pane_min_width + summary_width_of_visible_borders; + +    if (is_conv_pane_expanded) +    { +    	// Save the conversations pane width. +	    gSavedPerAccountSettings.setS32( +	            "ConversationsListPaneWidth", +                mConversationsPane->getRect().getWidth()); +    }  	setResizeLimits(new_min_width, getMinHeight());  } @@ -1947,10 +1957,10 @@ void LLFloaterIMContainer::closeFloater(bool app_quitting/* = false*/)  	// Most of the time the user will never see this state.  	setMinimized(FALSE); -	S32 conv_pane_width = mConversationsPane->getRect().getWidth(); - -	// Save the conversations pane width before collapsing it. -	gSavedPerAccountSettings.setS32("ConversationsListPaneWidth", conv_pane_width); +	// Save the conversations pane width. +	gSavedPerAccountSettings.setS32( +			"ConversationsListPaneWidth", +			mConversationsPane->getRect().getWidth());  	LLFloater::closeFloater(app_quitting);  } diff --git a/indra/newview/llfloaterimnearbychat.cpp b/indra/newview/llfloaterimnearbychat.cpp index 02f54e76db..dfaf4bbdd6 100644 --- a/indra/newview/llfloaterimnearbychat.cpp +++ b/indra/newview/llfloaterimnearbychat.cpp @@ -353,6 +353,13 @@ BOOL LLFloaterIMNearbyChat::handleKeyHere( KEY key, MASK mask )  		sendChat(CHAT_TYPE_SHOUT);  		handled = TRUE;  	} +	else if (KEY_RETURN == key && mask == MASK_SHIFT) +	{ +		// whisper +		sendChat(CHAT_TYPE_WHISPER); +		handled = TRUE; +	} +  	if((mask == MASK_ALT) && isTornOff())  	{ diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index d69bd89f13..8f3f5145a9 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -273,7 +273,7 @@ void on_new_message(const LLSD& msg)  		}      } -    else if("openconversations" == action && !session_floater_is_open) +    else if("openconversations" == action)      {          //User is not focused on conversation containing the message          if(session_floater_not_focused) @@ -291,7 +291,8 @@ void on_new_message(const LLSD& msg)              //useMostItrusiveIMNotification will be called to notify user a message exists              if(session_id.notNull()                   && participant_id.notNull() -                && gAgent.isDoNotDisturb()) +                && gAgent.isDoNotDisturb() +				&& !session_floater_is_open)              {                  LLAvatarNameCache::get(participant_id, boost::bind(&on_avatar_name_cache_toast, _1, _2, msg));  			} diff --git a/indra/newview/skins/default/xui/en/menu_url_agent.xml b/indra/newview/skins/default/xui/en/menu_url_agent.xml index 73f0fa7979..88ae441bd3 100644 --- a/indra/newview/skins/default/xui/en/menu_url_agent.xml +++ b/indra/newview/skins/default/xui/en/menu_url_agent.xml @@ -3,6 +3,13 @@   layout="topleft"   name="Url Popup">      <menu_item_call +     label="Send IM" +     layout="topleft" +     name="show_agent"> +        <menu_item_call.on_click +         function="Url.SendIM" />         +    </menu_item_call> +    <menu_item_call       label="Show Resident Profile"       layout="topleft"       name="show_agent"> | 
