diff options
| -rw-r--r-- | indra/newview/llavataractions.cpp | 11 | ||||
| -rw-r--r-- | indra/newview/llavatariconctrl.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llgroupactions.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llimview.cpp | 16 | ||||
| -rw-r--r-- | indra/newview/llinventorybridge.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llinventorypanel.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/llnotificationofferhandler.cpp | 4 | ||||
| -rw-r--r-- | indra/newview/llpanellandmarks.cpp | 1 | ||||
| -rw-r--r-- | indra/newview/llpanelteleporthistory.cpp | 13 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 7 | 
10 files changed, 71 insertions, 9 deletions
| diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 67ffe54b7e..3fc37aa3d5 100644 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -178,7 +178,10 @@ void LLAvatarActions::startIM(const LLUUID& id)  	std::string name;  	gCacheName->getFullName(id, name);  	LLUUID session_id = gIMMgr->addSession(name, IM_NOTHING_SPECIAL, id); -	LLIMFloater::show(session_id); +	if (session_id != LLUUID::null) +	{ +		LLIMFloater::show(session_id); +	}  	make_ui_sound("UISndStartIM");  } @@ -191,7 +194,11 @@ void LLAvatarActions::startConference(const std::vector<LLUUID>& ids)  	{  		id_array.push_back(*it);  	} -	gIMMgr->addSession("Friends Conference", IM_SESSION_CONFERENCE_START, ids[0], id_array); +	LLUUID session_id = gIMMgr->addSession("Friends Conference", IM_SESSION_CONFERENCE_START, ids[0], id_array); +	if (session_id != LLUUID::null) +	{ +		LLIMFloater::show(session_id); +	}  	make_ui_sound("UISndStartIM");  } diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp index b56e8d1ec2..0ee3e78409 100644 --- a/indra/newview/llavatariconctrl.cpp +++ b/indra/newview/llavatariconctrl.cpp @@ -44,6 +44,7 @@  #include "llcachename.h"  #include "llagentdata.h" +#include "llimfloater.h"  #define MENU_ITEM_VIEW_PROFILE 0  #define MENU_ITEM_SEND_IM 1 @@ -354,7 +355,11 @@ void LLAvatarIconCtrl::onAvatarIconContextMenuItemClicked(const LLSD& userdata)  		name.append(" ");  		name.append(getLastName()); -		gIMMgr->addSession(name, IM_NOTHING_SPECIAL, id); +		LLUUID session_id = gIMMgr->addSession(name, IM_NOTHING_SPECIAL, id); +		if (session_id != LLUUID::null) +		{ +			LLIMFloater::show(session_id); +		}  	}  	else if (level == "add")  	{ diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp index c46eedbef2..e60bde9fd8 100644 --- a/indra/newview/llgroupactions.cpp +++ b/indra/newview/llgroupactions.cpp @@ -43,6 +43,7 @@  #include "llimview.h" // for gIMMgr  #include "llsidetray.h"  #include "llstatusbar.h"	// can_afford_transaction() +#include "llimfloater.h"  //  // Globals @@ -279,10 +280,14 @@ void LLGroupActions::startChat(const LLUUID& group_id)  	LLGroupData group_data;  	if (gAgent.getGroupData(group_id, group_data))  	{ -		gIMMgr->addSession( +		LLUUID session_id = gIMMgr->addSession(  			group_data.mName,  			IM_SESSION_GROUP_START,  			group_id); +		if (session_id != LLUUID::null) +		{ +			LLIMFloater::show(session_id); +		}  		make_ui_sound("UISndStartIM");  	}  	else diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index ac5bd719e2..fdf119fbee 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -1192,10 +1192,14 @@ void LLIncomingCallDialog::processCallResponse(S32 response)  		}  		else  		{ -			gIMMgr->addSession( +			LLUUID session_id = gIMMgr->addSession(  				mPayload["session_name"].asString(),  				type,  				session_id); +			if (session_id != LLUUID::null) +			{ +				LLIMFloater::show(session_id); +			}  			std::string url = gAgent.getRegion()->getCapability(  				"ChatSessionRequest"); @@ -1279,10 +1283,14 @@ bool inviteUserResponse(const LLSD& notification, const LLSD& response)  			}  			else  			{ -				gIMMgr->addSession( +				LLUUID session_id = gIMMgr->addSession(  					payload["session_name"].asString(),  					type,  					session_id); +				if (session_id != LLUUID::null) +				{ +					LLIMFloater::show(session_id); +				}  				std::string url = gAgent.getRegion()->getCapability(  					"ChatSessionRequest"); @@ -1548,6 +1556,10 @@ LLUUID LLIMMgr::addP2PSession(const std::string& name,  							const std::string& caller_uri)  {  	LLUUID session_id = addSession(name, IM_NOTHING_SPECIAL, other_participant_id); +	if (session_id != LLUUID::null) +	{ +		LLIMFloater::show(session_id); +	}  	LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(session_id);  	if (speaker_mgr) diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index b9a25d5dc7..ef61c45d4d 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -97,6 +97,7 @@  #include "llfloateropenobject.h"  #include "lltrans.h"  #include "llappearancemgr.h" +#include "llimfloater.h"  using namespace LLOldEvents; @@ -3347,7 +3348,11 @@ void LLCallingCardBridge::performAction(LLFolderView* folder, LLInventoryModel*  		{  			std::string callingcard_name;  			gCacheName->getFullName(item->getCreatorUUID(), callingcard_name); -			gIMMgr->addSession(callingcard_name, IM_NOTHING_SPECIAL, item->getCreatorUUID()); +			LLUUID session_id = gIMMgr->addSession(callingcard_name, IM_NOTHING_SPECIAL, item->getCreatorUUID()); +			if (session_id != LLUUID::null) +			{ +				LLIMFloater::show(session_id); +			}  		}  	}  	else if ("lure" == action) diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index 178e7d0823..80710610d4 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -86,6 +86,7 @@  #include "llviewerwindow.h"  #include "llvoavatarself.h"  #include "llwearablelist.h" +#include "llimfloater.h"  static LLDefaultChildRegistry::Register<LLInventoryPanel> r("inventory_panel"); @@ -800,7 +801,11 @@ bool LLInventoryPanel::beginIMSession()  		name = llformat("Session %d", session_num++);  	} -	gIMMgr->addSession(name, type, members[0], members); +	LLUUID session_id = gIMMgr->addSession(name, type, members[0], members); +	if (session_id != LLUUID::null) +	{ +		LLIMFloater::show(session_id); +	}  	return true;  } diff --git a/indra/newview/llnotificationofferhandler.cpp b/indra/newview/llnotificationofferhandler.cpp index 8e3a44682c..75ef5208e7 100644 --- a/indra/newview/llnotificationofferhandler.cpp +++ b/indra/newview/llnotificationofferhandler.cpp @@ -99,6 +99,10 @@ bool LLOfferHandler::processNotification(const LLSD& notify)  			session_id = LLIMMgr::instance().addSession(  					notification->getSubstitutions()["NAME"], IM_NOTHING_SPECIAL,  					notification->getPayload()["from_id"]); +			if (session_id != LLUUID::null) +			{ +				LLIMFloater::show(session_id); +			}  		}  		LLIMMgr::instance().addMessage(session_id, LLUUID(),  				notification->getSubstitutions()["NAME"], diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index 62dc881738..9840c91158 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -499,6 +499,7 @@ void LLLandmarksPanel::updateListCommands()  	// keep Options & Add Landmark buttons always enabled  	mListCommands->childSetEnabled(ADD_FOLDER_BUTTON_NAME, add_folder_enabled);  	mListCommands->childSetEnabled(TRASH_BUTTON_NAME, trash_enabled); +	mListCommands->childSetEnabled(OPTIONS_BUTTON_NAME,getCurSelectedItem() != NULL);  }  void LLLandmarksPanel::onActionsButtonClick() diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp index a34f029095..58ecfb60c2 100644 --- a/indra/newview/llpanelteleporthistory.cpp +++ b/indra/newview/llpanelteleporthistory.cpp @@ -406,6 +406,7 @@ void LLTeleportHistoryPanel::getNextTab(const LLDate& item_date, S32& tab_idx, L  		if (tab_idx <= tabs_cnt - 4)  		{ +			// All tabs, except last three, are tabs for one day, so just push tab_date back by one day  			tab_date.secondsSinceEpoch(tab_date.secondsSinceEpoch() - seconds_in_day);  		}  		else if (tab_idx == tabs_cnt - 3) // 6 day and older, low boundary is 1 month @@ -442,6 +443,7 @@ void LLTeleportHistoryPanel::getNextTab(const LLDate& item_date, S32& tab_idx, L  	}  } +// Called to add items, no more, than ADD_LIMIT at time  void LLTeleportHistoryPanel::refresh()  {  	if (!mHistoryAccordion) @@ -452,12 +454,16 @@ void LLTeleportHistoryPanel::refresh()  	const LLTeleportHistoryStorage::slurl_list_t& items = mTeleportHistory->getItems(); +	// Setting tab_boundary_date to "now", so date from any item would be earlier, than boundary. +	// That leads to call to getNextTab to get right tab_idx in first pass  	LLDate tab_boundary_date =  LLDate::now(); +  	LLFlatListView* curr_flat_view = NULL;  	U32 added_items = 0;  	while (mCurrentItem >= 0)  	{ +		// Filtering  		std::string landmark_title = items[mCurrentItem].mTitle;  		LLStringUtil::toUpper(landmark_title); @@ -470,10 +476,14 @@ void LLTeleportHistoryPanel::refresh()  			continue;  		} +		// Checking whether date of item is earlier, than tab_boundary_date. +		// In that case, item should be added to another tab  		const LLDate &date = items[mCurrentItem].mDate;  		if (date < tab_boundary_date)  		{ +			// Getting apropriate tab_idx for this and subsequent items, +			// tab_boundary_date would be earliest possible date for this tab  			S32 tab_idx = 0;  			getNextTab(date, tab_idx, tab_boundary_date); @@ -580,6 +590,9 @@ void LLTeleportHistoryPanel::replaceItem(S32 removed_index)  void LLTeleportHistoryPanel::showTeleportHistory()  {  	mDirty = true; + +	// Starting to add items from last one, in reverse order, +	// since TeleportHistory keeps most recent item at the end  	mCurrentItem = mTeleportHistory->getItems().size() - 1;  	for (S32 n = mItemContainers.size() - 1; n >= 0; --n) diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index b30acd47f1..55b1fa6b49 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -210,6 +210,7 @@  #include "lltexlayer.h"  #include "llappearancemgr.h" +#include "llimfloater.h"  using namespace LLVOAvatarDefines; @@ -6265,9 +6266,13 @@ class LLAvatarSendIM : public view_listener_t  			//EInstantMessage type = have_agent_callingcard(gLastHitObjectID)  			//	? IM_SESSION_ADD : IM_SESSION_CARDLESS_START; -			gIMMgr->addSession(name, +			LLUUID session_id = gIMMgr->addSession(name,  								IM_NOTHING_SPECIAL,  								avatar->getID()); +			if (session_id != LLUUID::null) +			{ +				LLIMFloater::show(session_id); +			}  		}  		return true;  	} | 
