Merge branch 'master' of https://github.com/Lirusaito/SingularityViewer
This commit is contained in:
@@ -6864,6 +6864,19 @@ This should be as low as possible, but too low may break functionality</string>
|
|||||||
<key>Value</key>
|
<key>Value</key>
|
||||||
<integer>0</integer>
|
<integer>0</integer>
|
||||||
</map>
|
</map>
|
||||||
|
<key>RadarUpdateEnabled</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>When false, pauses the radar until further notice, good for banning someone who just left.</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>0</integer>
|
||||||
|
<key>HideFromEditor</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>Boolean</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
</map>
|
||||||
<key>RadarUpdateRate</key>
|
<key>RadarUpdateRate</key>
|
||||||
<map>
|
<map>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ const LLAvatarListEntry::ACTIVITY_TYPE LLAvatarListEntry::getActivity()
|
|||||||
|
|
||||||
LLFloaterAvatarList::LLFloaterAvatarList() : LLFloater(std::string("radar")),
|
LLFloaterAvatarList::LLFloaterAvatarList() : LLFloater(std::string("radar")),
|
||||||
mTracking(false),
|
mTracking(false),
|
||||||
mUpdate(true),
|
mUpdate("RadarUpdateEnabled"),
|
||||||
mDirtyAvatarSorting(false),
|
mDirtyAvatarSorting(false),
|
||||||
mUpdateRate(gSavedSettings.getU32("RadarUpdateRate") * 3 + 3),
|
mUpdateRate(gSavedSettings.getU32("RadarUpdateRate") * 3 + 3),
|
||||||
mAvatarList(NULL)
|
mAvatarList(NULL)
|
||||||
@@ -415,12 +415,12 @@ BOOL LLFloaterAvatarList::postBuild()
|
|||||||
getChild<LLRadioGroup>("update_rate")->setSelectedIndex(gSavedSettings.getU32("RadarUpdateRate"));
|
getChild<LLRadioGroup>("update_rate")->setSelectedIndex(gSavedSettings.getU32("RadarUpdateRate"));
|
||||||
getChild<LLRadioGroup>("update_rate")->setCommitCallback(boost::bind(&LLFloaterAvatarList::onCommitUpdateRate, this));
|
getChild<LLRadioGroup>("update_rate")->setCommitCallback(boost::bind(&LLFloaterAvatarList::onCommitUpdateRate, this));
|
||||||
|
|
||||||
getChild<LLCheckboxCtrl>("hide_mark")->setCommitCallback(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
gSavedSettings.getControl("RadarColumnMarkHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
||||||
getChild<LLCheckboxCtrl>("hide_pos")->setCommitCallback(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
gSavedSettings.getControl("RadarColumnPositionHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
||||||
getChild<LLCheckboxCtrl>("hide_alt")->setCommitCallback(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
gSavedSettings.getControl("RadarColumnAltitudeHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
||||||
getChild<LLCheckboxCtrl>("hide_act")->setCommitCallback(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
gSavedSettings.getControl("RadarColumnActivityHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
||||||
getChild<LLCheckboxCtrl>("hide_age")->setCommitCallback(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
gSavedSettings.getControl("RadarColumnAgeHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
||||||
getChild<LLCheckboxCtrl>("hide_time")->setCommitCallback(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
gSavedSettings.getControl("RadarColumnTimeHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
||||||
|
|
||||||
// Get a pointer to the scroll list from the interface
|
// Get a pointer to the scroll list from the interface
|
||||||
mAvatarList = getChild<LLScrollListCtrl>("avatar_list");
|
mAvatarList = getChild<LLScrollListCtrl>("avatar_list");
|
||||||
@@ -438,7 +438,7 @@ BOOL LLFloaterAvatarList::postBuild()
|
|||||||
if(gHippoGridManager->getConnectedGrid()->isSecondLife())
|
if(gHippoGridManager->getConnectedGrid()->isSecondLife())
|
||||||
childSetVisible("hide_client", false);
|
childSetVisible("hide_client", false);
|
||||||
else
|
else
|
||||||
getChild<LLCheckboxCtrl>("hide_client")->setCommitCallback(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
gSavedSettings.getControl("RadarColumnClientHidden")->getSignal()->connect(boost::bind(&LLFloaterAvatarList::assessColumns, this));
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -529,17 +529,11 @@ void LLFloaterAvatarList::updateAvatarList()
|
|||||||
//llinfos << "radar refresh: updating map" << llendl;
|
//llinfos << "radar refresh: updating map" << llendl;
|
||||||
|
|
||||||
// Check whether updates are enabled
|
// Check whether updates are enabled
|
||||||
LLCheckboxCtrl* check = getChild<LLCheckboxCtrl>("update_enabled_cb");
|
if (!mUpdate)
|
||||||
if (check && !check->getValue())
|
|
||||||
{
|
{
|
||||||
mUpdate = FALSE;
|
|
||||||
refreshTracker();
|
refreshTracker();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
mUpdate = TRUE;
|
|
||||||
}
|
|
||||||
//moved to pipeline to prevent a crash
|
//moved to pipeline to prevent a crash
|
||||||
//gPipeline.forAllVisibleDrawables(updateParticleActivity);
|
//gPipeline.forAllVisibleDrawables(updateParticleActivity);
|
||||||
|
|
||||||
@@ -1248,19 +1242,18 @@ LLAvatarListEntry * LLFloaterAvatarList::getAvatarEntry(LLUUID avatar)
|
|||||||
|
|
||||||
BOOL LLFloaterAvatarList::handleKeyHere(KEY key, MASK mask)
|
BOOL LLFloaterAvatarList::handleKeyHere(KEY key, MASK mask)
|
||||||
{
|
{
|
||||||
LLFloaterAvatarList* self = getInstance();
|
LLScrollListItem* item = mAvatarList->getFirstSelected();
|
||||||
LLScrollListItem* item = self->mAvatarList->getFirstSelected();
|
|
||||||
if(item)
|
if(item)
|
||||||
{
|
{
|
||||||
LLUUID agent_id = item->getUUID();
|
LLUUID agent_id = item->getUUID();
|
||||||
if (( KEY_RETURN == key ) && (MASK_NONE == mask))
|
if (( KEY_RETURN == key ) && (MASK_NONE == mask))
|
||||||
{
|
{
|
||||||
self->setFocusAvatar(agent_id);
|
setFocusAvatar(agent_id);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else if (( KEY_RETURN == key ) && (MASK_CONTROL == mask))
|
else if (( KEY_RETURN == key ) && (MASK_CONTROL == mask))
|
||||||
{
|
{
|
||||||
LLAvatarListEntry* entry = self->getAvatarEntry(agent_id);
|
const LLAvatarListEntry* entry = getAvatarEntry(agent_id);
|
||||||
if (entry)
|
if (entry)
|
||||||
{
|
{
|
||||||
// llinfos << "Trying to teleport to " << entry->getName() << " at " << entry->getPosition() << llendl;
|
// llinfos << "Trying to teleport to " << entry->getName() << " at " << entry->getPosition() << llendl;
|
||||||
@@ -1272,7 +1265,7 @@ BOOL LLFloaterAvatarList::handleKeyHere(KEY key, MASK mask)
|
|||||||
|
|
||||||
if (( KEY_RETURN == key ) && (MASK_SHIFT == mask))
|
if (( KEY_RETURN == key ) && (MASK_SHIFT == mask))
|
||||||
{
|
{
|
||||||
uuid_vec_t ids = self->mAvatarList->getSelectedIDs();
|
uuid_vec_t ids = mAvatarList->getSelectedIDs();
|
||||||
if (ids.size() > 0)
|
if (ids.size() > 0)
|
||||||
{
|
{
|
||||||
if (ids.size() == 1)
|
if (ids.size() == 1)
|
||||||
@@ -1414,11 +1407,11 @@ void LLFloaterAvatarList::sendKeys()
|
|||||||
std::ostringstream ids;
|
std::ostringstream ids;
|
||||||
int num_ids = 0;
|
int num_ids = 0;
|
||||||
|
|
||||||
for (int i = 0; i < regionp->mMapAvatarIDs.count(); i++)
|
for (int i = 0; i < regionp->mMapAvatarIDs.count(); ++i)
|
||||||
{
|
{
|
||||||
const LLUUID &id = regionp->mMapAvatarIDs.get(i);
|
const LLUUID &id = regionp->mMapAvatarIDs.get(i);
|
||||||
|
|
||||||
ids << "," << id.asString();
|
ids << "," << id;
|
||||||
++num_ids;
|
++num_ids;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -354,7 +354,7 @@ private:
|
|||||||
/**
|
/**
|
||||||
* @brief TRUE when Updating
|
* @brief TRUE when Updating
|
||||||
*/
|
*/
|
||||||
bool mUpdate;
|
const LLCachedControl<bool> mUpdate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Update rate (if min frames per update)
|
* @brief Update rate (if min frames per update)
|
||||||
|
|||||||
@@ -3,10 +3,9 @@
|
|||||||
* @brief Panel for roles information about a particular group.
|
* @brief Panel for roles information about a particular group.
|
||||||
*
|
*
|
||||||
* $LicenseInfo:firstyear=2006&license=viewergpl$
|
* $LicenseInfo:firstyear=2006&license=viewergpl$
|
||||||
*
|
* Second Life Viewer Source Code
|
||||||
* Copyright (c) 2006-2009, Linden Research, Inc.
|
* Copyright (c) 2006-2009, Linden Research, Inc.
|
||||||
*
|
*
|
||||||
* Second Life Viewer Source Code
|
|
||||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||||
* to you under the terms of the GNU General Public License, version 2.0
|
* to you under the terms of the GNU General Public License, version 2.0
|
||||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||||
@@ -35,6 +34,7 @@
|
|||||||
#include "llcheckboxctrl.h"
|
#include "llcheckboxctrl.h"
|
||||||
|
|
||||||
#include "llagent.h"
|
#include "llagent.h"
|
||||||
|
#include "llavatarnamecache.h"
|
||||||
#include "llbutton.h"
|
#include "llbutton.h"
|
||||||
#include "llfloateravatarinfo.h"
|
#include "llfloateravatarinfo.h"
|
||||||
#include "llfloatergroupinvite.h"
|
#include "llfloatergroupinvite.h"
|
||||||
@@ -1619,11 +1619,60 @@ void LLPanelGroupMembersSubTab::update(LLGroupChange gc)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LLPanelGroupMembersSubTab::addMemberToList(LLGroupMemberData* data)
|
||||||
|
{
|
||||||
|
if (!data) return;
|
||||||
|
// Build the donated tier string.
|
||||||
|
std::ostringstream donated;
|
||||||
|
donated << data->getContribution() << " sq. m.";
|
||||||
|
|
||||||
|
LLSD item_params;
|
||||||
|
item_params["id"] = data->getID();
|
||||||
|
|
||||||
|
item_params["columns"][0]["column"] = "name";
|
||||||
|
// value is filled in by name list control
|
||||||
|
|
||||||
|
item_params["columns"][1]["column"] = "donated";
|
||||||
|
item_params["columns"][1]["value"] = donated.str();
|
||||||
|
|
||||||
|
item_params["columns"][2]["column"] = "online";
|
||||||
|
item_params["columns"][2]["value"] = data->getOnlineStatus();
|
||||||
|
item_params["columns"][2]["font"] = "SANSSERIF_SMALL";
|
||||||
|
mMembersList->addNameItem(item_params);
|
||||||
|
|
||||||
|
mHasMatch = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLPanelGroupMembersSubTab::onNameCache(/*const LLUUID& update_id,*/ LLGroupMemberData* member, const LLAvatarName& av_name)
|
||||||
|
{
|
||||||
|
/* Singu Note: We don't have a getMemberVersion, yet, don't bother with these
|
||||||
|
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
|
||||||
|
if (!gdatap
|
||||||
|
|| gdatap->getMemberVersion() != update_id
|
||||||
|
*/
|
||||||
|
if (!member)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// trying to avoid unnecessary hash lookups
|
||||||
|
std::string name;
|
||||||
|
LLAvatarNameCache::getPNSName(av_name, name); // Singu Note: Diverge from LL Viewer and filter by name displayed
|
||||||
|
if (matchesSearchFilter(name))
|
||||||
|
{
|
||||||
|
addMemberToList(member);
|
||||||
|
if(!mMembersList->getEnabled())
|
||||||
|
{
|
||||||
|
mMembersList->setEnabled(TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void LLPanelGroupMembersSubTab::updateMembers()
|
void LLPanelGroupMembersSubTab::updateMembers()
|
||||||
{
|
{
|
||||||
mPendingMemberUpdate = FALSE;
|
mPendingMemberUpdate = FALSE;
|
||||||
|
|
||||||
lldebugs << "LLPanelGroupMembersSubTab::updateMembers()" << llendl;
|
// Rebuild the members list.
|
||||||
|
|
||||||
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
|
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
|
||||||
if (!gdatap)
|
if (!gdatap)
|
||||||
@@ -1640,48 +1689,36 @@ void LLPanelGroupMembersSubTab::updateMembers()
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//cleanup list only for first iteration
|
||||||
|
if(mMemberProgress == gdatap->mMembers.begin())
|
||||||
|
{
|
||||||
|
mMembersList->deleteAllItems();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
LLGroupMgrGroupData::member_list_t::iterator end = gdatap->mMembers.end();
|
LLGroupMgrGroupData::member_list_t::iterator end = gdatap->mMembers.end();
|
||||||
|
|
||||||
S32 i = 0;
|
for(S32 i = 0; mMemberProgress != end && i<UPDATE_MEMBERS_PER_FRAME; ++mMemberProgress, ++i)
|
||||||
for( ; mMemberProgress != end && i<UPDATE_MEMBERS_PER_FRAME;
|
|
||||||
++mMemberProgress, ++i)
|
|
||||||
{
|
{
|
||||||
if (!mMemberProgress->second)
|
if (!mMemberProgress->second)
|
||||||
continue;
|
continue;
|
||||||
// Do filtering on name if it is already in the cache.
|
|
||||||
bool add_member = true;
|
|
||||||
|
|
||||||
|
// Do filtering on name if it is already in the cache.
|
||||||
|
// Singu Note: Diverge from LL Viewer and filter by name displayed
|
||||||
std::string fullname;
|
std::string fullname;
|
||||||
if (gCacheName->getFullName(mMemberProgress->first, fullname))
|
if (LLAvatarNameCache::getPNSName(mMemberProgress->first, fullname))
|
||||||
{
|
{
|
||||||
if ( !matchesSearchFilter(fullname) )
|
if (matchesSearchFilter(fullname))
|
||||||
{
|
{
|
||||||
add_member = false;
|
addMemberToList(mMemberProgress->second);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
if (add_member)
|
|
||||||
{
|
{
|
||||||
// Build the donated tier string.
|
// If name is not cached, onNameCache() should be called when it is cached and add this member to list.
|
||||||
std::ostringstream donated;
|
LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupMembersSubTab::onNameCache,
|
||||||
donated << mMemberProgress->second->getContribution() << " sq. m.";
|
this, /*gdatap->getMemberVersion(),*/ mMemberProgress->second, _2));
|
||||||
|
|
||||||
LLSD row;
|
|
||||||
row["id"] = (*mMemberProgress).first;
|
|
||||||
|
|
||||||
row["columns"][0]["column"] = "name";
|
|
||||||
// value is filled in by name list control
|
|
||||||
|
|
||||||
row["columns"][1]["column"] = "donated";
|
|
||||||
row["columns"][1]["value"] = donated.str();
|
|
||||||
|
|
||||||
row["columns"][2]["column"] = "online";
|
|
||||||
row["columns"][2]["value"] = mMemberProgress->second->getOnlineStatus();
|
|
||||||
row["columns"][2]["font"] = "SANSSERIF_SMALL";
|
|
||||||
|
|
||||||
mMembersList->addNameItem(row);
|
|
||||||
mHasMatch = TRUE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,10 +3,9 @@
|
|||||||
* @brief Panel for roles information about a particular group.
|
* @brief Panel for roles information about a particular group.
|
||||||
*
|
*
|
||||||
* $LicenseInfo:firstyear=2006&license=viewergpl$
|
* $LicenseInfo:firstyear=2006&license=viewergpl$
|
||||||
*
|
* Second Life Viewer Source Code
|
||||||
* Copyright (c) 2006-2009, Linden Research, Inc.
|
* Copyright (c) 2006-2009, Linden Research, Inc.
|
||||||
*
|
*
|
||||||
* Second Life Viewer Source Code
|
|
||||||
* The source code in this file ("Source Code") is provided by Linden Lab
|
* The source code in this file ("Source Code") is provided by Linden Lab
|
||||||
* to you under the terms of the GNU General Public License, version 2.0
|
* to you under the terms of the GNU General Public License, version 2.0
|
||||||
* ("GPL"), unless you have obtained a separate licensing agreement
|
* ("GPL"), unless you have obtained a separate licensing agreement
|
||||||
@@ -35,6 +34,7 @@
|
|||||||
|
|
||||||
#include "llpanelgroup.h"
|
#include "llpanelgroup.h"
|
||||||
|
|
||||||
|
class LLAvatarName;
|
||||||
class LLNameListCtrl;
|
class LLNameListCtrl;
|
||||||
class LLPanelGroupSubTab;
|
class LLPanelGroupSubTab;
|
||||||
class LLPanelGroupMembersSubTab;
|
class LLPanelGroupMembersSubTab;
|
||||||
@@ -197,6 +197,9 @@ public:
|
|||||||
|
|
||||||
virtual void draw();
|
virtual void draw();
|
||||||
|
|
||||||
|
void addMemberToList(LLGroupMemberData* data);
|
||||||
|
void onNameCache(/*const LLUUID& update_id,*/ LLGroupMemberData* member, const LLAvatarName& av_name);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
typedef std::map<LLUUID, LLRoleMemberChangeType> role_change_data_map_t;
|
typedef std::map<LLUUID, LLRoleMemberChangeType> role_change_data_map_t;
|
||||||
typedef std::map<LLUUID, role_change_data_map_t*> member_role_changes_map_t;
|
typedef std::map<LLUUID, role_change_data_map_t*> member_role_changes_map_t;
|
||||||
|
|||||||
@@ -3693,6 +3693,9 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||||||
chat.mText = from_name;
|
chat.mText = from_name;
|
||||||
mesg = mesg.substr(3);
|
mesg = mesg.substr(3);
|
||||||
ircstyle = TRUE;
|
ircstyle = TRUE;
|
||||||
|
// This block was moved up to allow bubbles with italicized chat
|
||||||
|
// set CHAT_STYLE_IRC to avoid adding Avatar Name as author of message. See EXT-656
|
||||||
|
chat.mChatStyle = CHAT_STYLE_IRC;
|
||||||
}
|
}
|
||||||
chat.mText += mesg;
|
chat.mText += mesg;
|
||||||
|
|
||||||
@@ -3720,12 +3723,23 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// We have a real utterance now, so can stop showing "..." and proceed.
|
||||||
|
if (chatter && chatter->isAvatar())
|
||||||
|
{
|
||||||
|
LLLocalSpeakerMgr::getInstance()->setSpeakerTyping(from_id, FALSE);
|
||||||
|
static_cast<LLVOAvatar*>(chatter)->stopTyping();
|
||||||
|
|
||||||
|
if (!is_muted && !is_busy)
|
||||||
|
{
|
||||||
|
static const LLCachedControl<bool> use_chat_bubbles("UseChatBubbles",false);
|
||||||
|
visible_in_chat_bubble = use_chat_bubbles;
|
||||||
|
static_cast<LLVOAvatar*>(chatter)->addChat(chat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Look for IRC-style emotes
|
// Look for IRC-style emotes
|
||||||
if (ircstyle)
|
if (ircstyle)
|
||||||
{
|
{
|
||||||
// set CHAT_STYLE_IRC to avoid adding Avatar Name as author of message. See EXT-656
|
|
||||||
chat.mChatStyle = CHAT_STYLE_IRC;
|
|
||||||
|
|
||||||
// Do nothing, ircstyle is fixed above for chat bubbles
|
// Do nothing, ircstyle is fixed above for chat bubbles
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -3852,20 +3866,6 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||||||
chat.mText = from_name + verb + mesg;
|
chat.mText = from_name + verb + mesg;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We have a real utterance now, so can stop showing "..." and proceed.
|
|
||||||
if (chatter && chatter->isAvatar())
|
|
||||||
{
|
|
||||||
LLLocalSpeakerMgr::getInstance()->setSpeakerTyping(from_id, FALSE);
|
|
||||||
((LLVOAvatar*)chatter)->stopTyping();
|
|
||||||
|
|
||||||
if (!is_muted && !is_busy)
|
|
||||||
{
|
|
||||||
static const LLCachedControl<bool> use_chat_bubbles("UseChatBubbles",false);
|
|
||||||
visible_in_chat_bubble = use_chat_bubbles;
|
|
||||||
((LLVOAvatar*)chatter)->addChat(chat);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chatter)
|
if (chatter)
|
||||||
{
|
{
|
||||||
chat.mPosAgent = chatter->getPositionAgent();
|
chat.mPosAgent = chatter->getPositionAgent();
|
||||||
@@ -5286,7 +5286,7 @@ void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data)
|
|||||||
if (!avatarp)
|
if (!avatarp)
|
||||||
{
|
{
|
||||||
// no agent by this ID...error?
|
// no agent by this ID...error?
|
||||||
LL_WARNS("Messaging") << "Received animation state for unknown avatar" << uuid << LL_ENDL;
|
LL_WARNS("Messaging") << "Received animation state for unknown avatar " << uuid << LL_ENDL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3318,6 +3318,13 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name)
|
|||||||
{
|
{
|
||||||
F32 chat_fade_amt = llclamp((F32)((LLFrameTimer::getElapsedSeconds() - chat_iter->mTime) / CHAT_FADE_TIME), 0.f, 4.f);
|
F32 chat_fade_amt = llclamp((F32)((LLFrameTimer::getElapsedSeconds() - chat_iter->mTime) / CHAT_FADE_TIME), 0.f, 4.f);
|
||||||
LLFontGL::StyleFlags style;
|
LLFontGL::StyleFlags style;
|
||||||
|
|
||||||
|
// Singu Note: The following tweak may be a bad idea, though they've asked for actions to be italicized, the chat type for actions becomes irrelevant
|
||||||
|
// If LLFontGL::StyleFlags wasn't the parameter type, font styles could be combined and underline could be used, but that may be unnatural...
|
||||||
|
static const LLCachedControl<bool> italicize("LiruItalicizeActions");
|
||||||
|
if (italicize && chat_iter->mChatStyle == CHAT_STYLE_IRC)
|
||||||
|
style = LLFontGL::ITALIC;
|
||||||
|
else
|
||||||
switch(chat_iter->mChatType)
|
switch(chat_iter->mChatType)
|
||||||
{
|
{
|
||||||
case CHAT_TYPE_WHISPER:
|
case CHAT_TYPE_WHISPER:
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ void ScriptCounter::requestInventories()
|
|||||||
if (LLViewerObject* object = selectNode->getObject())
|
if (LLViewerObject* object = selectNode->getObject())
|
||||||
requestInventoriesFor(object);
|
requestInventoriesFor(object);
|
||||||
}
|
}
|
||||||
cmdline_printchat(LLTrans::getString("ScriptCounting"));
|
if (!doDelete) cmdline_printchat(LLTrans::getString("ScriptCounting"));
|
||||||
requesting = false;
|
requesting = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,7 +130,8 @@ void ScriptCounter::inventoryChanged(LLViewerObject* obj, LLInventoryObject::obj
|
|||||||
{
|
{
|
||||||
obj->removeInventoryListener(this);
|
obj->removeInventoryListener(this);
|
||||||
--inventories;
|
--inventories;
|
||||||
//llinfos << "Counting scripts in " << obj->getID() << llendl;
|
//const LLUUID& objid = obj->getID();
|
||||||
|
//llinfos << "Counting scripts in " << objid << llendl;
|
||||||
|
|
||||||
if (inv)
|
if (inv)
|
||||||
{
|
{
|
||||||
@@ -144,7 +145,11 @@ void ScriptCounter::inventoryChanged(LLViewerObject* obj, LLInventoryObject::obj
|
|||||||
{
|
{
|
||||||
const LLUUID& id = asset->getUUID();
|
const LLUUID& id = asset->getUUID();
|
||||||
if (id.notNull())
|
if (id.notNull())
|
||||||
|
{
|
||||||
|
//llinfos << "Deleting script " << id << " in " << objid << llendl;
|
||||||
obj->removeInventory(id);
|
obj->removeInventory(id);
|
||||||
|
--i; // Avoid iteration when removing, everything has shifted
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -289,7 +289,7 @@
|
|||||||
<panel border="true" bottom_delta="-150" follows="left|top|right|bottom" height="255"
|
<panel border="true" bottom_delta="-150" follows="left|top|right|bottom" height="255"
|
||||||
label="Options" left="1" mouse_opaque="true"
|
label="Options" left="1" mouse_opaque="true"
|
||||||
name="options_tab" width="398">
|
name="options_tab" width="398">
|
||||||
<check_box height="16" label="Update"
|
<check_box height="16" label="Update" control_name="RadarUpdateEnabled"
|
||||||
left="10" bottom_delta="-180" name="update_enabled_cb"
|
left="10" bottom_delta="-180" name="update_enabled_cb"
|
||||||
width="200" follows="bottom|left"
|
width="200" follows="bottom|left"
|
||||||
hidden="false" mouse_opaque="true" font="SansSerifSmall"
|
hidden="false" mouse_opaque="true" font="SansSerifSmall"
|
||||||
|
|||||||
@@ -81,7 +81,7 @@
|
|||||||
<text bottom_delta="-2" left="170" height="12" name="AvatarPhysicsDetailText">Off</text>
|
<text bottom_delta="-2" left="170" height="12" name="AvatarPhysicsDetailText">Off</text>
|
||||||
<text bottom="284" left="460" height="12" name="DrawDistanceMeterText1">m</text>
|
<text bottom="284" left="460" height="12" name="DrawDistanceMeterText1">m</text>
|
||||||
<text bottom="284" left="470" height="12" name="DrawDistanceMeterText2">m</text>
|
<text bottom="284" left="470" height="12" name="DrawDistanceMeterText2">m</text>
|
||||||
<slider bottom="280" left="215" control_name="RenderFarClip" decimal_digits="0" height="16" increment="32" initial_val="160" label="Draw Distance:" label_width="101" max_val="1024" min_val="64" name="DrawDistance" width="262"/>
|
<slider bottom="280" left="215" control_name="RenderFarClip" decimal_digits="0" height="16" increment="8" initial_val="160" label="Draw Distance:" label_width="101" max_val="1024" min_val="24" name="DrawDistance" width="262"/>
|
||||||
<slider bottom_delta="-18" control_name="RenderMaxPartCount" decimal_digits="0" height="16" increment="256" initial_val="4096" label="Max. Particle Count:" label_width="101" max_val="8192" min_val="0" name="MaxParticleCount" width="262"/>
|
<slider bottom_delta="-18" control_name="RenderMaxPartCount" decimal_digits="0" height="16" increment="256" initial_val="4096" label="Max. Particle Count:" label_width="101" max_val="8192" min_val="0" name="MaxParticleCount" width="262"/>
|
||||||
<slider bottom_delta="-18" control_name="RenderAvatarMaxVisible" decimal_digits="0" height="16" increment="1" initial_val="35" label="Max. non-impostors:" label_width="101" max_val="50" min_val="1" name="AvatarMaxVisible" width="250"/>
|
<slider bottom_delta="-18" control_name="RenderAvatarMaxVisible" decimal_digits="0" height="16" increment="1" initial_val="35" label="Max. non-impostors:" label_width="101" max_val="50" min_val="1" name="AvatarMaxVisible" width="250"/>
|
||||||
<slider bottom_delta="-18" control_name="RenderGlowResolutionPow" decimal_digits="0" height="16" increment="1" initial_val="8" label="Post Process Quality:" label_width="101" max_val="9" min_val="8" name="RenderPostProcess" show_text="false" width="226"/>
|
<slider bottom_delta="-18" control_name="RenderGlowResolutionPow" decimal_digits="0" height="16" increment="1" initial_val="8" label="Post Process Quality:" label_width="101" max_val="9" min_val="8" name="RenderPostProcess" show_text="false" width="226"/>
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
<panel label="Chat/IM" name="Chat/IM">
|
<panel label="Chat/IM" name="Chat/IM">
|
||||||
<check_box label="Annonce les IMs entrants" name="quickstart_im_check"/>
|
<check_box label="Annonce les IMs entrants" name="quickstart_im_check"/>
|
||||||
<check_box label="Ne pas envoyer "[Machin Truc] is typing..." name="hide_typing_check"/>
|
<check_box label="Ne pas envoyer "[Machin Truc] is typing..." name="hide_typing_check"/>
|
||||||
|
<check_box label="N'accepter les IMs que de ses amis" name="InstantMessagesFriendsOnly"/>
|
||||||
<check_box label="Montrer le nom du groupe dans le chat" name="append_group_name_check"/>
|
<check_box label="Montrer le nom du groupe dans le chat" name="append_group_name_check"/>
|
||||||
<check_box label="Jouer le son typique pour le chat local" name="play_typing_sound_check"/>
|
<check_box label="Jouer le son typique pour le chat local" name="play_typing_sound_check"/>
|
||||||
<check_box label="Ne pas afficher les notifs. de log dans le chat" name="hide_notifications_in_chat_check"/>
|
<check_box label="Ne pas afficher les notifs. de log dans le chat" name="hide_notifications_in_chat_check"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user