From 05aec0a49fe36710c054cd52a5f9fac559e67ef2 Mon Sep 17 00:00:00 2001 From: ziree Date: Tue, 28 Feb 2012 20:41:49 +0100 Subject: [PATCH] Comm/Friends and Comm/Groups menu items now open the respective communications panels, not the old sidebar panels. --- indra/newview/fscontactsfloater.cpp | 21 +++++++++++++++++++-- indra/newview/fscontactsfloater.h | 2 ++ indra/newview/llviewermenu.cpp | 25 +++++++++++++++++++++---- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/indra/newview/fscontactsfloater.cpp b/indra/newview/fscontactsfloater.cpp index 1365fe04c8..4f1f7cf131 100644 --- a/indra/newview/fscontactsfloater.cpp +++ b/indra/newview/fscontactsfloater.cpp @@ -193,16 +193,33 @@ void FSFloaterContacts::onOpen(const LLSD& key) floater_container->addFloater(this, TRUE); } - if (key.asString() == "friends") + openTab(key.asString()); +} + +void FSFloaterContacts::openTab(const std::string& name) +{ + BOOL visible=FALSE; + + if(name=="friends") { + visible=TRUE; childShowTab("friends_and_groups", "friends_panel"); } - else if (key.asString() == "groups") + else if(name=="groups") { + visible=TRUE; childShowTab("friends_and_groups", "groups_panel"); mGroupsTab->getChild("groupcount")->setTextArg("[COUNT]", llformat("%d", gAgent.mGroups.count())); // items.end()));// mGroupsTab->getChild("groupcount")->setTextArg("[MAX]", llformat("%d", gMaxAgentGroups)); } + + if(visible) + { + if(getHost()) + getHost()->setVisible(TRUE); + + setVisible(TRUE); + } } diff --git a/indra/newview/fscontactsfloater.h b/indra/newview/fscontactsfloater.h index bd02d5e497..5ab3c60e9b 100644 --- a/indra/newview/fscontactsfloater.h +++ b/indra/newview/fscontactsfloater.h @@ -63,6 +63,8 @@ public: static FSFloaterContacts* getInstance(); static FSFloaterContacts* findInstance(); + void openTab(const std::string& name); + void sortFriendList(); LLPanel* mFriendsTab; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index d5b94bb5cc..1bd945823b 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -133,6 +133,7 @@ // ## Zi: Texture Refresh #include "particleeditor.h" +#include "fscontactsfloater.h" // Display group list in contacts floater using namespace LLVOAvatarDefines; @@ -4027,12 +4028,28 @@ class LLTogglePanelPeopleTab : public view_listener_t LLSD param; param["people_panel_tab_name"] = panel_name; - if ( panel_name == "friends_panel" - || panel_name == "groups_panel" - || panel_name == "nearby_panel") + // Open groups and friends lists in communicate floater + // if ( panel_name == "friends_panel" + // || panel_name == "groups_panel" + // || panel_name == "nearby_panel") + // { + // return togglePeoplePanel(panel_name, param); + // } + if(panel_name=="nearby_panel") { - return togglePeoplePanel(panel_name, param); + return togglePeoplePanel(panel_name,param); } + else if(panel_name=="groups_panel") + { + FSFloaterContacts::getInstance()->openTab("groups"); + return true; + } + else if(panel_name=="friends_panel") + { + FSFloaterContacts::getInstance()->openTab("friends"); + return true; + } + // else { return false;