Merge branch 'DRTVWR-591-maint-X' of https://github.com/secondlife/viewer
# Conflicts: # indra/newview/llavatarpropertiesprocessor.cppmaster
commit
412a751f39
|
|
@ -160,7 +160,10 @@ public:
|
|||
|
||||
void processProperties(void* data, EAvatarProcessorType type)
|
||||
{
|
||||
if (APT_PROPERTIES_LEGACY == type)
|
||||
if (!data)
|
||||
return;
|
||||
|
||||
if (APT_PROPERTIES == type)
|
||||
{
|
||||
LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data);
|
||||
if (avatar_data)
|
||||
|
|
@ -169,6 +172,12 @@ public:
|
|||
LLAvatarPropertiesProcessor::getInstance()->removeObserver(avatar_data->avatar_id, this);
|
||||
}
|
||||
}
|
||||
else if (APT_PROPERTIES_LEGACY == type)
|
||||
{
|
||||
LLAvatarData avatar_data(*static_cast<LLAvatarLegacyData*>(data));
|
||||
mParent->displayAvatarDetails(&avatar_data);
|
||||
LLAvatarPropertiesProcessor::getInstance()->removeObserver(avatar_data.avatar_id, this);
|
||||
}
|
||||
if (APT_CLASSIFIED_INFO == type)
|
||||
{
|
||||
LLAvatarClassifiedInfo* c_info = static_cast<LLAvatarClassifiedInfo*>(data);
|
||||
|
|
@ -388,7 +397,10 @@ void FSFloaterSearch::onSelectedItem(const LLUUID& selected_item, ESearchCategor
|
|||
{
|
||||
case SC_AVATAR:
|
||||
LLAvatarPropertiesProcessor::getInstance()->addObserver(selected_item, mAvatarPropertiesObserver);
|
||||
LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(selected_item);
|
||||
if (!gAgent.getRegionCapability("AgentProfile").empty())
|
||||
LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(selected_item);
|
||||
else
|
||||
LLAvatarPropertiesProcessor::getInstance()->sendAvatarLegacyPropertiesRequest(selected_item);
|
||||
break;
|
||||
case SC_GROUP:
|
||||
mGroupPropertiesRequest = new FSSearchGroupInfoObserver(selected_item, this);
|
||||
|
|
@ -463,7 +475,7 @@ void FSFloaterSearch::displayParcelDetails(const LLParcelData& parcel_data)
|
|||
setLoadingProgress(false);
|
||||
}
|
||||
|
||||
void FSFloaterSearch::displayAvatarDetails(LLAvatarData*& avatar_data)
|
||||
void FSFloaterSearch::displayAvatarDetails(LLAvatarData* avatar_data)
|
||||
{
|
||||
if (avatar_data)
|
||||
{
|
||||
|
|
@ -480,7 +492,7 @@ void FSFloaterSearch::displayAvatarDetails(LLAvatarData*& avatar_data)
|
|||
mDetailTitle->setValue(LLTrans::getString("LoadingData"));
|
||||
mDetailDesc->setValue(avatar_data->about_text);
|
||||
mDetailSnapshot->setValue(avatar_data->image_id);
|
||||
mDetailAux1->setValue(getString("string.age", map));
|
||||
mDetailAux1->setValue(avatar_data->hide_age ? "" : getString("string.age", map));
|
||||
LLAvatarNameCache::get(avatar_data->avatar_id, boost::bind(&FSFloaterSearch::avatarNameUpdatedCallback,this, _1, _2));
|
||||
childSetVisible("people_profile_btn", true);
|
||||
childSetVisible("people_message_btn", true);
|
||||
|
|
|
|||
|
|
@ -342,7 +342,7 @@ public:
|
|||
void onSelectedEvent(const S32 selected_event);
|
||||
void displayParcelDetails(const LLParcelData& parcel_data);
|
||||
void displayClassifiedDetails(LLAvatarClassifiedInfo*& c_info);
|
||||
void displayAvatarDetails(LLAvatarData*& avatar_data);
|
||||
void displayAvatarDetails(LLAvatarData* avatar_data);
|
||||
void displayGroupDetails(LLGroupMgrGroupData*& group_data);
|
||||
void displayEventDetails(U32 eventId,
|
||||
F64 eventEpoch,
|
||||
|
|
|
|||
|
|
@ -202,11 +202,14 @@ void FSRadarEntry::processProperties(void* data, EAvatarProcessorType type)
|
|||
}
|
||||
else if (type == APT_PROPERTIES_LEGACY)
|
||||
{
|
||||
LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data);
|
||||
LLAvatarLegacyData* avatar_data = static_cast<LLAvatarLegacyData*>(data);
|
||||
if (avatar_data && avatar_data->agent_id == gAgentID && avatar_data->avatar_id == mID)
|
||||
{
|
||||
mStatus = avatar_data->flags;
|
||||
mAge = ((LLDate::now().secondsSinceEpoch() - (avatar_data->born_on).secondsSinceEpoch()) / 86400);
|
||||
if (avatar_data->hide_age)
|
||||
mAge = -2;
|
||||
else
|
||||
mAge = ((LLDate::now().secondsSinceEpoch() - (avatar_data->born_on).secondsSinceEpoch()) / 86400);
|
||||
checkAge();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -422,7 +422,7 @@ void LLAvatarPropertiesProcessor::requestAvatarPropertiesCoro(std::string cap_ur
|
|||
|
||||
void LLAvatarPropertiesProcessor::processAvatarLegacyPropertiesReply(LLMessageSystem* msg, void**)
|
||||
{
|
||||
LLAvatarData avatar_data;
|
||||
LLAvatarLegacyData avatar_data;
|
||||
std::string birth_date;
|
||||
|
||||
msg->getUUIDFast( _PREHASH_AgentData, _PREHASH_AgentID, avatar_data.agent_id);
|
||||
|
|
@ -439,7 +439,6 @@ void LLAvatarPropertiesProcessor::processAvatarLegacyPropertiesReply(LLMessageSy
|
|||
LLDateUtil::dateFromPDTString(avatar_data.born_on, birth_date);
|
||||
// Since field 'hide_age' is not supported by msg system we'd better hide the age here
|
||||
// <FS:Ansariel> OpenSim
|
||||
//avatar_data.hide_age = true;
|
||||
avatar_data.hide_age = LLGridManager::instance().isInSecondLife();
|
||||
// </FS:Ansariel>
|
||||
avatar_data.caption_index = 0;
|
||||
|
|
@ -835,5 +834,5 @@ void LLAvatarPropertiesProcessor::sendNotes(const LLUUID& avatar_id, const std::
|
|||
gAgent.sendReliableMessage();
|
||||
}
|
||||
}
|
||||
// </FS>
|
||||
|
||||
// </FS>
|
||||
|
|
@ -84,6 +84,7 @@ struct LLAvatarLegacyData
|
|||
std::string caption_text;
|
||||
std::string customer_type;
|
||||
U32 flags;
|
||||
bool hide_age; // <FS> OpenSim
|
||||
};
|
||||
|
||||
struct LLAvatarData
|
||||
|
|
@ -111,7 +112,28 @@ struct LLAvatarData
|
|||
typedef std::pair<LLUUID, std::string> pick_data_t;
|
||||
typedef std::list< pick_data_t> picks_list_t;
|
||||
picks_list_t picks_list;
|
||||
BOOL allow_publish; // <FS:Ansariel> UDP profiles
|
||||
BOOL allow_publish; // <FS:Ansariel> UDP profiles
|
||||
|
||||
// <FS:Ansariel> Convenient initialization
|
||||
LLAvatarData() = default;
|
||||
LLAvatarData(const LLAvatarLegacyData& legacy_data)
|
||||
{
|
||||
agent_id = legacy_data.agent_id;
|
||||
avatar_id = legacy_data.avatar_id;
|
||||
image_id = legacy_data.image_id;
|
||||
fl_image_id = legacy_data.fl_image_id;
|
||||
partner_id = legacy_data.partner_id;
|
||||
about_text = legacy_data.about_text;
|
||||
fl_about_text = legacy_data.fl_about_text;
|
||||
born_on = legacy_data.born_on;
|
||||
profile_url = legacy_data.profile_url;
|
||||
caption_index = legacy_data.caption_index;
|
||||
caption_text = legacy_data.caption_text;
|
||||
customer_type = legacy_data.customer_type;
|
||||
flags = legacy_data.flags;
|
||||
hide_age = legacy_data.hide_age;
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
};
|
||||
|
||||
struct LLAvatarData::LLGroupData
|
||||
|
|
|
|||
|
|
@ -420,11 +420,16 @@ LLFetchAvatarPaymentInfo::~LLFetchAvatarPaymentInfo()
|
|||
|
||||
void LLFetchAvatarPaymentInfo::processProperties(void* data, EAvatarProcessorType type)
|
||||
{
|
||||
if (data && (type == APT_PROPERTIES || type == APT_PROPERTIES_LEGACY))
|
||||
if (data && type == APT_PROPERTIES)
|
||||
{
|
||||
LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data);
|
||||
LLFloaterBuyCurrency::handleBuyCurrency(LLAvatarPropertiesProcessor::hasPaymentInfoOnFile(avatar_data), mHasTarget, mName, mPrice);
|
||||
}
|
||||
else if (data && type == APT_PROPERTIES_LEGACY)
|
||||
{
|
||||
LLAvatarData avatar_data(*static_cast<LLAvatarLegacyData*>(data));
|
||||
LLFloaterBuyCurrency::handleBuyCurrency(LLAvatarPropertiesProcessor::hasPaymentInfoOnFile(&avatar_data), mHasTarget, mName, mPrice);
|
||||
}
|
||||
}
|
||||
|
||||
// <COLOSI opensim multi-currency support>
|
||||
|
|
|
|||
|
|
@ -215,14 +215,19 @@ public:
|
|||
{
|
||||
// route the data to the inspector
|
||||
if (data
|
||||
// <FS:Ansariel> OpenSim
|
||||
//&& type == APT_PROPERTIES)
|
||||
&& (type == APT_PROPERTIES || type == APT_PROPERTIES_LEGACY))
|
||||
// </FS:Ansariel>
|
||||
&& type == APT_PROPERTIES)
|
||||
{
|
||||
LLAvatarData* avatar_data = static_cast<LLAvatarData*>(data);
|
||||
mInspector->processAvatarData(avatar_data);
|
||||
}
|
||||
// <FS:Ansariel> OpenSim
|
||||
if (data
|
||||
&& type == APT_PROPERTIES_LEGACY)
|
||||
{
|
||||
LLAvatarData avatar_data(*static_cast<LLAvatarLegacyData*>(data));
|
||||
mInspector->processAvatarData(&avatar_data);
|
||||
}
|
||||
// </FS:Ansariel>
|
||||
}
|
||||
|
||||
// Store avatar ID so we can un-register the observer on destruction
|
||||
|
|
|
|||
|
|
@ -1050,18 +1050,18 @@ void LLPanelProfileSecondLife::processProperties(void* data, EAvatarProcessorTyp
|
|||
return;
|
||||
}
|
||||
|
||||
if (APT_PROPERTIES_LEGACY == type)
|
||||
if (data && APT_PROPERTIES_LEGACY == type)
|
||||
{
|
||||
const LLAvatarData* avatar_data = static_cast<const LLAvatarData*>(data);
|
||||
if(avatar_data && getAvatarId() == avatar_data->avatar_id)
|
||||
const LLAvatarData avatar_data(*static_cast<const LLAvatarLegacyData*>(data));
|
||||
if (getAvatarId() == avatar_data.avatar_id)
|
||||
{
|
||||
processProfileProperties(avatar_data);
|
||||
processProfileProperties(&avatar_data);
|
||||
}
|
||||
}
|
||||
else if (APT_GROUPS == type)
|
||||
{
|
||||
LLAvatarGroups* avatar_groups = static_cast<LLAvatarGroups*>(data);
|
||||
if(avatar_groups && getAvatarId() == avatar_groups->avatar_id)
|
||||
if (avatar_groups && getAvatarId() == avatar_groups->avatar_id)
|
||||
{
|
||||
processGroupProperties(avatar_groups);
|
||||
}
|
||||
|
|
@ -3338,9 +3338,10 @@ FSPanelPropertiesObserver::FSPanelPropertiesObserver() : LLAvatarPropertiesObser
|
|||
|
||||
void FSPanelPropertiesObserver::processProperties(void* data, EAvatarProcessorType type)
|
||||
{
|
||||
if (type == APT_PROPERTIES_LEGACY && mPanelProfile)
|
||||
if (data && type == APT_PROPERTIES_LEGACY && mPanelProfile)
|
||||
{
|
||||
mPanelProfile->onAvatarProperties(static_cast<const LLAvatarData*>(data));
|
||||
LLAvatarData avatardata(*static_cast<LLAvatarLegacyData*>(data));
|
||||
mPanelProfile->onAvatarProperties(&avatardata);
|
||||
}
|
||||
}
|
||||
// </FS:Zi>
|
||||
|
|
|
|||
Loading…
Reference in New Issue