summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llavatarlist.cpp36
-rw-r--r--indra/newview/llavatarlist.h27
-rw-r--r--indra/newview/llpanelpeople.cpp10
-rw-r--r--indra/newview/llpanelpeople.h2
-rw-r--r--indra/newview/skins/default/xui/en/panel_people.xml36
5 files changed, 95 insertions, 16 deletions
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index 771419f60a..37de2d5793 100644
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -624,3 +624,39 @@ void LLAvalineListItem::setName(const std::string& name)
LLAvatarListItem::setAvatarToolTip(formatted_phone);
}
}
+
+/************************************************************************/
+/* class LLAvatarListSocial */
+/************************************************************************/
+
+static LLDefaultChildRegistry::Register<LLAvatarListSocial> s("avatar_list_social");
+
+LLAvatarListSocial::LLAvatarListSocial(const Params& p) : LLAvatarList(p)
+{
+
+}
+
+void LLAvatarListSocial::addSocialItem(const LLUUID& id, const std::string& name, BOOL is_online, EAddPosition pos)
+{
+ LLAvatarListItem* item = new LLAvatarListItem();
+ // This sets the name as a side effect
+ item->setAvatarId(id, mSessionID, mIgnoreOnlineStatus, false);
+ item->setAvatarName(name);
+ item->setOnline(mIgnoreOnlineStatus ? true : is_online);
+ item->showLastInteractionTime(mShowLastInteractionTime);
+
+ item->setAvatarIconVisible(mShowIcons);
+ item->setShowInfoBtn(mShowInfoBtn);
+ item->setShowProfileBtn(mShowProfileBtn);
+ item->showSpeakingIndicator(mShowSpeakingIndicator);
+ item->setShowPermissions(mShowPermissions);
+
+ item->setDoubleClickCallback(boost::bind(&LLAvatarListSocial::onItemDoubleClicked, this, _1, _2, _3, _4));
+
+ addItem(item, id, pos);
+}
+
+void LLAvatarListSocial::refresh()
+{
+
+}
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index 4814a88a79..cbe5956493 100644
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -97,10 +97,12 @@ public:
void addAvalineItem(const LLUUID& item_id, const LLUUID& session_id, const std::string& item_name);
void handleDisplayNamesOptionChanged();
-protected:
- void refresh();
+
- void addNewItem(const LLUUID& id, const std::string& name, BOOL is_online, EAddPosition pos = ADD_BOTTOM);
+protected:
+ virtual void refresh();
+ virtual void addNewItem(const LLUUID& id, const std::string& name, BOOL is_online, EAddPosition pos = ADD_BOTTOM);
+
void computeDifference(
const uuid_vec_t& vnew,
uuid_vec_t& vadded,
@@ -110,8 +112,6 @@ protected:
void onItemDoubleClicked(LLUICtrl* ctrl, S32 x, S32 y, MASK mask);
void updateAvatarNames();
-private:
-
bool isAvalineItemSelected();
bool mIgnoreOnlineStatus;
@@ -205,4 +205,21 @@ private:
bool mIsHideNumber;
};
+class LLAvatarListSocial : public LLAvatarList
+{
+ public:
+ struct Params : public LLInitParam::Block<Params, LLAvatarList::Params>
+ {
+
+ };
+
+ LLAvatarListSocial(const Params&);
+
+ void addSocialItem(const LLUUID& id, const std::string& name, BOOL is_online, EAddPosition pos = ADD_BOTTOM);
+
+ protected:
+ /*virtual*/ void refresh();
+};
+
+
#endif // LL_LLAVATARLIST_H
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index 87bede76bc..05dcdd97fa 100644
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -647,7 +647,9 @@ BOOL LLPanelPeople::postBuild()
mAllFriendList->setContextMenu(&LLPanelPeopleMenus::gNearbyMenu);
mOnlineFriendList->setContextMenu(&LLPanelPeopleMenus::gNearbyMenu);
- mFbcTestText = getChild<LLPanel>(FBCTEST_TAB_NAME)->getChild<LLTextBox>("fbctest_label");
+ LLPanel * social_tab = getChild<LLPanel>(FBCTEST_TAB_NAME);
+ social_tab->setVisibleCallback(boost::bind(&Updater::setActive, mFbcTestListUpdater, _2));
+ mFacebookFriends = social_tab->getChild<LLAvatarListSocial>("facebook_friends");
setSortOrder(mRecentList, (ESortOrder)gSavedSettings.getU32("RecentPeopleSortOrder"), false);
setSortOrder(mAllFriendList, (ESortOrder)gSavedSettings.getU32("FriendsSortOrder"), false);
@@ -1709,10 +1711,10 @@ public:
//request user to login
else
{
- LLFloaterWebContent::Params p;
- p.url("https://www.facebook.com/dialog/oauth?client_id=565771023434202&redirect_uri=" + FBC_SERVICES_URL + "/authenticate/" + gAgentID.asString());
+ LLFloaterWebContent::Params p;
+ p.url("https://www.facebook.com/dialog/oauth?client_id=565771023434202&redirect_uri=" + FBC_SERVICES_URL + "/authenticate/" + gAgentID.asString());
mPanelPeople->openFacebookWeb(p);
- }
+}
}
else
{
diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h
index 86bcac3ede..dab5d74f77 100644
--- a/indra/newview/llpanelpeople.h
+++ b/indra/newview/llpanelpeople.h
@@ -34,6 +34,7 @@
#include "llvoiceclient.h"
class LLAvatarList;
+class LLAvatarListSocial;
class LLAvatarName;
class LLFilterEditor;
class LLGroupList;
@@ -152,6 +153,7 @@ private:
LLAvatarList* mNearbyList;
LLAvatarList* mRecentList;
LLGroupList* mGroupList;
+ LLAvatarListSocial* mFacebookFriends;
LLNetMap* mMiniMap;
LLTextBox* mFbcTestText;
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index cbb6aff4ea..f3334fd767 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -585,14 +585,36 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
name="fbctest_panel"
top="0"
width="313">
- <text
- follows="all"
- height="356"
+ <accordion
+ background_visible="true"
+ bg_alpha_color="DkGray2"
+ bg_opaque_color="DkGray2"
+ follows="all"
+ height="356"
+ layout="topleft"
+ left="3"
+ name="friends_accordion"
+ top="0"
+ width="307">
+ <accordion_tab
layout="topleft"
- left="3"
- name="fbctest_label"
- top="0"
- width="307"/>
+ height="172"
+ min_height="150"
+ name="tab_facebook"
+ title="Facebook Friends">
+ <avatar_list_social
+ allow_select="true"
+ follows="all"
+ height="172"
+ layout="topleft"
+ left="0"
+ multi_select="true"
+ name="facebook_friends"
+ show_permissions_granted="true"
+ top="0"
+ width="307" />
+ </accordion_tab>
+ </accordion>
<panel
background_visible="true"
follows="left|right|bottom"