Merge branch 'release/2025.04' of https://github.com/secondlife/viewer

# Conflicts:
#	indra/newview/app_settings/settings.xml
#	indra/newview/llvieweraudio.cpp
#	indra/newview/skins/default/xui/en/panel_preferences_chat.xml
master
Ansariel 2025-05-09 20:15:29 +02:00
commit 0f50e81c4d
11 changed files with 323 additions and 123 deletions

View File

@ -98,7 +98,14 @@ void LLChatMentionHelper::showHelper(LLUICtrl* host_ctrl, S32 local_x, S32 local
LLRect rect = av_picker_floater->getRect();
rect.setLeftTopAndSize(floater_x, floater_y + rect.getHeight(), rect.getWidth(), rect.getHeight());
av_picker_floater->setRect(rect);
av_picker_floater->openFloater(LLSD().with("av_name", av_name));
if (av_picker_floater->isShown())
{
av_picker_floater->onOpen(LLSD().with("av_name", av_name));
}
else
{
av_picker_floater->openFloater(LLSD().with("av_name", av_name));
}
}
void LLChatMentionHelper::hideHelper(const LLUICtrl* ctrl)

View File

@ -133,10 +133,13 @@ LLUUID find_ui_sound(const char * namep, bool force_sound)
else if (ui_inst->mAudioCallback != NULL)
{
// <FS:PP> Silencer for FIRE-7556: Configurable User Interface sounds
if (name != "UISndTrackerBeacon" && name != "UISndNewIncomingIMSession" && name != "UISndNewIncomingGroupIMSession" && name != "UISndNewIncomingConfIMSession") // There is no need to process these here, checks are already elsewhere
if (name != "UISndTrackerBeacon" && name != "UISndNewIncomingIMSession" && name != "UISndNewIncomingGroupIMSession" &&
name != "UISndNewIncomingConfIMSession" &&
name != "UISndChatMention") // There is no need to process these here, checks are already elsewhere
{
if (!force_sound && ( (name != "UISndSnapshot" && !ui_inst->mSettingGroups[group_name]->getBOOL("PlayMode" + name)) || (name == "UISndSnapshot" && ui_inst->mSettingGroups["config"]->getBOOL("PlayModeUISndSnapshot")) ) )
return LLUUID(NULL);
if (!force_sound && ((name != "UISndSnapshot" && !ui_inst->mSettingGroups[group_name]->getBOOL("PlayMode" + name)) ||
(name == "UISndSnapshot" && ui_inst->mSettingGroups["config"]->getBOOL("PlayModeUISndSnapshot"))))
return LLUUID::null;
}
// </FS:PP>

View File

@ -9673,6 +9673,17 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>0</integer>
</map>
<key>PlaySoundChatMention</key>
<map>
<key>Comment</key>
<string>Plays a sound when got mentioned in a chat</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>PluginAttachDebuggerToPlugins</key>
<map>
<key>Comment</key>
@ -16229,6 +16240,28 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<string>2ca849ba-2885-4bc3-90ef-d4987a5b983a</string>
</map>
<key>UISndChatMention</key>
<map>
<key>Comment</key>
<string>Sound file for chat mention(uuid for sound asset)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>03e77cb5-592c-5b33-d271-2e46497c3fb3</string>
</map>
<key>UISndChatPing</key>
<map>
<key>Comment</key>
<string>Sound file for chat ping(uuid for sound asset)</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>7dd36df6-2624-5438-f988-fdf8588a0ad9</string>
</map>
<key>UISndClick</key>
<map>
<key>Comment</key>

View File

@ -238,6 +238,8 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
bool store_dnd_message = false; // flag storage of a dnd message
bool is_session_focused = session_floater->isTornOff() && session_floater->hasFocus();
bool contains_mention = LLUrlRegistry::getInstance()->containsAgentMention(msg["message"].asString());
static LLCachedControl<bool> play_snd_mention_pref(gSavedSettings, "PlaySoundChatMention", false);
bool play_snd_mention = contains_mention && play_snd_mention_pref && (msg["source_type"].asInteger() != CHAT_SOURCE_OBJECT);
if (!LLFloater::isVisible(im_box) || im_box->isMinimized())
{
conversations_floater_status = CLOSED;
@ -271,7 +273,7 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
else
{
user_preferences = gSavedSettings.getString("NotificationNearbyChatOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNearbyChatIM")))
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNearbyChatIM")) && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingIMSession");
}
@ -282,7 +284,7 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
if (LLAvatarTracker::instance().isBuddy(participant_id))
{
user_preferences = gSavedSettings.getString("NotificationFriendIMOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundFriendIM")))
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundFriendIM")) && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingIMSession");
}
@ -290,7 +292,7 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
else
{
user_preferences = gSavedSettings.getString("NotificationNonFriendIMOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNonFriendIM")))
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNonFriendIM")) && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingIMSession");
}
@ -299,7 +301,7 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
else if (session->isAdHocSessionType())
{
user_preferences = gSavedSettings.getString("NotificationConferenceIMOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundConferenceIM")))
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundConferenceIM")) && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingIMSession");
}
@ -307,11 +309,18 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
else if(session->isGroupSessionType())
{
user_preferences = gSavedSettings.getString("NotificationGroupChatOptions");
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundGroupChatIM")))
if (!gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundGroupChatIM")) && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingIMSession");
}
}
if (play_snd_mention)
{
if (!gAgent.isDoNotDisturb())
{
make_ui_sound("UISndChatMention");
}
}
// actions:
@ -469,6 +478,13 @@ void notify_of_message(const LLSD& msg, bool is_dnd_msg)
{
im_container->addFlashingSession(session_id);
}
static LLCachedControl<bool> play_snd_mention_pref(gSavedSettings, "PlaySoundChatMention", false);
if (play_snd_mention_pref && (msg["source_type"].asInteger() != CHAT_SOURCE_OBJECT) && LLUrlRegistry::getInstance()->containsAgentMention(msg["message"].asString()))
{
make_ui_sound("UISndChatMention");
}
return;
}
@ -3493,6 +3509,8 @@ void LLIMMgr::addMessage(
static LLCachedControl<U32> PlayModeUISndNewIncomingIMSession(gSavedSettings, "PlayModeUISndNewIncomingIMSession");
static LLCachedControl<U32> PlayModeUISndNewIncomingGroupIMSession(gSavedSettings, "PlayModeUISndNewIncomingGroupIMSession");
static LLCachedControl<U32> PlayModeUISndNewIncomingConfIMSession(gSavedSettings, "PlayModeUISndNewIncomingConfIMSession");
static LLCachedControl<bool> play_snd_mention_pref(gSavedSettings, "PlaySoundChatMention", false);
bool play_snd_mention = play_snd_mention_pref && LLUrlRegistry::getInstance()->containsAgentMention(msg);
bool do_not_disturb = gAgent.isDoNotDisturb();
bool is_group_chat = false;
if (dialog != IM_NOTHING_SPECIAL)
@ -3640,15 +3658,15 @@ void LLIMMgr::addMessage(
}
// </FS:PP>
if(!do_not_disturb && PlayModeUISndNewIncomingIMSession != 0 && dialog == IM_NOTHING_SPECIAL)
if(!do_not_disturb && PlayModeUISndNewIncomingIMSession != 0 && dialog == IM_NOTHING_SPECIAL && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingIMSession");
}
else if(!do_not_disturb && PlayModeUISndNewIncomingGroupIMSession != 0 && dialog != IM_NOTHING_SPECIAL && is_group_chat)
else if(!do_not_disturb && PlayModeUISndNewIncomingGroupIMSession != 0 && dialog != IM_NOTHING_SPECIAL && is_group_chat && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingGroupIMSession");
}
else if(!do_not_disturb && PlayModeUISndNewIncomingConfIMSession != 0 && dialog != IM_NOTHING_SPECIAL && !is_group_chat)
else if(!do_not_disturb && PlayModeUISndNewIncomingConfIMSession != 0 && dialog != IM_NOTHING_SPECIAL && !is_group_chat && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingConfIMSession");
}
@ -3667,15 +3685,15 @@ void LLIMMgr::addMessage(
return;
}
// </FS:Zi>
else if(!do_not_disturb && PlayModeUISndNewIncomingIMSession == 2 && dialog == IM_NOTHING_SPECIAL)
else if(!do_not_disturb && PlayModeUISndNewIncomingIMSession == 2 && dialog == IM_NOTHING_SPECIAL && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingIMSession");
}
else if(!do_not_disturb && PlayModeUISndNewIncomingGroupIMSession == 2 && dialog != IM_NOTHING_SPECIAL && is_group_chat)
else if(!do_not_disturb && PlayModeUISndNewIncomingGroupIMSession == 2 && dialog != IM_NOTHING_SPECIAL && is_group_chat && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingGroupIMSession");
}
else if(!do_not_disturb && PlayModeUISndNewIncomingConfIMSession == 2 && dialog != IM_NOTHING_SPECIAL && !is_group_chat)
else if(!do_not_disturb && PlayModeUISndNewIncomingConfIMSession == 2 && dialog != IM_NOTHING_SPECIAL && !is_group_chat && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingConfIMSession");
// </FS:PP>
@ -3687,7 +3705,7 @@ void LLIMMgr::addMessage(
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
// </FS:Ansariel> [FS communication UI]
if (im_floater && !im_floater->hasFocus())
if (im_floater && !im_floater->hasFocus() && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingIMSession");
}
@ -3698,7 +3716,7 @@ void LLIMMgr::addMessage(
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
// </FS:Ansariel> [FS communication UI]
if (im_floater && !im_floater->hasFocus())
if (im_floater && !im_floater->hasFocus() && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingGroupIMSession");
}
@ -3709,13 +3727,18 @@ void LLIMMgr::addMessage(
//LLIMFloater* im_floater = LLIMFloater::findInstance(session_id);
FSFloaterIM* im_floater = FSFloaterIM::findInstance(session_id);
// </FS:Ansariel> [FS communication UI]
if (im_floater && !im_floater->hasFocus())
if (im_floater && !im_floater->hasFocus() && !play_snd_mention)
{
make_ui_sound("UISndNewIncomingConfIMSession");
}
}
// </FS:WoLf>
if (play_snd_mention)
{
make_ui_sound("UISndChatMention");
}
if (!LLMuteList::getInstance()->isMuted(other_participant_id, LLMute::flagTextChat) && !skip_message)
{
// <FS:Ansariel> Added is_announcement parameter

View File

@ -2942,6 +2942,7 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
//
bool is_movable = true;
bool create_outfit = false;
if (is_movable && (marketplacelistings_id == cat_id))
{
@ -2986,7 +2987,12 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
tooltip_msg = LLTrans::getString("TooltipOutfitNotInInventory");
is_movable = false;
}
else if (can_move_to_my_outfits(model, inv_cat, max_items_to_wear))
else if (can_move_to_my_outfits_as_outfit(model, inv_cat, max_items_to_wear))
{
is_movable = true;
create_outfit = true;
}
else if (can_move_to_my_outfits_as_subfolder(model, inv_cat))
{
is_movable = true;
}
@ -3020,7 +3026,12 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
is_movable = false;
tooltip_msg = LLTrans::getString("TooltipCantCreateOutfit");
}
else if (can_move_to_my_outfits(model, inv_cat, max_items_to_wear))
else if (can_move_to_my_outfits_as_outfit(model, inv_cat, max_items_to_wear))
{
is_movable = true;
create_outfit = true;
}
else if (can_move_to_my_outfits_as_subfolder(model, inv_cat))
{
is_movable = true;
}
@ -3232,7 +3243,7 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
if (mUUID == my_outifts_id)
{
EMyOutfitsSubfolderType inv_res = myoutfit_object_subfolder_type(model, cat_id, my_outifts_id);
if (inv_res == MY_OUTFITS_SUBFOLDER || inv_res == MY_OUTFITS_OUTFIT)
if (inv_res == MY_OUTFITS_SUBFOLDER || inv_res == MY_OUTFITS_OUTFIT || !create_outfit)
{
LLInvFVBridge::changeCategoryParent(
model,
@ -3256,7 +3267,7 @@ bool LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
{
case MY_OUTFITS_NO:
// Moning from outside outfits into outfits
if (dest_res == MY_OUTFITS_SUBFOLDER)
if (dest_res == MY_OUTFITS_SUBFOLDER && create_outfit)
{
// turn it into outfit
dropToMyOutfitsSubfolder(inv_cat, mUUID, LLFolderType::FT_OUTFIT, cb);
@ -4478,7 +4489,6 @@ void LLFolderBridge::perform_pasteFromClipboard()
LLInventoryObject *obj = model->getObject(item_id);
if (obj)
{
if (move_is_into_lost_and_found)
{
if (LLAssetType::AT_CATEGORY == obj->getType())
@ -4501,9 +4511,9 @@ void LLFolderBridge::perform_pasteFromClipboard()
}
else if (/*move_is_into_my_outfits &&*/ LLAssetType::AT_CATEGORY == obj->getType()) // <FS:Ansariel> Unable to copy&paste into outfits anymore
{
LLInventoryCategory* cat = model->getCategory(item_id);
LLViewerInventoryCategory* cat = model->getCategory(item_id);
U32 max_items_to_wear = gSavedSettings.getU32("WearFolderLimit");
if (cat && can_move_to_my_outfits(model, cat, max_items_to_wear))
if (cat && can_move_to_my_outfits_as_outfit(model, cat, max_items_to_wear))
{
if (mUUID == my_outifts_id)
{
@ -4523,6 +4533,18 @@ void LLFolderBridge::perform_pasteFromClipboard()
}
}
}
else if (cat && can_move_to_my_outfits_as_subfolder(model, cat))
{
if (LLClipboard::instance().isCutMode())
{
changeCategoryParent(model, cat, parent_id, false);
if (cb) cb->fire(item_id);
}
else
{
copy_inventory_category(model, cat, parent_id);
}
}
else
{
LLNotificationsUtil::add("MyOutfitsPasteFailed");
@ -4571,7 +4593,7 @@ void LLFolderBridge::perform_pasteFromClipboard()
// move_inventory_item() is not enough, as we have to update inventory locally too
if (LLAssetType::AT_CATEGORY == obj->getType())
{
LLViewerInventoryCategory* vicat = (LLViewerInventoryCategory *) model->getCategory(item_id);
LLViewerInventoryCategory* vicat = model->getCategory(item_id);
llassert(vicat);
if (vicat)
{

View File

@ -2457,7 +2457,7 @@ bool can_move_to_landmarks(LLInventoryItem* inv_item)
}
// Returns true if folder's content can be moved to Current Outfit or any outfit folder.
bool can_move_to_my_outfits(LLInventoryModel* model, LLInventoryCategory* inv_cat, U32 wear_limit)
bool can_move_to_my_outfits_as_outfit(LLInventoryModel* model, LLInventoryCategory* inv_cat, U32 wear_limit)
{
LLInventoryModel::cat_array_t *cats;
LLInventoryModel::item_array_t *items;
@ -2496,6 +2496,45 @@ bool can_move_to_my_outfits(LLInventoryModel* model, LLInventoryCategory* inv_ca
return true;
}
bool can_move_to_my_outfits_as_subfolder(LLInventoryModel* model, LLInventoryCategory* inv_cat, S32 depth)
{
LLInventoryModel::cat_array_t* cats;
LLInventoryModel::item_array_t* items;
model->getDirectDescendentsOf(inv_cat->getUUID(), cats, items);
if (items->size() > 0)
{
// subfolders don't allow items
return false;
}
constexpr size_t MAX_CONTENT = 255;
if (cats->size() > MAX_CONTENT)
{
// don't allow massive folders
return false;
}
for (LLPointer<LLViewerInventoryCategory>& cat : *cats)
{
// outfits are valid to move, check non-outfit folders
if (cat->getPreferredType() != LLFolderType::FT_OUTFIT)
{
if (depth == 3)
{
// don't allow massive folders
return false;
}
if (!can_move_to_my_outfits_as_subfolder(model, cat, depth + 1))
{
return false;
}
}
}
return true;
}
std::string get_localized_folder_name(LLUUID cat_uuid)
{
std::string localized_root_name;

View File

@ -119,7 +119,8 @@ std::string get_category_path(LLUUID cat_id);
bool can_move_to_outfit(LLInventoryItem* inv_item, bool move_is_into_current_outfit);
bool can_move_to_landmarks(LLInventoryItem* inv_item);
bool can_move_to_my_outfits(LLInventoryModel* model, LLInventoryCategory* inv_cat, U32 wear_limit);
bool can_move_to_my_outfits_as_outfit(LLInventoryModel* model, LLInventoryCategory* inv_cat, U32 wear_limit);
bool can_move_to_my_outfits_as_subfolder(LLInventoryModel* model, LLInventoryCategory* inv_cat, S32 depth = 0);
std::string get_localized_folder_name(LLUUID cat_uuid);
void new_folder_window(const LLUUID& folder_id);
void ungroup_folder_items(const LLUUID& folder_id);

View File

@ -3720,6 +3720,7 @@ bool dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat,
//
bool is_movable = true;
bool create_outfit = false;
if (is_movable && (marketplacelistings_id == cat_id))
{
@ -3765,7 +3766,12 @@ bool dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat,
tooltip_msg = LLTrans::getString("TooltipOutfitNotInInventory");
is_movable = false;
}
else if (can_move_to_my_outfits(model, inv_cat, max_items_to_wear))
else if (can_move_to_my_outfits_as_outfit(model, inv_cat, max_items_to_wear))
{
is_movable = true;
create_outfit = true;
}
else if (can_move_to_my_outfits_as_subfolder(model, inv_cat))
{
is_movable = true;
}
@ -3799,7 +3805,12 @@ bool dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat,
is_movable = false;
tooltip_msg = LLTrans::getString("TooltipCantCreateOutfit");
}
else if (can_move_to_my_outfits(model, inv_cat, max_items_to_wear))
else if (can_move_to_my_outfits_as_outfit(model, inv_cat, max_items_to_wear))
{
is_movable = true;
create_outfit = true;
}
else if (can_move_to_my_outfits_as_subfolder(model, inv_cat))
{
is_movable = true;
}
@ -3934,7 +3945,7 @@ bool dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat,
if (dest_id == my_outifts_id)
{
EMyOutfitsSubfolderType inv_res = myoutfit_object_subfolder_type(model, cat_id, my_outifts_id);
if (inv_res == MY_OUTFITS_SUBFOLDER || inv_res == MY_OUTFITS_OUTFIT)
if (inv_res == MY_OUTFITS_SUBFOLDER || inv_res == MY_OUTFITS_OUTFIT || !create_outfit)
{
gInventory.changeCategoryParent(
(LLViewerInventoryCategory*)inv_cat,
@ -3956,7 +3967,7 @@ bool dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat,
{
case MY_OUTFITS_NO:
// Moning from outside outfits into outfits
if (dest_res == MY_OUTFITS_SUBFOLDER)
if (dest_res == MY_OUTFITS_SUBFOLDER && create_outfit)
{
// turn it into outfit
dropToMyOutfitsSubfolder(inv_cat, dest_id, LLFolderType::FT_OUTFIT);

View File

@ -432,6 +432,7 @@ void init_audio()
gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndWindowClose")));
gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndWindowOpen")));
gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndRestart")));
gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndChatMention")));
gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndRestartOpenSim"))); // <FS:Ansariel> Preload OpenSim restart sound
gAudiop->preloadSound(LLUUID(gSavedSettings.getString("UISndScriptFloaterOpen"))); // <FS:PP> Separate sound for opening script dialogs
// <FS:Zi> Pie menu

View File

@ -254,6 +254,13 @@ Der jeweilige Standardwert wird im Hovertip des UUID-Feldes angezeigt.
<button label="S" name="Def_UISndStartIM" tool_tip="Auf Standardwert zurücksetzen."/>
<check_box label="Abspielen" name="PlayModeUISndStartIM"/>
<text tool_tip="UUID des Klangs bei einer Erwähnung im Chat." name="textChatMention">
Chat-Erwähnung:
</text>
<button label="V" name="Prev_UISndChatMention" tool_tip="Vorschau zu diesem Klang."/>
<button label="S" name="Def_UISndChatMention" tool_tip="Auf Standardwert zurücksetzen."/>
<check_box label="Abspielen" name="PlayModeUISndChatMention"/>
<text tool_tip="UUID des Klangs beim Erzeugen eines neuen Objektes." name="textFSObjectCreate">
Objekterstellung:
</text>
@ -288,15 +295,7 @@ Der jeweilige Standardwert wird im Hovertip des UUID-Feldes angezeigt.
<button label="V" name="Prev_UISndSnapshot" tool_tip="Vorschau zu diesem Klang."/>
<button label="S" name="Def_UISndSnapshot" tool_tip="Auf Standardwert zurücksetzen."/>
<check_box label="Stummschalten" name="QuietSnapshotsToDiskCheckBox"/>
<text tool_tip="UUID des Klangs beim Teleportieren. Diese Einstellung ist gekoppelt an die Option Bewegen/Anzeigen &gt; Bewegung &gt; 'Soundeffekte beim Teleportieren abspielen'." name="textFSTeleportOut">
Teleportieren:
</text>
<button label="V" name="Prev_UISndTeleportOut" tool_tip="Vorschau zu diesem Klang."/>
<button label="S" name="Def_UISndTeleportOut" tool_tip="Auf Standardwert zurücksetzen."/>
<check_box label="Abspielen" name="PlayModeUISndTeleportOut"/>
</panel>
</panel>
<!-- UI Sounds 2 -->
<panel label="UI-Klänge 2" name="UI Sounds tab 2">
@ -305,6 +304,13 @@ Der jeweilige Standardwert wird im Hovertip des UUID-Feldes angezeigt.
Der jeweilige Standardwert wird im Hovertip des UUID-Feldes angezeigt.
</text>
<text tool_tip="UUID des Klangs beim Teleportieren. Diese Einstellung ist gekoppelt an die Option Bewegen/Anzeigen &gt; Bewegung &gt; 'Soundeffekte beim Teleportieren abspielen'." name="textFSTeleportOut">
Teleportieren:
</text>
<button label="V" name="Prev_UISndTeleportOut" tool_tip="Vorschau zu diesem Klang."/>
<button label="S" name="Def_UISndTeleportOut" tool_tip="Auf Standardwert zurücksetzen."/>
<check_box label="Abspielen" name="PlayModeUISndTeleportOut"/>
<text tool_tip="UUID des Klangs beim Öffnen des Pie-Menüs." name="textFSPieMenuAppear">
Öffnen Pie-Menü:
</text>
@ -423,13 +429,6 @@ Der jeweilige Standardwert wird im Hovertip des UUID-Feldes angezeigt.
<button label="V" name="Prev_UISndFriendshipOffer" tool_tip="Vorschau zu diesem Klang."/>
<button label="S" name="Def_UISndFriendshipOffer" tool_tip="Auf Standardwert zurücksetzen."/>
<check_box label="Abspielen" name="PlayModeUISndFriendshipOffer"/>
<text tool_tip="UUID des Klangs für Teleport-Angebote." name="textFSTeleportOffer">
Teleport-Angebote:
</text>
<button label="V" name="Prev_UISndTeleportOffer" tool_tip="Vorschau zu diesem Klang."/>
<button label="S" name="Def_UISndTeleportOffer" tool_tip="Auf Standardwert zurücksetzen."/>
<check_box label="Abspielen" name="PlayModeUISndTeleportOffer"/>
</panel>
<!-- UI Sounds 3 -->
@ -439,6 +438,13 @@ Der jeweilige Standardwert wird im Hovertip des UUID-Feldes angezeigt.
Der jeweilige Standardwert wird im Hovertip des UUID-Feldes angezeigt.
</text>
<text tool_tip="UUID des Klangs für Teleport-Angebote." name="textFSTeleportOffer">
Teleport-Angebote:
</text>
<button label="V" name="Prev_UISndTeleportOffer" tool_tip="Vorschau zu diesem Klang."/>
<button label="S" name="Def_UISndTeleportOffer" tool_tip="Auf Standardwert zurücksetzen."/>
<check_box label="Abspielen" name="PlayModeUISndTeleportOffer"/>
<text tool_tip="UUID des Klangs für Inventarangebote" name="textFSInventoryOffer">
Inventarangebote:
</text>

View File

@ -1426,7 +1426,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when female avatar takes damage."
tool_tip="Sound UUID played when female avatar takes damage."
name="textFSHealthReductionF">
Female avatar hurt:
</text>
@ -1482,7 +1482,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when male avatar takes damage."
tool_tip="Sound UUID played when male avatar takes damage."
name="textFSHealthReductionM">
Male avatar hurt:
</text>
@ -1866,7 +1866,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when starting new IM session."
tool_tip="Sound UUID played when starting new IM session."
name="textFSStartIM">
Starting IM session:
</text>
@ -1915,6 +1915,62 @@ Hover your mouse cursor over UUID field to show its default value.
left_pad="1"
width="120" />
<text
layout="topleft"
follows="left|top"
top_pad="7"
left="5"
height="14"
width="150"
tool_tip="Sound UUID played when being mentioned in chat."
name="textChatMention">
Chat mentions:
</text>
<line_editor
follows="left|top"
left_pad="5"
height="20"
max_length_chars="256"
name="UISndChatMention"
control_name="UISndChatMention"
width="218"/>
<button
follows="left|top"
name="Prev_UISndChatMention"
height="20"
label="P"
layout="topleft"
top_delta="-1"
left_pad="1"
width="17"
sound_flags="0"
tool_tip="Preview this sound.">
<button.commit_callback
function="PreviewUISound"
parameter="UISndChatMention"/>
</button>
<button
follows="left|top"
name="Def_UISndChatMention"
height="20"
label="D"
layout="topleft"
left_pad="1"
width="17"
tool_tip="Reset to the default UUID.">
<button.commit_callback
function="ResetControl"
parameter="UISndChatMention"/>
</button>
<check_box
control_name="PlaySoundChatMention"
height="20"
label="Play this sound"
layout="topleft"
name="PlayModeUISndChatMention"
left_pad="1"
width="120" />
<text
layout="topleft"
follows="left|top"
@ -2194,11 +2250,34 @@ Hover your mouse cursor over UUID field to show its default value.
name="QuietSnapshotsToDiskCheckBox"
left_pad="1"
width="120" />
</panel>
<!-- UI Sounds 2 -->
<panel
top_pad="5"
bottom="-1"
left="1"
right="-1"
follows="all"
label="UI Sounds 2"
name="UI Sounds tab 2">
<text
layout="topleft"
follows="left|top"
top_pad="10"
left="5"
height="14"
width="520"
name="textFSExplanation_tab2">
Here you can change (by providing sound UUIDs), enable or disable default interface sounds.
Hover your mouse cursor over UUID field to show its default value.
</text>
<text
layout="topleft"
follows="left|top"
top_pad="7"
top_pad="25"
left="5"
height="14"
width="150"
@ -2251,38 +2330,14 @@ Hover your mouse cursor over UUID field to show its default value.
left_pad="1"
width="120" />
</panel>
<!-- UI Sounds 2 -->
<panel
top_pad="5"
bottom="-1"
left="1"
right="-1"
follows="all"
label="UI Sounds 2"
name="UI Sounds tab 2">
<text
layout="topleft"
follows="left|top"
top_pad="10"
left="5"
height="14"
width="520"
name="textFSExplanation_tab2">
Here you can change (by providing sound UUIDs), enable or disable default interface sounds.
Hover your mouse cursor over UUID field to show its default value.
</text>
<text
layout="topleft"
follows="left|top"
top_pad="25"
top_pad="7"
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when Pie Menu appears."
tool_tip="Sound UUID played when Pie Menu appears."
name="textFSPieMenuAppear">
Pie Menu appear:
</text>
@ -2338,7 +2393,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when Pie Menu disappears."
tool_tip="Sound UUID played when Pie Menu disappears."
name="textFSPieMenuHide">
Pie Menu disappear:
</text>
@ -2394,7 +2449,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when selecting pie menu item 1."
tool_tip="Sound UUID played when selecting pie menu item 1."
name="textFSPieMenuSliceHighlight0">
Pie Menu option 1:
</text>
@ -2450,7 +2505,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when selecting pie menu item 2."
tool_tip="Sound UUID played when selecting pie menu item 2."
name="textFSPieMenuSliceHighlight1">
Pie Menu option 2:
</text>
@ -2506,7 +2561,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when selecting pie menu item 3."
tool_tip="Sound UUID played when selecting pie menu item 3."
name="textFSPieMenuSliceHighlight2">
Pie Menu option 3:
</text>
@ -2562,7 +2617,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when selecting pie menu item 4."
tool_tip="Sound UUID played when selecting pie menu item 4."
name="textFSPieMenuSliceHighlight3">
Pie Menu option 4:
</text>
@ -2618,7 +2673,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when selecting pie menu item 5."
tool_tip="Sound UUID played when selecting pie menu item 5."
name="textFSPieMenuSliceHighlight4">
Pie Menu option 5:
</text>
@ -2674,7 +2729,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when selecting pie menu item 6."
tool_tip="Sound UUID played when selecting pie menu item 6."
name="textFSPieMenuSliceHighlight5">
Pie Menu option 6:
</text>
@ -2730,7 +2785,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when selecting pie menu item 7."
tool_tip="Sound UUID played when selecting pie menu item 7."
name="textFSPieMenuSliceHighlight6">
Pie Menu option 7:
</text>
@ -2786,7 +2841,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when selecting pie menu item 8."
tool_tip="Sound UUID played when selecting pie menu item 8."
name="textFSPieMenuSliceHighlight7">
Pie Menu option 8:
</text>
@ -2842,7 +2897,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when starting to type a chat message. This setting is shared with Chat &gt; General &gt; 'Hear typing sound when people type in nearby chat'."
tool_tip="Sound UUID played when starting to type a chat message. This setting is shared with Chat &gt; General &gt; 'Hear typing sound when people type in nearby chat'."
name="textFSTyping">
Typing a message:
</text>
@ -2898,7 +2953,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when closing a window."
tool_tip="Sound UUID played when closing a window."
name="textFSWindowClose">
Closing a window:
</text>
@ -2954,7 +3009,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when opening a window."
tool_tip="Sound UUID played when opening a window."
name="textFSWindowOpen">
Opening a window:
</text>
@ -3010,7 +3065,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when script opens a dialog window."
tool_tip="Sound UUID played when script opens a dialog window."
name="textFSScriptFloaterOpen">
Script dialog:
</text>
@ -3066,7 +3121,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when your friend comes online."
tool_tip="Sound UUID played when your friend comes online."
name="textFSFriendOnline">
Friend comes online:
</text>
@ -3122,7 +3177,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when your friend goes offline."
tool_tip="Sound UUID played when your friend goes offline."
name="textFSFriendOffline">
Friend goes offline:
</text>
@ -3226,11 +3281,34 @@ Hover your mouse cursor over UUID field to show its default value.
name="PlayModeUISndFriendshipOffer"
left_pad="1"
width="120" />
</panel>
<!-- UI Sounds 3 -->
<panel
top_pad="5"
bottom="-1"
left="1"
right="-1"
follows="all"
label="UI Sounds 3"
name="UI Sounds tab 3">
<text
layout="topleft"
follows="left|top"
top_pad="7"
top_pad="10"
left="5"
height="14"
width="520"
name="textFSExplanation_tab3">
Here you can change (by providing sound UUIDs), enable or disable default interface sounds.
Hover your mouse cursor over UUID field to show its default value.
</text>
<text
layout="topleft"
follows="left|top"
top_pad="25"
left="5"
height="14"
width="150"
@ -3283,34 +3361,10 @@ Hover your mouse cursor over UUID field to show its default value.
left_pad="1"
width="120" />
</panel>
<!-- UI Sounds 3 -->
<panel
top_pad="5"
bottom="-1"
left="1"
right="-1"
follows="all"
label="UI Sounds 3"
name="UI Sounds tab 3">
<text
layout="topleft"
follows="left|top"
top_pad="10"
left="5"
height="14"
width="520"
name="textFSExplanation_tab3">
Here you can change (by providing sound UUIDs), enable or disable default interface sounds.
Hover your mouse cursor over UUID field to show its default value.
</text>
<text
layout="topleft"
follows="left|top"
top_pad="25"
top_pad="7"
left="5"
height="14"
width="150"
@ -3762,7 +3816,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when the tracker beacon is active. It is more frequent when the avatar is closer to the destination."
tool_tip="Sound UUID played when the tracker beacon is active. It is more frequent when the avatar is closer to the destination."
name="textFSTrackerBeacon">
Tracker beacon:
</text>
@ -3818,7 +3872,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when the microphone is toggled on or off."
tool_tip="Sound UUID played when the microphone is toggled on or off."
name="textFSMicToggle">
Microphone toggle:
</text>
@ -3874,7 +3928,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when the region restart alert appears."
tool_tip="Sound UUID played when the region restart alert appears."
name="textFSRestart">
Region restart:
</text>
@ -3931,7 +3985,7 @@ Hover your mouse cursor over UUID field to show its default value.
left="5"
height="14"
width="150"
tool_tip="Sound UUID played, when the region restart alert appears (OpenSim)."
tool_tip="Sound UUID played when the region restart alert appears (OpenSim)."
name="textFSRestartOpenSim">
Region restart (OpenSim):
</text>