summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorSergey Borushevsky <sborushevsky@productengine.com>2009-11-25 20:46:53 +0200
committerSergey Borushevsky <sborushevsky@productengine.com>2009-11-25 20:46:53 +0200
commitb19b63ad8cba7b1c3e44c4084313103765af1917 (patch)
treead49895f73f42f67331c324d5a6fe764a7bf34a4 /indra
parentcf77bc11772c41546d1f5f1a0bda1bf36506e37b (diff)
Fixed minor bug EXT-2744 (IM window: Add Friend is disabled after removing friendship with a friends)
--HG-- branch : product-engine
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/llpanelimcontrolpanel.cpp9
-rw-r--r--indra/newview/llpanelimcontrolpanel.h6
2 files changed, 14 insertions, 1 deletions
diff --git a/indra/newview/llpanelimcontrolpanel.cpp b/indra/newview/llpanelimcontrolpanel.cpp
index 40319d949d..ed651790f0 100644
--- a/indra/newview/llpanelimcontrolpanel.cpp
+++ b/indra/newview/llpanelimcontrolpanel.cpp
@@ -120,6 +120,7 @@ LLPanelIMControlPanel::LLPanelIMControlPanel()
LLPanelIMControlPanel::~LLPanelIMControlPanel()
{
+ LLAvatarTracker::instance().removeParticularFriendObserver(mAvatarID, this);
}
BOOL LLPanelIMControlPanel::postBuild()
@@ -175,7 +176,9 @@ void LLPanelIMControlPanel::setSessionId(const LLUUID& session_id)
LLIMModel& im_model = LLIMModel::instance();
+ LLAvatarTracker::instance().removeParticularFriendObserver(mAvatarID, this);
mAvatarID = im_model.getOtherParticipantID(session_id);
+ LLAvatarTracker::instance().addParticularFriendObserver(mAvatarID, this);
// Disable "Add friend" button for friends.
childSetEnabled("add_friend_btn", !LLAvatarActions::isFriend(mAvatarID));
@@ -204,6 +207,12 @@ void LLPanelIMControlPanel::setSessionId(const LLUUID& session_id)
}
}
+//virtual
+void LLPanelIMControlPanel::changed(U32 mask)
+{
+ childSetEnabled("add_friend_btn", !LLAvatarActions::isFriend(mAvatarID));
+}
+
void LLPanelIMControlPanel::nameUpdatedCallback(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group)
{
if ( id == mAvatarID )
diff --git a/indra/newview/llpanelimcontrolpanel.h b/indra/newview/llpanelimcontrolpanel.h
index 7bfc432ef2..a590232a0b 100644
--- a/indra/newview/llpanelimcontrolpanel.h
+++ b/indra/newview/llpanelimcontrolpanel.h
@@ -35,6 +35,7 @@
#include "llpanel.h"
#include "llvoicechannel.h"
+#include "llcallingcard.h"
class LLSpeakerMgr;
class LLAvatarList;
@@ -66,7 +67,7 @@ private:
};
-class LLPanelIMControlPanel : public LLPanelChatControlPanel
+class LLPanelIMControlPanel : public LLPanelChatControlPanel, LLFriendObserver
{
public:
LLPanelIMControlPanel();
@@ -76,6 +77,9 @@ public:
void setSessionId(const LLUUID& session_id);
+ // LLFriendObserver trigger
+ virtual void changed(U32 mask);
+
protected:
void nameUpdatedCallback(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group);