ACME-1335, ACME-1336 : Add info text to the Friends tab in Facebook when no friends are visible

meow-7.2.2
Merov Linden 2014-02-28 16:10:27 -08:00
parent 209ed601dd
commit 0fb59172f7
3 changed files with 59 additions and 7 deletions

View File

@ -752,6 +752,7 @@ void LLFacebookCheckinPanel::clearAndClose()
///////////////////////////
LLFacebookFriendsPanel::LLFacebookFriendsPanel() :
mFriendsStatusCaption(NULL),
mSecondLifeFriends(NULL),
mSuggestedFriends(NULL)
{
@ -764,6 +765,8 @@ LLFacebookFriendsPanel::~LLFacebookFriendsPanel()
BOOL LLFacebookFriendsPanel::postBuild()
{
mFriendsStatusCaption = getChild<LLTextBox>("facebook_friends_status");
mSecondLifeFriends = getChild<LLAvatarList>("second_life_friends");
mSecondLifeFriends->setContextMenu(&LLPanelPeopleMenus::gPeopleContextMenu);
@ -815,13 +818,42 @@ bool LLFacebookFriendsPanel::updateSuggestedFriendList()
void LLFacebookFriendsPanel::showFriendsAccordionsIfNeeded()
{
// Expand and show accordions if needed, else - hide them
getChild<LLAccordionCtrlTab>("tab_second_life_friends")->setVisible(mSecondLifeFriends->filterHasMatches());
getChild<LLAccordionCtrlTab>("tab_suggested_friends")->setVisible(mSuggestedFriends->filterHasMatches());
// Rearrange accordions
LLAccordionCtrl* accordion = getChild<LLAccordionCtrl>("friends_accordion");
accordion->arrange();
// Show / hide the status text : needs to be done *before* showing / hidding the accordions
if (!mSecondLifeFriends->filterHasMatches() && !mSuggestedFriends->filterHasMatches())
{
// Show some explanation text if the lists are empty...
mFriendsStatusCaption->setVisible(true);
if (LLFacebookConnect::instance().isConnected())
{
//...you're connected to FB but have no friends :(
mFriendsStatusCaption->setText(getString("facebook_friends_empty"));
}
else
{
//...you're not connected to FB
mFriendsStatusCaption->setText(getString("facebook_friends_no_connected"));
}
// Hide the lists
getChild<LLAccordionCtrlTab>("friends_accordion")->setVisible(false);
getChild<LLAccordionCtrlTab>("tab_second_life_friends")->setVisible(false);
getChild<LLAccordionCtrlTab>("tab_suggested_friends")->setVisible(false);
}
else
{
// We have something in the lists, hide that
mFriendsStatusCaption->setVisible(false);
// Show the lists
LLAccordionCtrl* accordion = getChild<LLAccordionCtrl>("friends_accordion");
accordion->setVisible(true);
// Expand and show accordions if needed, else - hide them
getChild<LLAccordionCtrlTab>("tab_second_life_friends")->setVisible(mSecondLifeFriends->filterHasMatches());
getChild<LLAccordionCtrlTab>("tab_suggested_friends")->setVisible(mSuggestedFriends->filterHasMatches());
// Rearrange accordions
accordion->arrange();
}
}
void LLFacebookFriendsPanel::changed(U32 mask)

View File

@ -143,6 +143,7 @@ private:
void updateFacebookList(bool visible);
bool onConnectedToFacebook(const LLSD& data);
LLTextBox * mFriendsStatusCaption;
LLAvatarList* mSecondLifeFriends;
LLAvatarList* mSuggestedFriends;
};

View File

@ -4,6 +4,12 @@
layout="topleft"
follows="all"
name="panel_facebook_friends">
<string
name="facebook_friends_empty"
value="You do not have any Facebook friend who are also Second Life resident. You can go to the Status panel and let them know you're in Second Life!" />
<string
name="facebook_friends_no_connected"
value="You're currently not connected to Facebook. Please go to the Account tab to connect and enable this feature." />
<accordion
background_visible="true"
bg_alpha_color="DkGray2"
@ -50,4 +56,17 @@
width="307" />
</accordion_tab>
</accordion>
<text
layout="topleft"
word_wrap="true"
height="64"
width="290"
follows="top|left|right"
font="SansSerif"
left="9"
name="facebook_friends_status"
top="21"
type="string">
Not connected to Facebook.
</text>
</panel>