meow-7.2.2
Gilbert Gonzales 2013-02-13 17:02:13 -08:00
commit c17b41b526
13 changed files with 94 additions and 30 deletions

View File

@ -176,17 +176,6 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>LogInstantMessages</key>
<map>
<key>Comment</key>
<string>Log Instant Messages</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>1</integer>
</map>
<key>LogShowHistory</key>
<map>
<key>Comment</key>

View File

@ -532,7 +532,6 @@ void LLConversationLog::onClearLogResponse(const LLSD& notification, const LLSD&
{
if (0 == LLNotificationsUtil::getSelectedOption(notification, response))
{
LLLogChat::deleteTranscripts();
mConversations.clear();
notifyObservers();
}

View File

@ -151,7 +151,8 @@ void LLConversationItem::buildParticipantMenuOptions(menuentry_vec_t& items, U32
items.push_back(std::string("Moderator Options"));
items.push_back(std::string("AllowTextChat"));
items.push_back(std::string("moderate_voice_separator"));
items.push_back(std::string("ModerateVoiceToggleMuteSelected"));
items.push_back(std::string("ModerateVoiceMuteSelected"));
items.push_back(std::string("ModerateVoiceUnMuteSelected"));
items.push_back(std::string("ModerateVoiceMute"));
items.push_back(std::string("ModerateVoiceUnmute"));
}

View File

@ -1520,8 +1520,10 @@ void LLFavoritesOrderStorage::saveFavoritesSLURLs()
LLAvatarName av_name;
LLAvatarNameCache::get( gAgentID, &av_name );
lldebugs << "Saved favorites for " << av_name.getAccountName() << llendl;
fav_llsd[av_name.getAccountName()] = user_llsd;
// Note : use the "John Doe" and not the "john.doe" version of the name
// as we'll compare it with the stored credentials in the login panel.
lldebugs << "Saved favorites for " << av_name.getUserName() << llendl;
fav_llsd[av_name.getUserName()] = user_llsd;
llofstream file;
file.open(filename);
@ -1539,10 +1541,12 @@ void LLFavoritesOrderStorage::removeFavoritesRecordOfUser()
LLAvatarName av_name;
LLAvatarNameCache::get( gAgentID, &av_name );
lldebugs << "Removed favorites for " << av_name.getAccountName() << llendl;
if (fav_llsd.has(av_name.getAccountName()))
// Note : use the "John Doe" and not the "john.doe" version of the name.
// See saveFavoritesSLURLs() here above for the reason why.
lldebugs << "Removed favorites for " << av_name.getUserName() << llendl;
if (fav_llsd.has(av_name.getUserName()))
{
fav_llsd.erase(av_name.getAccountName());
fav_llsd.erase(av_name.getUserName());
}
llofstream out_file;

View File

@ -68,8 +68,9 @@ LLFloaterIMContainer::LLFloaterIMContainer(const LLSD& seed, const Params& param
mEnableCallbackRegistrar.add("IMFloaterContainer.Check", boost::bind(&LLFloaterIMContainer::isActionChecked, this, _2));
mCommitCallbackRegistrar.add("IMFloaterContainer.Action", boost::bind(&LLFloaterIMContainer::onCustomAction, this, _2));
mEnableCallbackRegistrar.add("Avatar.CheckItem", boost::bind(&LLFloaterIMContainer::checkContextMenuItem, this, _2));
mEnableCallbackRegistrar.add("Avatar.EnableItem", boost::bind(&LLFloaterIMContainer::enableContextMenuItem, this, _2));
mEnableCallbackRegistrar.add("Avatar.CheckItem", boost::bind(&LLFloaterIMContainer::checkContextMenuItem, this, _2));
mEnableCallbackRegistrar.add("Avatar.EnableItem", boost::bind(&LLFloaterIMContainer::enableContextMenuItem, this, _2));
mEnableCallbackRegistrar.add("Avatar.VisibleItem", boost::bind(&LLFloaterIMContainer::visibleContextMenuItem, this, _2));
mCommitCallbackRegistrar.add("Avatar.DoToSelected", boost::bind(&LLFloaterIMContainer::doToSelected, this, _2));
mCommitCallbackRegistrar.add("Group.DoToSelected", boost::bind(&LLFloaterIMContainer::doToSelectedGroup, this, _2));
@ -259,6 +260,7 @@ void LLFloaterIMContainer::onOpen(const LLSD& key)
{
LLMultiFloater::onOpen(key);
openNearbyChat();
reSelectConversation();
assignResizeLimits();
}
@ -1245,7 +1247,7 @@ bool LLFloaterIMContainer::enableContextMenuItem(const std::string& item, uuid_v
{
return LLAvatarActions::canOfferTeleport(uuids);
}
else if (("can_moderate_voice" == item) || ("can_allow_text_chat" == item) || ("can_mute_unmute" == item))
else if (("can_moderate_voice" == item) || ("can_allow_text_chat" == item) || ("can_mute" == item) || ("can_unmute" == item))
{
// *TODO : get that out of here...
return enableModerateContextMenuItem(item);
@ -1290,6 +1292,22 @@ bool LLFloaterIMContainer::checkContextMenuItem(const std::string& item, uuid_ve
return false;
}
bool LLFloaterIMContainer::visibleContextMenuItem(const LLSD& userdata)
{
const std::string& item = userdata.asString();
if ("show_mute" == item)
{
return !isMuted(getCurSelectedViewModelItem()->getUUID());
}
else if ("show_unmute" == item)
{
return isMuted(getCurSelectedViewModelItem()->getUUID());
}
return true;
}
void LLFloaterIMContainer::showConversation(const LLUUID& session_id)
{
setVisibleAndFrontmost(false);
@ -1589,10 +1607,18 @@ bool LLFloaterIMContainer::enableModerateContextMenuItem(const std::string& user
bool voice_channel = speakerp->isInVoiceChannel();
if ("can_moderate_voice" == userdata || "can_mute_unmute" == userdata)
if ("can_moderate_voice" == userdata)
{
return voice_channel;
}
else if ("can_mute" == userdata)
{
return voice_channel && !isMuted(getCurSelectedViewModelItem()->getUUID());
}
else if ("can_unmute" == userdata)
{
return voice_channel && isMuted(getCurSelectedViewModelItem()->getUUID());
}
// The last invoke is used to check whether the "can_allow_text_chat" will enabled
return LLVoiceClient::getInstance()->isParticipantAvatar(getCurSelectedViewModelItem()->getUUID());

View File

@ -140,8 +140,9 @@ private:
const LLConversationItem * getCurSelectedViewModelItem();
void getParticipantUUIDs(uuid_vec_t& selected_uuids);
void doToSelected(const LLSD& userdata);
bool checkContextMenuItem(const LLSD& userdata);
bool enableContextMenuItem(const LLSD& userdata);
bool checkContextMenuItem(const LLSD& userdata);
bool enableContextMenuItem(const LLSD& userdata);
bool visibleContextMenuItem(const LLSD& userdata);
void doToSelectedConversation(const std::string& command, uuid_vec_t& selectedIDS);
void doToSelectedGroup(const LLSD& userdata);

View File

@ -1032,6 +1032,10 @@ void LLPanelPeople::onAvatarListDoubleClicked(LLUICtrl* ctrl)
}
LLUUID clicked_id = item->getAvatarId();
if(gAgent.getID() == clicked_id)
{
return;
}
#if 0 // SJB: Useful for testing, but not currently functional or to spec
LLAvatarActions::showProfile(clicked_id);

View File

@ -99,6 +99,10 @@ LLContextMenu* NearbyMenu::createMenu()
bool NearbyMenu::enableContextMenuItem(const LLSD& userdata)
{
if(gAgent.getID() == mUUIDs.front())
{
return false;
}
std::string item = userdata.asString();
// Note: can_block and can_delete is used only for one person selected menu
@ -176,6 +180,11 @@ bool NearbyMenu::enableContextMenuItem(const LLSD& userdata)
{
return LLAvatarActions::canOfferTeleport(mUUIDs);
}
else if (item == std::string("can_im") || item == std::string("can_callog") || item == std::string("can_invite") ||
item == std::string("can_share") || item == std::string("can_pay"))
{
return true;
}
return false;
}

View File

@ -917,6 +917,13 @@ bool idle_startup()
// Overwrite default user settings with user settings
LLAppViewer::instance()->loadSettingsFromDirectory("Account");
// Convert 'LogInstantMessages' into 'KeepConversationLogTranscripts' for backward compatibility (CHUI-743).
LLControlVariablePtr logInstantMessagesControl = gSavedPerAccountSettings.getControl("LogInstantMessages");
if (logInstantMessagesControl.notNull())
{
gSavedPerAccountSettings.setS32("KeepConversationLogTranscripts", logInstantMessagesControl->getValue() ? 2 : 1);
}
// Need to set the LastLogoff time here if we don't have one. LastLogoff is used for "Recent Items" calculation
// and startup time is close enough if we don't have a real value.
if (gSavedPerAccountSettings.getU32("LastLogoff") == 0)

View File

@ -1192,7 +1192,7 @@ void LLWorld::getAvatars(uuid_vec_t* avatar_ids, std::vector<LLVector3d>* positi
{
LLVOAvatar* pVOAvatar = (LLVOAvatar*) *iter;
if (!pVOAvatar->isDead() && !pVOAvatar->isSelf() && !pVOAvatar->mIsDummy)
if (!pVOAvatar->isDead() && !pVOAvatar->mIsDummy)
{
LLVector3d pos_global = pVOAvatar->getPositionGlobal();
LLUUID uuid = pVOAvatar->getID();

View File

@ -163,11 +163,20 @@
</menu_item_check>
<menu_item_separator layout="topleft" name="moderate_voice_separator" />
<menu_item_call
label="Toggle mute this participant"
label="Mute this participant"
layout="topleft"
name="ModerateVoiceToggleMuteSelected">
name="ModerateVoiceMuteSelected">
<on_click function="Avatar.DoToSelected" parameter="selected" />
<on_enable function="Avatar.EnableItem" parameter="can_mute_unmute" />
<on_enable function="Avatar.EnableItem" parameter="can_mute" />
<on_visible function="Avatar.VisibleItem" parameter="show_mute" />
</menu_item_call>
<menu_item_call
label="Unmute this participant"
layout="topleft"
name="ModerateVoiceUnMuteSelected">
<on_click function="Avatar.DoToSelected" parameter="selected" />
<on_enable function="Avatar.EnableItem" parameter="can_unmute" />
<on_visible function="Avatar.VisibleItem" parameter="show_unmute" />
</menu_item_call>
<menu_item_call
label="Mute everyone"

View File

@ -15,6 +15,9 @@
name="IM">
<menu_item_call.on_click
function="Avatar.IM" />
<menu_item_call.on_enable
function="Avatar.EnableItem"
parameter="can_im"/>
</menu_item_call>
<menu_item_call
label="Offer Teleport"
@ -42,6 +45,9 @@
name="Chat history">
<menu_item_call.on_click
function="Avatar.Calllog" />
<menu_item_call.on_enable
function="Avatar.EnableItem"
parameter="can_callog"/>
</menu_item_call>
<menu_item_separator />
<menu_item_call
@ -70,6 +76,9 @@
name="Invite">
<menu_item_call.on_click
function="Avatar.InviteToGroup" />
<menu_item_call.on_enable
function="Avatar.EnableItem"
parameter="can_invite"/>
</menu_item_call>
<menu_item_separator />
<menu_item_call
@ -88,6 +97,9 @@
name="Share">
<menu_item_call.on_click
function="Avatar.Share" />
<menu_item_call.on_enable
function="Avatar.EnableItem"
parameter="can_share"/>
</menu_item_call>
<menu_item_call
label="Pay"
@ -95,6 +107,9 @@
name="Pay">
<menu_item_call.on_click
function="Avatar.Pay" />
<menu_item_call.on_enable
function="Avatar.EnableItem"
parameter="can_pay"/>
</menu_item_call>
<menu_item_check
label="Block/Unblock"

View File

@ -10006,7 +10006,7 @@ Cannot create large prims that intersect other players. Please re-try when othe
icon="alertmodal.tga"
name="PreferenceChatClearLog"
type="alertmodal">
This will delete the log of previous conversations, and all transcripts of those conversations. Proceed?
This will delete the log of previous conversations. Proceed?
<tag>confirm</tag>
<usetemplate
ignoretext="Confirm before I delete the log of previous conversations."
@ -10019,7 +10019,7 @@ Cannot create large prims that intersect other players. Please re-try when othe
icon="alertmodal.tga"
name="PreferenceChatDeleteTranscripts"
type="alertmodal">
This will delete transcripts for all previous conversations. The list of conversations will not be affected. Proceed?
This will delete transcripts for all previous conversations. The list of conversations will not be affected. If you run scripts on your chat transcript files, you may want to proceed with caution. Proceed?
<tag>confirm</tag>
<usetemplate
ignoretext="Confirm before I delete transcripts."