diff options
| author | MaximB ProductEngine <mberezhnoy@productengine.com> | 2012-12-06 18:23:30 +0200 | 
|---|---|---|
| committer | MaximB ProductEngine <mberezhnoy@productengine.com> | 2012-12-06 18:23:30 +0200 | 
| commit | 272d438ce299fab146e9a30046b7591de7467511 (patch) | |
| tree | 4178d62e1a373cd954209e9c58fdd001e545cdb0 | |
| parent | 5f6d55eb1b264780fbb703b115e9b4428cc4ee2b (diff) | |
CHUI-576 (Group moderation menus do not work in torn off dialogs)
| -rw-r--r-- | indra/newview/llfloaterimcontainer.cpp | 20 | ||||
| -rw-r--r-- | indra/newview/llfloaterimsessiontab.cpp | 12 | ||||
| -rw-r--r-- | indra/newview/llfloaterimsessiontab.h | 1 | 
3 files changed, 26 insertions, 7 deletions
| diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp index c1daea0aeb..257c17a058 100644 --- a/indra/newview/llfloaterimcontainer.cpp +++ b/indra/newview/llfloaterimcontainer.cpp @@ -850,8 +850,16 @@ const LLConversationItem * LLFloaterIMContainer::getCurSelectedViewModelItem()          mConversationsRoot->getCurSelectedItem() &&           mConversationsRoot->getCurSelectedItem()->getViewModelItem())      { -        conversationItem = static_cast<LLConversationItem *>(mConversationsRoot->getCurSelectedItem()->getViewModelItem()); -    } +		LLFloaterIMSessionTab *selectedSession = LLFloaterIMSessionTab::getConversation(mSelectedSession); +		if (selectedSession && selectedSession->isTornOff()) +		{ +			conversationItem = selectedSession->getCurSelectedViewModelItem(); +		} +		else +		{ +			conversationItem = static_cast<LLConversationItem *>(mConversationsRoot->getCurSelectedItem()->getViewModelItem()); +		} +	}      return conversationItem;  } @@ -1532,21 +1540,19 @@ void LLFloaterIMContainer::moderateVoiceParticipant(const LLUUID& avatar_id, boo  LLSpeakerMgr * LLFloaterIMContainer::getSpeakerMgrForSelectedParticipant()  { -	LLFolderViewItem * selected_folder_itemp = mConversationsRoot->getCurSelectedItem(); -	if (NULL == selected_folder_itemp) +	LLFolderViewItem *selectedItem = mConversationsRoot->getCurSelectedItem(); +	if (NULL == selectedItem)  	{  		llwarns << "Current selected item is null" << llendl;  		return NULL;  	} -	LLFolderViewFolder * conversation_itemp = selected_folder_itemp->getParentFolder(); -  	conversations_widgets_map::const_iterator iter = mConversationsWidgets.begin();  	conversations_widgets_map::const_iterator end = mConversationsWidgets.end();  	const LLUUID * conversation_uuidp = NULL;  	while(iter != end)  	{ -		if (iter->second == conversation_itemp) +		if (iter->second == selectedItem || iter->second == selectedItem->getParentFolder())  		{  			conversation_uuidp = &iter->first;  			break; diff --git a/indra/newview/llfloaterimsessiontab.cpp b/indra/newview/llfloaterimsessiontab.cpp index d04fa2674d..85d1b1fb49 100644 --- a/indra/newview/llfloaterimsessiontab.cpp +++ b/indra/newview/llfloaterimsessiontab.cpp @@ -831,4 +831,16 @@ void LLFloaterIMSessionTab::getSelectedUUIDs(uuid_vec_t& selected_uuids)      }  } +LLConversationItem* LLFloaterIMSessionTab::getCurSelectedViewModelItem() +{ +	LLConversationItem *conversationItem = NULL; +	if(mConversationsRoot &&  +        mConversationsRoot->getCurSelectedItem() &&  +        mConversationsRoot->getCurSelectedItem()->getViewModelItem()) +	{ +		conversationItem = static_cast<LLConversationItem *>(mConversationsRoot->getCurSelectedItem()->getViewModelItem()) ; +	} + +	return conversationItem; +} diff --git a/indra/newview/llfloaterimsessiontab.h b/indra/newview/llfloaterimsessiontab.h index 8efa0955fc..4851904074 100644 --- a/indra/newview/llfloaterimsessiontab.h +++ b/indra/newview/llfloaterimsessiontab.h @@ -94,6 +94,7 @@ public:  	virtual void onTearOffClicked();  	virtual void updateMessages() {} +	LLConversationItem* getCurSelectedViewModelItem();  protected: | 
