summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorIgor Borovkov <iborovkov@productengine.com>2010-01-28 15:51:49 +0200
committerIgor Borovkov <iborovkov@productengine.com>2010-01-28 15:51:49 +0200
commitf6fceac081a1f2d165679ce3eb233e97806cebe7 (patch)
treeb187c3e2ef509684e11920feb47cc302bc6718f4 /indra
parent14caf5475b8963e6b6689e96a0a7a64e13bb1887 (diff)
fixed EXT-3841 [BSI] "Send IM..." choosable in IM floater context menu
--HG-- branch : product-engine
Diffstat (limited to 'indra')
-rw-r--r--indra/llcommon/llchat.h4
-rw-r--r--indra/newview/llchathistory.cpp8
-rw-r--r--indra/newview/llimfloater.cpp1
3 files changed, 12 insertions, 1 deletions
diff --git a/indra/llcommon/llchat.h b/indra/llcommon/llchat.h
index 5af7991006..46456882ba 100644
--- a/indra/llcommon/llchat.h
+++ b/indra/llcommon/llchat.h
@@ -87,7 +87,8 @@ public:
mTimeStr(),
mPosAgent(),
mURL(),
- mChatStyle(CHAT_STYLE_NORMAL)
+ mChatStyle(CHAT_STYLE_NORMAL),
+ mSessionID()
{ }
std::string mText; // UTF-8 line of text
@@ -102,6 +103,7 @@ public:
LLVector3 mPosAgent;
std::string mURL;
EChatStyle mChatStyle;
+ LLUUID mSessionID;
};
#endif
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index d6a7edee5b..2cdbd18996 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -34,6 +34,7 @@
#include "llinstantmessage.h"
+#include "llimview.h"
#include "llchathistory.h"
#include "llpanel.h"
#include "lluictrlfactory.h"
@@ -183,6 +184,7 @@ public:
void setup(const LLChat& chat,const LLStyle::Params& style_params)
{
mAvatarID = chat.mFromID;
+ mSessionID = chat.mSessionID;
mSourceType = chat.mSourceType;
gCacheName->get(mAvatarID, FALSE, boost::bind(&LLChatHistoryHeader::nameUpdatedCallback, this, _1, _2, _3, _4));
if(chat.mFromID.isNull())
@@ -305,6 +307,11 @@ protected:
menu->setItemEnabled("Remove Friend", false);
}
+ if (mSessionID == LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, mAvatarID))
+ {
+ menu->setItemVisible("Send IM", false);
+ }
+
menu->buildDrawLabels();
menu->updateParent(LLMenuGL::sMenuContainer);
LLMenuGL::showPopup(this, menu, x, y);
@@ -344,6 +351,7 @@ protected:
std::string mFirstName;
std::string mLastName;
std::string mFrom;
+ LLUUID mSessionID;
S32 mMinUserNameWidth;
};
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 73597e7de3..c0f22fcea2 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -599,6 +599,7 @@ void LLIMFloater::updateMessages()
LLChat chat;
chat.mFromID = from_id;
+ chat.mSessionID = mSessionID;
chat.mFromName = from;
chat.mText = message;
chat.mTimeStr = time;