summaryrefslogtreecommitdiff
path: root/indra/newview/llavataractions.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llavataractions.cpp')
-rw-r--r--indra/newview/llavataractions.cpp63
1 files changed, 39 insertions, 24 deletions
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index 839a84f2d2..5f90a7627f 100644
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -38,6 +38,7 @@
#include "llsd.h"
#include "lldarray.h"
#include "llnotifications.h"
+#include "llnotificationsutil.h"
#include "roles_constants.h" // for GP_MEMBER_INVITE
@@ -61,15 +62,12 @@
#include "llimfloater.h"
#include "lltrans.h"
-// callback connection to auto-call when the IM floater initializes
-boost::signals2::connection gAdhocAutoCall;
-
// static
void LLAvatarActions::requestFriendshipDialog(const LLUUID& id, const std::string& name)
{
if(id == gAgentID)
{
- LLNotifications::instance().add("AddSelfFriend");
+ LLNotificationsUtil::add("AddSelfFriend");
return;
}
@@ -83,11 +81,11 @@ void LLAvatarActions::requestFriendshipDialog(const LLUUID& id, const std::strin
{
// Old and busted server version, doesn't support friend
// requests with messages.
- LLNotifications::instance().add("AddFriend", args, payload, &callbackAddFriend);
+ LLNotificationsUtil::add("AddFriend", args, payload, &callbackAddFriend);
}
else
{
- LLNotifications::instance().add("AddFriendWithMessage", args, payload, &callbackAddFriendWithMessage);
+ LLNotificationsUtil::add("AddFriendWithMessage", args, payload, &callbackAddFriendWithMessage);
}
// add friend to recent people list
@@ -149,7 +147,7 @@ void LLAvatarActions::removeFriendsDialog(const std::vector<LLUUID>& ids)
payload["ids"].append(*it);
}
- LLNotifications::instance().add(msgType,
+ LLNotificationsUtil::add(msgType,
args,
payload,
&handleRemove);
@@ -249,8 +247,8 @@ void LLAvatarActions::startAdhocCall(const std::vector<LLUUID>& ids)
// always open IM window when connecting to voice
LLIMFloater::show(session_id);
- // start the call once the floater has fully initialized
- gAdhocAutoCall = LLIMModel::getInstance()->addSessionInitializedCallback(callbackAutoStartCall);
+ // start the call once the session has fully initialized
+ gIMMgr->autoStartCallOnStartup(session_id);
make_ui_sound("UISndStartIM");
}
@@ -324,6 +322,27 @@ void LLAvatarActions::pay(const LLUUID& id)
}
}
+//static
+void LLAvatarActions::share(const LLUUID& id)
+{
+ LLSD key;
+ LLSideTray::getInstance()->showPanel("sidepanel_inventory", key);
+
+
+ LLUUID session_id = gIMMgr->computeSessionID(IM_NOTHING_SPECIAL,id);
+
+ if (!gIMMgr->hasSession(session_id))
+ {
+ startIM(id);
+ }
+
+ if (gIMMgr->hasSession(session_id))
+ {
+ // we should always get here, but check to verify anyways
+ LLIMModel::getInstance()->addMessage(session_id, SYSTEM_FROM, LLUUID::null, LLTrans::getString("share_alert"), false);
+ }
+}
+
// static
void LLAvatarActions::toggleBlock(const LLUUID& id)
{
@@ -359,7 +378,7 @@ void LLAvatarActions::inviteToGroup(const LLUUID& id)
// static
bool LLAvatarActions::handleRemove(const LLSD& notification, const LLSD& response)
{
- S32 option = LLNotification::getSelectedOption(notification, response);
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
const LLSD& ids = notification["payload"]["ids"];
for (LLSD::array_const_iterator itr = ids.beginArray(); itr != ids.endArray(); ++itr)
@@ -393,7 +412,7 @@ bool LLAvatarActions::handleRemove(const LLSD& notification, const LLSD& respons
// static
bool LLAvatarActions::handlePay(const LLSD& notification, const LLSD& response, LLUUID avatar_id)
{
- S32 option = LLNotification::getSelectedOption(notification, response);
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if (option == 0)
{
gAgent.clearBusy();
@@ -416,7 +435,7 @@ void LLAvatarActions::callback_invite_to_group(LLUUID group_id, LLUUID id)
// static
bool LLAvatarActions::callbackAddFriendWithMessage(const LLSD& notification, const LLSD& response)
{
- S32 option = LLNotification::getSelectedOption(notification, response);
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if (option == 0)
{
requestFriendship(notification["payload"]["id"].asUUID(),
@@ -429,7 +448,7 @@ bool LLAvatarActions::callbackAddFriendWithMessage(const LLSD& notification, con
// static
bool LLAvatarActions::callbackAddFriend(const LLSD& notification, const LLSD& response)
{
- S32 option = LLNotification::getSelectedOption(notification, response);
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if (option == 0)
{
// Servers older than 1.25 require the text of the message to be the
@@ -445,17 +464,6 @@ bool LLAvatarActions::callbackAddFriend(const LLSD& notification, const LLSD& re
}
// static
-void LLAvatarActions::callbackAutoStartCall(const LLSD& data)
-{
- // start the adhoc voice call now the IM panel has initialized
- LLUUID session_id = data["session_id"].asUUID();
- gIMMgr->startCall(session_id);
-
- // and deschedule this callback as its work is done now
- gAdhocAutoCall.disconnect();
-}
-
-// static
void LLAvatarActions::requestFriendship(const LLUUID& target_id, const std::string& target_name, const std::string& message)
{
const LLUUID calling_card_folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_CALLINGCARD);
@@ -465,6 +473,13 @@ void LLAvatarActions::requestFriendship(const LLUUID& target_id, const std::stri
IM_ONLINE,
IM_FRIENDSHIP_OFFERED,
calling_card_folder_id);
+
+ LLSD args;
+ args["TO_NAME"] = target_name;
+ LLSD payload;
+ payload["SESSION_NAME"] = target_name;
+ payload["SUPPRES_TOST"] = true;
+ LLNotificationsUtil::add("FriendshipOffered", args, payload);
}
//static