Open request friendship dialog on dropping an agent onto the legacy contacts list via DaD

master
Ansariel 2015-07-13 17:38:06 +02:00
parent cb73b5623b
commit 7a81e57a34
2 changed files with 33 additions and 0 deletions

View File

@ -132,6 +132,7 @@ BOOL FSFloaterContacts::postBuild()
mFriendsList->setCommitOnSelectionChange(TRUE);
mFriendsList->setCommitCallback(boost::bind(&FSFloaterContacts::onSelectName, this));
mFriendsList->setDoubleClickCallback(boost::bind(&FSFloaterContacts::onImButtonClicked, this));
mFriendsList->setHandleDaDCallback(boost::bind(&FSFloaterContacts::handleFriendsListDragAndDrop, this, _1, _2, _3, _4, _5, _6, _7, _8));
mFriendsList->setContextMenu(&gFSContactsFriendsMenu);
mFriendsTab->childSetAction("im_btn", boost::bind(&FSFloaterContacts::onImButtonClicked, this));
@ -1281,4 +1282,31 @@ void FSFloaterContacts::disconnectAvatarNameCacheConnection(const LLUUID& reques
}
}
BOOL FSFloaterContacts::handleFriendsListDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
EDragAndDropType cargo_type,
void* cargo_data,
EAcceptance* accept,
std::string& tooltip_msg)
{
if (cargo_type == DAD_PERSON)
{
LLUUID* av_id = static_cast<LLUUID*>(cargo_data);
if (av_id && !LLAvatarActions::isFriend(*av_id))
{
*accept = ACCEPT_YES_SINGLE;
if (drop)
{
LLAvatarActions::requestFriendshipDialog(*av_id);
}
}
}
else
{
*accept = ACCEPT_NO;
}
return TRUE;
}
// EOF

View File

@ -120,6 +120,11 @@ private:
// misc callbacks
static void onAvatarPicked(const uuid_vec_t& ids, const std::vector<LLAvatarName> names);
void onColumnDisplayModeChanged(const std::string& settings_name = "");
BOOL handleFriendsListDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
EDragAndDropType cargo_type,
void* cargo_data,
EAcceptance* accept,
std::string& tooltip_msg);
// friend buttons
void onViewProfileButtonClicked();