diff options
| author | Cho <cho@lindenlab.com> | 2013-04-03 04:40:11 +0100 | 
|---|---|---|
| committer | Cho <cho@lindenlab.com> | 2013-04-03 04:40:11 +0100 | 
| commit | 06d06454b25fd6b97d81076ce93b573fc53c36f9 (patch) | |
| tree | cf6ebc25bb6a665b2146e1eb5db092d466ba3123 /indra | |
| parent | e35becd07157f73678415bf2e741d06594acabe8 (diff) | |
made Facebook Friends list auto-populate
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llpanelpeople.cpp | 23 | ||||
| -rw-r--r-- | indra/newview/llpanelpeople.h | 2 | 
2 files changed, 24 insertions, 1 deletions
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp index 8fc1d378db..6a83e84da1 100644 --- a/indra/newview/llpanelpeople.cpp +++ b/indra/newview/llpanelpeople.cpp @@ -539,6 +539,7 @@ private:  LLPanelPeople::LLPanelPeople()  	:	LLPanel(),  		mConnectedToFbc(false), +		mTryToConnectToFbc(true),  		mFilterSubString(LLStringUtil::null),  		mFilterSubStringOrig(LLStringUtil::null),  		mFilterEditor(NULL), @@ -633,7 +634,7 @@ BOOL LLPanelPeople::postBuild()  	mMiniMap = (LLNetMap*)getChildView("Net Map",true);  	mMiniMap->setToolTipMsg(gSavedSettings.getBOOL("DoubleClickTeleport") ?   		getString("AltMiniMapToolTipMsg") :	getString("MiniMapToolTipMsg")); - +	  	mRecentList = getChild<LLPanel>(RECENT_TAB_NAME)->getChild<LLAvatarList>("avatar_list");  	mRecentList->setNoItemsCommentText(getString("no_recent_people"));  	mRecentList->setNoItemsMsg(getString("no_recent_people")); @@ -651,6 +652,7 @@ BOOL LLPanelPeople::postBuild()  	LLPanel * social_tab = getChild<LLPanel>(FBCTEST_TAB_NAME);  	mFacebookFriends = social_tab->getChild<LLSocialList>("facebook_friends"); +	social_tab->setVisibleCallback(boost::bind(&Updater::setActive, mFbcTestListUpdater, _2));  	setSortOrder(mRecentList,		(ESortOrder)gSavedSettings.getU32("RecentPeopleSortOrder"),	false);  	setSortOrder(mAllFriendList,	(ESortOrder)gSavedSettings.getU32("FriendsSortOrder"),		false); @@ -922,6 +924,17 @@ void LLPanelPeople::updateFbcTestList()  			mFbcTestListUpdater->setActive(false);  		}  	} +	else if (mTryToConnectToFbc) +	{	 +		// try to reconnect to facebook! +		tryToReconnectToFacebook(); + +		// don't try again +		mTryToConnectToFbc = false; +		 +		// stop updating +		mFbcTestListUpdater->setActive(false); +	}  }  void LLPanelPeople::buttonSetVisible(std::string btn_name, BOOL visible) @@ -1829,6 +1842,14 @@ void LLPanelPeople::loadFacebookFriends()  	LLHTTPClient::get(FBC_SERVICES_URL + "/agent/" + gAgentID.asString() + "/fbc/friends", new FacebookFriendsResponder(this));  } +void LLPanelPeople::tryToReconnectToFacebook() +{ +	if (!mConnectedToFbc) +	{ +		LLHTTPClient::get(FBC_SERVICES_URL + "/agent/" + gAgentID.asString() + "/fbc/connected", new FacebookConnectedResponder(this, false)); +	} +} +  void LLPanelPeople::connectToFacebook(const std::string& auth_code)  {  	LLSD body; diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h index d61eb80f57..2ac83c3677 100644 --- a/indra/newview/llpanelpeople.h +++ b/indra/newview/llpanelpeople.h @@ -62,10 +62,12 @@ public:  	void showFacebookFriends(const LLSD& friends);  	void hideFacebookFriends();  	void loadFacebookFriends(); +	void tryToReconnectToFacebook();  	void connectToFacebook(const std::string& auth_code);  	void disconnectFromFacebook();  	bool mConnectedToFbc; +	bool mTryToConnectToFbc;  	// internals  	class Updater;  | 
