summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelavatar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanelavatar.cpp')
-rw-r--r--indra/newview/llpanelavatar.cpp66
1 files changed, 41 insertions, 25 deletions
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index 2254684f21..f29a7b25a7 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -38,6 +38,7 @@
#include "llavatarconstants.h" // AVATAR_ONLINE
#include "llcallingcard.h"
#include "llcombobox.h"
+#include "lldateutil.h" // ageFromDate()
#include "llimview.h"
#include "lltexteditor.h"
#include "lltexturectrl.h"
@@ -119,7 +120,7 @@ BOOL LLDropTarget::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
static LLDefaultChildRegistry::Register<LLDropTarget> r("drop_target");
static LLRegisterPanelClassWrapper<LLPanelAvatarProfile> t_panel_profile("panel_profile");
-static LLRegisterPanelClassWrapper<LLPanelAvatarMeProfile> t_panel_me_profile("panel_me_profile");
+static LLRegisterPanelClassWrapper<LLPanelMyProfile> t_panel_my_profile("panel_my_profile");
static LLRegisterPanelClassWrapper<LLPanelAvatarNotes> t_panel_notes("panel_notes");
//-----------------------------------------------------------------------------
@@ -339,6 +340,7 @@ BOOL LLPanelAvatarProfile::postBuild()
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
registrar.add("Profile.Pay", boost::bind(&LLPanelAvatarProfile::pay, this));
+ registrar.add("Profile.Share", boost::bind(&LLPanelAvatarProfile::share, this));
mProfileMenu = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_profile_overflow.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
@@ -358,7 +360,7 @@ void LLPanelAvatarProfile::onOpen(const LLSD& key)
{
LLPanelProfileTab::onOpen(key);
- mGroups.erase();
+ mGroups.clear();
//Disable "Add Friend" button for friends.
childSetEnabled("add_friend", !LLAvatarActions::isFriend(getAvatarId()));
@@ -390,7 +392,7 @@ void LLPanelAvatarProfile::resetControls()
void LLPanelAvatarProfile::resetData()
{
- mGroups.erase();
+ mGroups.clear();
childSetValue("2nd_life_pic",LLUUID::null);
childSetValue("real_world_pic",LLUUID::null);
childSetValue("online_status",LLStringUtil::null);
@@ -442,23 +444,29 @@ void LLPanelAvatarProfile::processGroupProperties(const LLAvatarGroups* avatar_g
// Group properties may arrive in two callbacks, we need to save them across
// different calls. We can't do that in textbox as textbox may change the text.
- std::string groups = mGroups;
LLAvatarGroups::group_list_t::const_iterator it = avatar_groups->group_list.begin();
const LLAvatarGroups::group_list_t::const_iterator it_end = avatar_groups->group_list.end();
- if(groups.empty() && it_end != it)
- {
- groups = (*it).group_name;
- ++it;
- }
for(; it_end != it; ++it)
{
LLAvatarGroups::LLGroupData group_data = *it;
- groups += ", ";
- groups += group_data.group_name;
+
+ // Check if there is no duplicates for this group
+ if (std::find(mGroups.begin(), mGroups.end(), group_data.group_name) == mGroups.end())
+ mGroups.push_back(group_data.group_name);
+ }
+
+ // Creating string, containing group list
+ std::string groups = "";
+ for (group_list_t::const_iterator it = mGroups.begin(); it != mGroups.end(); ++it)
+ {
+ if (it != mGroups.begin())
+ groups += ", ";
+
+ groups += *it;
}
- mGroups = groups;
- childSetValue("sl_groups",mGroups);
+
+ childSetValue("sl_groups", groups);
}
void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
@@ -466,8 +474,11 @@ void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
//remove avatar id from cache to get fresh info
LLAvatarIconIDCache::getInstance()->remove(avatar_data->avatar_id);
-
- childSetValue("register_date", avatar_data->born_on );
+ LLStringUtil::format_map_t args;
+ args["[REG_DATE]"] = avatar_data->born_on;
+ args["[AGE]"] = LLDateUtil::ageFromDate( avatar_data->born_on, LLDate::now());
+ std::string register_date = getString("RegisterDateFormat", args);
+ childSetValue("register_date", register_date );
childSetValue("sl_description_edit", avatar_data->about_text);
childSetValue("fl_description_edit",avatar_data->fl_about_text);
childSetValue("2nd_life_pic", avatar_data->image_id);
@@ -525,6 +536,11 @@ void LLPanelAvatarProfile::pay()
LLAvatarActions::pay(getAvatarId());
}
+void LLPanelAvatarProfile::share()
+{
+ LLAvatarActions::share(getAvatarId());
+}
+
void LLPanelAvatarProfile::onUrlTextboxClicked(const std::string& url)
{
LLWeb::loadURL(url);
@@ -585,19 +601,19 @@ void LLPanelAvatarProfile::onOverflowButtonClicked()
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
-LLPanelAvatarMeProfile::LLPanelAvatarMeProfile()
+LLPanelMyProfile::LLPanelMyProfile()
: LLPanelAvatarProfile()
{
}
-BOOL LLPanelAvatarMeProfile::postBuild()
+BOOL LLPanelMyProfile::postBuild()
{
LLPanelAvatarProfile::postBuild();
mStatusCombobox = getChild<LLComboBox>("status_combo");
- childSetCommitCallback("status_combo", boost::bind(&LLPanelAvatarMeProfile::onStatusChanged, this), NULL);
- childSetCommitCallback("status_me_message_text", boost::bind(&LLPanelAvatarMeProfile::onStatusMessageChanged, this), NULL);
+ childSetCommitCallback("status_combo", boost::bind(&LLPanelMyProfile::onStatusChanged, this), NULL);
+ childSetCommitCallback("status_me_message_text", boost::bind(&LLPanelMyProfile::onStatusMessageChanged, this), NULL);
resetControls();
resetData();
@@ -605,12 +621,12 @@ BOOL LLPanelAvatarMeProfile::postBuild()
return TRUE;
}
-void LLPanelAvatarMeProfile::onOpen(const LLSD& key)
+void LLPanelMyProfile::onOpen(const LLSD& key)
{
LLPanelProfileTab::onOpen(key);
}
-void LLPanelAvatarMeProfile::processProfileProperties(const LLAvatarData* avatar_data)
+void LLPanelMyProfile::processProfileProperties(const LLAvatarData* avatar_data)
{
fillCommonData(avatar_data);
@@ -621,7 +637,7 @@ void LLPanelAvatarMeProfile::processProfileProperties(const LLAvatarData* avatar
fillAccountStatus(avatar_data);
}
-void LLPanelAvatarMeProfile::fillStatusData(const LLAvatarData* avatar_data)
+void LLPanelMyProfile::fillStatusData(const LLAvatarData* avatar_data)
{
std::string status;
if (gAgent.getAFK())
@@ -640,7 +656,7 @@ void LLPanelAvatarMeProfile::fillStatusData(const LLAvatarData* avatar_data)
mStatusCombobox->setValue(status);
}
-void LLPanelAvatarMeProfile::resetControls()
+void LLPanelMyProfile::resetControls()
{
childSetVisible("status_panel", false);
childSetVisible("profile_buttons_panel", false);
@@ -650,7 +666,7 @@ void LLPanelAvatarMeProfile::resetControls()
childSetVisible("profile_me_buttons_panel", true);
}
-void LLPanelAvatarMeProfile::onStatusChanged()
+void LLPanelMyProfile::onStatusChanged()
{
LLSD::String status = mStatusCombobox->getValue().asString();
@@ -672,7 +688,7 @@ void LLPanelAvatarMeProfile::onStatusChanged()
}
}
-void LLPanelAvatarMeProfile::onStatusMessageChanged()
+void LLPanelMyProfile::onStatusMessageChanged()
{
updateData();
}