Ansariel 2022-05-12 22:38:07 +02:00
commit 404ec2ea66
16 changed files with 307 additions and 12 deletions

View File

@ -105,7 +105,58 @@ const LLUUID SND_WOOD_PLASTIC ("c70141d4-ba06-41ea-bcbc-35ea81cb8335");
const LLUUID SND_WOOD_RUBBER ("7d1826f4-24c4-4aac-8c2e-eff45df37783");
const LLUUID SND_WOOD_WOOD ("063c97d3-033a-4e9b-98d8-05c8074922cb");
// <FS:Beq> FIRE-31628 Use OpenSim collision sounds when in OpenSim
#ifdef OPENSIM
const LLUUID OPENSIM_SND_FLESH_FLESH ("be7295c0-a158-11e1-b3dd-0804204c9a66");
const LLUUID OPENSIM_SND_FLESH_GLASS ("be7295c0-a158-11e1-b3dd-0804202c9a66");
const LLUUID OPENSIM_SND_FLESH_METAL ("be7295c0-a158-11e1-b3dd-0804201c9a66");
const LLUUID OPENSIM_SND_FLESH_PLASTIC ("be7295c0-a158-11e1-b3dd-0804205c9a66");
const LLUUID OPENSIM_SND_FLESH_RUBBER ("be7295c0-a158-11e1-b3dd-0804206c9a66");
const LLUUID OPENSIM_SND_FLESH_STONE ("be7295c0-a158-11e1-b3dd-0804200c9a66");
const LLUUID OPENSIM_SND_FLESH_WOOD ("be7295c0-a158-11e1-b3dd-0804203c9a66");
const LLUUID OPENSIM_SND_GLASS_FLESH ("be7295c0-a158-11e1-b3dd-0802204c9a66");
const LLUUID OPENSIM_SND_GLASS_GLASS ("be7295c0-a158-11e1-b3dd-0802202c9a66");
const LLUUID OPENSIM_SND_GLASS_METAL ("be7295c0-a158-11e1-b3dd-0802201c9a66");
const LLUUID OPENSIM_SND_GLASS_PLASTIC ("be7295c0-a158-11e1-b3dd-0802205c9a66");
const LLUUID OPENSIM_SND_GLASS_RUBBER ("be7295c0-a158-11e1-b3dd-0802206c9a66");
const LLUUID OPENSIM_SND_GLASS_STONE ("be7295c0-a158-11e1-b3dd-0802200c9a66");
const LLUUID OPENSIM_SND_GLASS_WOOD ("be7295c0-a158-11e1-b3dd-0802203c9a66");
const LLUUID OPENSIM_SND_METAL_FLESH ("be7295c0-a158-11e1-b3dd-0801204c9a66");
const LLUUID OPENSIM_SND_METAL_GLASS ("be7295c0-a158-11e1-b3dd-0801202c9a66");
const LLUUID OPENSIM_SND_METAL_METAL ("be7295c0-a158-11e1-b3dd-0801201c9a66");
const LLUUID OPENSIM_SND_METAL_PLASTIC ("be7295c0-a158-11e1-b3dd-0801205c9a66");
const LLUUID OPENSIM_SND_METAL_RUBBER ("be7295c0-a158-11e1-b3dd-0801206c9a66");
const LLUUID OPENSIM_SND_METAL_STONE ("be7295c0-a158-11e1-b3dd-0801200c9a66");
const LLUUID OPENSIM_SND_METAL_WOOD ("be7295c0-a158-11e1-b3dd-0801203c9a66");
const LLUUID OPENSIM_SND_PLASTIC_FLESH ("be7295c0-a158-11e1-b3dd-0805204c9a66");
const LLUUID OPENSIM_SND_PLASTIC_GLASS ("be7295c0-a158-11e1-b3dd-0805202c9a66");
const LLUUID OPENSIM_SND_PLASTIC_METAL ("be7295c0-a158-11e1-b3dd-0805201c9a66");
const LLUUID OPENSIM_SND_PLASTIC_PLASTIC ("be7295c0-a158-11e1-b3dd-0805205c9a66");
const LLUUID OPENSIM_SND_PLASTIC_RUBBER ("be7295c0-a158-11e1-b3dd-0805206c9a66");
const LLUUID OPENSIM_SND_PLASTIC_STONE ("be7295c0-a158-11e1-b3dd-0805200c9a66");
const LLUUID OPENSIM_SND_PLASTIC_WOOD ("be7295c0-a158-11e1-b3dd-0805203c9a66");
const LLUUID OPENSIM_SND_RUBBER_FLESH ("be7295c0-a158-11e1-b3dd-0806204c9a66");
const LLUUID OPENSIM_SND_RUBBER_GLASS ("be7295c0-a158-11e1-b3dd-0806202c9a66");
const LLUUID OPENSIM_SND_RUBBER_METAL ("be7295c0-a158-11e1-b3dd-0806201c9a66");
const LLUUID OPENSIM_SND_RUBBER_PLASTIC ("be7295c0-a158-11e1-b3dd-0806205c9a66");
const LLUUID OPENSIM_SND_RUBBER_RUBBER ("be7295c0-a158-11e1-b3dd-0806206c9a66");
const LLUUID OPENSIM_SND_RUBBER_STONE ("be7295c0-a158-11e1-b3dd-0806200c9a66");
const LLUUID OPENSIM_SND_RUBBER_WOOD ("be7295c0-a158-11e1-b3dd-0806203c9a66");
const LLUUID OPENSIM_SND_STONE_FLESH ("be7295c0-a158-11e1-b3dd-0800204c9a66");
const LLUUID OPENSIM_SND_STONE_GLASS ("be7295c0-a158-11e1-b3dd-0800202c9a66");
const LLUUID OPENSIM_SND_STONE_METAL ("be7295c0-a158-11e1-b3dd-0800201c9a66");
const LLUUID OPENSIM_SND_STONE_PLASTIC ("be7295c0-a158-11e1-b3dd-0800205c9a66");
const LLUUID OPENSIM_SND_STONE_RUBBER ("be7295c0-a158-11e1-b3dd-0800206c9a66");
const LLUUID OPENSIM_SND_STONE_STONE ("be7295c0-a158-11e1-b3dd-0800200c9a66");
const LLUUID OPENSIM_SND_STONE_WOOD ("be7295c0-a158-11e1-b3dd-0800203c9a66");
const LLUUID OPENSIM_SND_WOOD_FLESH ("be7295c0-a158-11e1-b3dd-0803204c9a66" );
const LLUUID OPENSIM_SND_WOOD_GLASS ("be7295c0-a158-11e1-b3dd-0803202c9a66");
const LLUUID OPENSIM_SND_WOOD_METAL ("be7295c0-a158-11e1-b3dd-0803201c9a66");
const LLUUID OPENSIM_SND_WOOD_PLASTIC ("be7295c0-a158-11e1-b3dd-0803205c9a66");
const LLUUID OPENSIM_SND_WOOD_RUBBER ("be7295c0-a158-11e1-b3dd-0803206c9a66");
const LLUUID OPENSIM_SND_WOOD_STONE ("be7295c0-a158-11e1-b3dd-0803200c9a66");
const LLUUID OPENSIM_SND_WOOD_WOOD ("be7295c0-a158-11e1-b3dd-0803203c9a66");
#endif //OPENSIM
const LLUUID SND_SLIDE_FLESH_FLESH ("614eec22-f73d-4fdc-8691-a37dc5c58333");
const LLUUID SND_SLIDE_FLESH_PLASTIC (SND_NULL);
const LLUUID SND_SLIDE_FLESH_RUBBER (SND_NULL);

View File

@ -105,8 +105,59 @@ extern const LLUUID SND_WOOD_FLESH;
extern const LLUUID SND_WOOD_PLASTIC;
extern const LLUUID SND_WOOD_RUBBER;
extern const LLUUID SND_WOOD_WOOD;
// <FS:Beq> FIRE-31628 Use OpenSim collision sounds when in OpenSim
#ifdef OPENSIM
extern const LLUUID OPENSIM_SND_FLESH_FLESH;
extern const LLUUID OPENSIM_SND_FLESH_GLASS;
extern const LLUUID OPENSIM_SND_FLESH_METAL;
extern const LLUUID OPENSIM_SND_FLESH_PLASTIC;
extern const LLUUID OPENSIM_SND_FLESH_RUBBER;
extern const LLUUID OPENSIM_SND_FLESH_STONE;
extern const LLUUID OPENSIM_SND_FLESH_WOOD;
extern const LLUUID OPENSIM_SND_GLASS_FLESH;
extern const LLUUID OPENSIM_SND_GLASS_GLASS;
extern const LLUUID OPENSIM_SND_GLASS_METAL;
extern const LLUUID OPENSIM_SND_GLASS_PLASTIC;
extern const LLUUID OPENSIM_SND_GLASS_RUBBER;
extern const LLUUID OPENSIM_SND_GLASS_STONE;
extern const LLUUID OPENSIM_SND_GLASS_WOOD;
extern const LLUUID OPENSIM_SND_METAL_FLESH;
extern const LLUUID OPENSIM_SND_METAL_GLASS;
extern const LLUUID OPENSIM_SND_METAL_METAL;
extern const LLUUID OPENSIM_SND_METAL_PLASTIC;
extern const LLUUID OPENSIM_SND_METAL_RUBBER;
extern const LLUUID OPENSIM_SND_METAL_STONE;
extern const LLUUID OPENSIM_SND_METAL_WOOD;
extern const LLUUID OPENSIM_SND_PLASTIC_FLESH;
extern const LLUUID OPENSIM_SND_PLASTIC_GLASS;
extern const LLUUID OPENSIM_SND_PLASTIC_METAL;
extern const LLUUID OPENSIM_SND_PLASTIC_PLASTIC;
extern const LLUUID OPENSIM_SND_PLASTIC_RUBBER;
extern const LLUUID OPENSIM_SND_PLASTIC_STONE;
extern const LLUUID OPENSIM_SND_PLASTIC_WOOD;
extern const LLUUID OPENSIM_SND_RUBBER_FLESH;
extern const LLUUID OPENSIM_SND_RUBBER_GLASS;
extern const LLUUID OPENSIM_SND_RUBBER_METAL;
extern const LLUUID OPENSIM_SND_RUBBER_PLASTIC;
extern const LLUUID OPENSIM_SND_RUBBER_RUBBER;
extern const LLUUID OPENSIM_SND_RUBBER_STONE;
extern const LLUUID OPENSIM_SND_RUBBER_WOOD;
extern const LLUUID OPENSIM_SND_STONE_FLESH;
extern const LLUUID OPENSIM_SND_STONE_GLASS;
extern const LLUUID OPENSIM_SND_STONE_METAL;
extern const LLUUID OPENSIM_SND_STONE_PLASTIC;
extern const LLUUID OPENSIM_SND_STONE_RUBBER;
extern const LLUUID OPENSIM_SND_STONE_STONE;
extern const LLUUID OPENSIM_SND_STONE_WOOD;
extern const LLUUID OPENSIM_SND_WOOD_FLESH;
extern const LLUUID OPENSIM_SND_WOOD_GLASS;
extern const LLUUID OPENSIM_SND_WOOD_METAL;
extern const LLUUID OPENSIM_SND_WOOD_PLASTIC;
extern const LLUUID OPENSIM_SND_WOOD_RUBBER;
extern const LLUUID OPENSIM_SND_WOOD_STONE;
extern const LLUUID OPENSIM_SND_WOOD_WOOD;
#endif //OPENSIM
// </FS:Beq>
extern const LLUUID SND_SLIDE_FLESH_FLESH;
extern const LLUUID SND_SLIDE_FLESH_PLASTIC;
extern const LLUUID SND_SLIDE_FLESH_RUBBER;

View File

@ -341,6 +341,114 @@ void LLMaterialTable::initBasicTable()
}
}
// <FS:Beq> FIRE-31628 Use OpenSim collision sounds when in OpenSim
#ifdef OPENSIM
void LLMaterialTable::replaceCollsionSounds(bool useOpenSim)
{
if(mCollisionSoundMatrix)
delete[] mCollisionSoundMatrix;
mCollisionSoundMatrix= new LLUUID[LL_MCODE_END*LL_MCODE_END];
if (mCollisionSoundMatrix)
{
if(useOpenSim)
{
addCollisionSound(LL_MCODE_STONE, LL_MCODE_FLESH, OPENSIM_SND_STONE_FLESH);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_METAL, OPENSIM_SND_STONE_METAL);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_GLASS, OPENSIM_SND_STONE_GLASS);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_PLASTIC, OPENSIM_SND_STONE_PLASTIC);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_RUBBER, OPENSIM_SND_STONE_RUBBER);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_STONE, OPENSIM_SND_STONE_STONE);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_WOOD, OPENSIM_SND_STONE_WOOD);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_LIGHT, OPENSIM_SND_STONE_PLASTIC);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_FLESH, OPENSIM_SND_METAL_FLESH);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_GLASS, OPENSIM_SND_METAL_GLASS);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_METAL, OPENSIM_SND_METAL_METAL);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_PLASTIC, OPENSIM_SND_METAL_PLASTIC);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_RUBBER, OPENSIM_SND_METAL_RUBBER);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_WOOD, OPENSIM_SND_METAL_WOOD);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_LIGHT, OPENSIM_SND_METAL_PLASTIC);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_FLESH, OPENSIM_SND_GLASS_FLESH);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_GLASS, OPENSIM_SND_GLASS_GLASS);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_PLASTIC, OPENSIM_SND_GLASS_PLASTIC);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_RUBBER, OPENSIM_SND_GLASS_RUBBER);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_WOOD, OPENSIM_SND_GLASS_WOOD);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_LIGHT, OPENSIM_SND_GLASS_PLASTIC);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_FLESH, OPENSIM_SND_WOOD_FLESH);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_PLASTIC, OPENSIM_SND_WOOD_PLASTIC);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_RUBBER, OPENSIM_SND_WOOD_RUBBER);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_WOOD, OPENSIM_SND_WOOD_WOOD);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_LIGHT, OPENSIM_SND_WOOD_PLASTIC);
addCollisionSound(LL_MCODE_FLESH, LL_MCODE_FLESH, OPENSIM_SND_FLESH_FLESH);
addCollisionSound(LL_MCODE_FLESH, LL_MCODE_PLASTIC, OPENSIM_SND_FLESH_PLASTIC);
addCollisionSound(LL_MCODE_FLESH, LL_MCODE_RUBBER, OPENSIM_SND_FLESH_RUBBER);
addCollisionSound(LL_MCODE_FLESH, LL_MCODE_LIGHT, OPENSIM_SND_FLESH_PLASTIC);
addCollisionSound(LL_MCODE_RUBBER, LL_MCODE_RUBBER, OPENSIM_SND_RUBBER_RUBBER);
addCollisionSound(LL_MCODE_RUBBER, LL_MCODE_LIGHT, OPENSIM_SND_RUBBER_PLASTIC);
addCollisionSound(LL_MCODE_PLASTIC, LL_MCODE_PLASTIC, OPENSIM_SND_PLASTIC_PLASTIC);
addCollisionSound(LL_MCODE_PLASTIC, LL_MCODE_RUBBER, OPENSIM_SND_PLASTIC_RUBBER);
addCollisionSound(LL_MCODE_PLASTIC, LL_MCODE_LIGHT, OPENSIM_SND_PLASTIC_PLASTIC);
addCollisionSound(LL_MCODE_LIGHT, LL_MCODE_LIGHT, OPENSIM_SND_PLASTIC_PLASTIC);
}
else
{
addCollisionSound(LL_MCODE_STONE, LL_MCODE_STONE, SND_STONE_STONE);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_METAL, SND_STONE_METAL);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_GLASS, SND_STONE_GLASS);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_WOOD, SND_STONE_WOOD);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_FLESH, SND_STONE_FLESH);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_PLASTIC, SND_STONE_PLASTIC);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_RUBBER, SND_STONE_RUBBER);
addCollisionSound(LL_MCODE_STONE, LL_MCODE_LIGHT, SND_STONE_PLASTIC);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_METAL, SND_METAL_METAL);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_GLASS, SND_METAL_GLASS);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_WOOD, SND_METAL_WOOD);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_FLESH, SND_METAL_FLESH);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_PLASTIC, SND_METAL_PLASTIC);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_LIGHT, SND_METAL_PLASTIC);
addCollisionSound(LL_MCODE_METAL, LL_MCODE_RUBBER, SND_METAL_RUBBER);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_GLASS, SND_GLASS_GLASS);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_WOOD, SND_GLASS_WOOD);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_FLESH, SND_GLASS_FLESH);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_PLASTIC, SND_GLASS_PLASTIC);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_RUBBER, SND_GLASS_RUBBER);
addCollisionSound(LL_MCODE_GLASS, LL_MCODE_LIGHT, SND_GLASS_PLASTIC);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_WOOD, SND_WOOD_WOOD);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_FLESH, SND_WOOD_FLESH);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_PLASTIC, SND_WOOD_PLASTIC);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_RUBBER, SND_WOOD_RUBBER);
addCollisionSound(LL_MCODE_WOOD, LL_MCODE_LIGHT, SND_WOOD_PLASTIC);
addCollisionSound(LL_MCODE_FLESH, LL_MCODE_FLESH, SND_FLESH_FLESH);
addCollisionSound(LL_MCODE_FLESH, LL_MCODE_PLASTIC, SND_FLESH_PLASTIC);
addCollisionSound(LL_MCODE_FLESH, LL_MCODE_RUBBER, SND_FLESH_RUBBER);
addCollisionSound(LL_MCODE_FLESH, LL_MCODE_LIGHT, SND_FLESH_PLASTIC);
addCollisionSound(LL_MCODE_RUBBER, LL_MCODE_RUBBER, SND_RUBBER_RUBBER);
addCollisionSound(LL_MCODE_RUBBER, LL_MCODE_PLASTIC, SND_RUBBER_PLASTIC);
addCollisionSound(LL_MCODE_RUBBER, LL_MCODE_LIGHT, SND_RUBBER_PLASTIC);
addCollisionSound(LL_MCODE_PLASTIC, LL_MCODE_PLASTIC, SND_PLASTIC_PLASTIC);
addCollisionSound(LL_MCODE_PLASTIC, LL_MCODE_LIGHT, SND_PLASTIC_PLASTIC);
addCollisionSound(LL_MCODE_LIGHT, LL_MCODE_LIGHT, SND_PLASTIC_PLASTIC);
}
}
}
#endif // OPENSIM
// </FS:Beq>
BOOL LLMaterialTable::add(U8 mcode, const std::string& name, const LLUUID &uuid)
{
LLMaterialInfo *infop;

View File

@ -116,6 +116,12 @@ public:
BOOL addRestitution(U8 mcode, const F32 &restitution);
BOOL addDamageAndEnergy(U8 mcode, const F32 &hp_mod, const F32 &damage_mod, const F32 &ep_mod);
// <FS:Beq> FIRE-31628 Use OpenSim collision sounds when in OpenSim
#ifdef OPENSIM
void replaceCollsionSounds(bool useOpenSim=false);
#endif
// </FS:Beq>
LLUUID getDefaultTextureID(const std::string& name); // LLUUID::null if not found
LLUUID getDefaultTextureID(U8 mcode); // LLUUID::null if not found
U8 getMCode(const std::string& name); // 0 if not found

View File

@ -52,6 +52,7 @@
#include "fscorehttputil.h"
#include "fspanellogin.h"
#include "lfsimfeaturehandler.h" // <COLOSI opensim multi-currency support />
#include "llmaterialtable.h" // <FS:Beq> FIRE-31628 for access to static var
void gridDownloadError( LLSD const &aData, LLGridManager* mOwner, GridEntry* mData, LLGridManager::AddState mState )
{
@ -1051,6 +1052,7 @@ void LLGridManager::setGridChoice(const std::string& grid)
gSavedSettings.setString("CurrentGrid", grid);
LLTrans::setDefaultArg("CURRENT_GRID", getGridLabel()); //<FS:AW make CURRENT_GRID a default substitution>
updateIsInProductionGrid();
LLMaterialTable::basic.replaceCollsionSounds(isInOpenSim()); // <FS:Beq> FIRE-31628 Use OpenSim collision sounds when in OpenSim
mReadyToLogin = true;
}
}

View File

@ -3182,6 +3182,7 @@ BOOL LLPanelGroupBanListSubTab::postBuildSubTab(LLView* root)
mBanList->setCommitOnSelectionChange(TRUE);
mBanList->setCommitCallback(onBanEntrySelect, this);
mBanList->setFilterColumn(0); // <FS:Zi> FIRE-31653: add banlist filter editor
mCreateBanButton->setClickedCallback(onCreateBanEntry, this);
mCreateBanButton->setEnabled(FALSE);
@ -3260,6 +3261,13 @@ void LLPanelGroupBanListSubTab::onBanEntrySelect(LLUICtrl* ctrl, void* user_data
void LLPanelGroupBanListSubTab::handleBanEntrySelect()
{
// <FS:Zi> FIRE-31653: disable remove ban button when no entry is selected
if (!mBanList->getNumSelected())
{
mDeleteBanButton->setEnabled(false);
return;
}
// </FS:Zi>
if (gAgent.hasPowerInGroup(mGroupID, GP_GROUP_BAN_ACCESS))
{
mDeleteBanButton->setEnabled(TRUE);
@ -3434,3 +3442,13 @@ void LLPanelGroupBanListSubTab::setGroupID(const LLUUID& id)
setFooterEnabled(FALSE);
LLPanelGroupSubTab::setGroupID(id);
}
// <FS:Zi> FIRE-31653: add banlist filter editor
void LLPanelGroupBanListSubTab::onFilterChanged()
{
mBanList->setFilterString(mSearchFilter);
// disable remove ban button as a change of filter will deselect all entries
mDeleteBanButton->setEnabled(false);
}
// </FS:Zi> add banlist filter editor

View File

@ -357,6 +357,7 @@ public:
virtual void activate();
virtual void update(LLGroupChange gc);
virtual void onFilterChanged(); // <FS:Zi> FIRE-31653: add banlist filter editor
virtual void draw();
static void onBanEntrySelect(LLUICtrl* ctrl, void* user_data);

View File

@ -74,6 +74,7 @@ Rechte in einer Gruppe. Es gibt viele verschiedene Fähigkeiten.
<panel.string name="ban_count_template">
Bann-Anzahl: [COUNT]/[LIMIT]
</panel.string>
<filter_editor label="Verbannte Einwohner filtern" name="filter_input"/>
<name_list name="ban_list">
<name_list.columns label="Einwohner" name="name"/>
<name_list.columns label="Bann-Datum" name="ban_date"/>

View File

@ -360,10 +360,22 @@ things in this group. There&apos;s a broad variety of Abilities.
name="ban_count_template">
Ban count: [COUNT]/[LIMIT]
</panel.string>
<filter_editor
layout="topleft"
top="5"
left="5"
right="-5"
height="22"
search_button_visible="false"
follows="left|top|right"
label="Filter Ban List"
name="filter_input" />
<name_list
column_padding="0"
draw_heading="true"
height="136"
height="114"
follows="left|top|right"
layout="topleft"
left="0"

View File

@ -12,6 +12,12 @@
<floater.string name="focus_fps">
En arrière-plan
</floater.string>
<floater.string name="info_waitforit">
Attendez 5 à 10 s pour voir les changements.
</floater.string>
<floater.string name="info_frozen">
Pause des statistiques lorsque la FPS est limitée ou en arrière-plan.
</floater.string>
<floater.string name="tot_av_template">
Total: [TOT_AV] ([TOT_AV_TIME]μs)
</floater.string>
@ -23,26 +29,37 @@
<text name="fps_lbl">
images par seconde
</text>
<text name="fps_warning">
Utilisateur limité @ 000FPS
</text>
<text name="fps_desc1_lbl">
Attendez 5 à 10 secondes pour voir les changements.
Stats en pause si FPS limitée/en arrière-plan.
</text>
<text name="frame_breakdown">
[----------------- Vous verrez ici l'analyse du cadre. -----------------]
</text>
</panel>
<panel name="target_subpanel">
<text name="settings_lbl">
Réglage auto de l'affichage
<text name="settings_lbl" tool_tip="Ajustement automatique des paramètres pour maintenir la fréquence d'images. Réglez la cible sur la fréquence d'images souhaitée et la visionneuse tentera de s'y conformer en modifiant dynamiquement vos paramètres.">
Auto :
</text>
<check_box label="Réglage automatique" name="AutoTuneFPS" tool_tip="Le visualiseur tentera d'ajuster les paramètres pour atteindre la fréquence d'images souhaitée.." />
<text name="targetfps_desc">
Fréquence d'images cible (fps)
</text>
<spinner name="target_fps" tool_tip="FPS cible - Le niveau de FPS souhaité. Le visualisateur essaiera d'atteindre ce niveau en ajustant vos paramètres graphiques.." />
<button label="Lancer" label_selected="Stop" name="AutoTuneFPS" tool_tip="La visionneuse tentera d'ajuster les paramètres pour atteindre la FPS cible." width="72" />
<check_box label="Continu" name="AutoTuneContinuous" tool_tip="La visionneuse adaptera continuellement les paramètres pour atteindre l'objectif FPS jusqu'à ce qu'elle s'arrête, même avec le flotteur fermé. Lorsqu'il est désactivé, un clic sur le bouton Réglage auto ajustera les paramètres actuels puis s'arrêtera." width="64" />
<button name="PrefSaveButton" tool_tip="Sauvegarder les paramètres actuels par défaut pour une utilisation ultérieure."/>
<button name="PrefLoadButton" tool_tip="Charger un préréglage existant."/>
<button tool_tip="Rechargez les paramètres graphiques par défaut de votre ordinateur." name="Defaults"/>
<text name="settings_desc">
Réglage auto pour maint. le nombre de FPS.
Stratégie de réglage
</text>
<combo_box name="FSTuningFPSStrategy">
<combo_box.item label="Uniquement les avatars" name="av_only" />
<combo_box.item label="Avatars seulement" name="av_only" />
<combo_box.item label="Avatars et scène" name="av_and_scene" />
</combo_box>
<spinner name="target_fps" tool_tip="FPS cible - Le niveau de FPS souhaité. Le visualisateur essaiera d'atteindre ce niveau en ajustant vos paramètres graphiques.." />
<button name="target_btn" tool_tip="Modifier le comportement de la stratégie de réglage." />
</panel>
</panel>
<panel name="panel_performance_main">

View File

@ -279,6 +279,7 @@
<menu_item_call label="Mesure du lag" name="Lag Meter"/>
<menu_item_check label="Barre de statistiques" name="Statistics Bar"/>
<menu_item_check label="Statistiques de chargement de scène" name="Scene Load Statistics"/>
<menu_item_check label="Améliorer les performances graphiques..." name="Performance"/>
<menu_item_check label="Afficher les informations de complexité de l’avatar" name="Avatar Draw Info"/>
</menu>
<menu label="Surbrillance et visibilité" name="Highlighting and Visibility">

View File

@ -5366,6 +5366,13 @@ Résultat du test de compression de fichier pour gzip au niveau 6 avec [FILE] de
Compression : [PACK_TIME]s [PSIZE]KB
Décompression : [UNPACK_TIME]s [USIZE]KB
</notification>
<notification name="PromptMFAToken">
[MESSAGE]
<form name="form">
<button name="continue" text="Continuer" />
<button name="cancel" text="Annuler" />
</form>
</notification>
<notification name="NoValidEnvSettingFound">
Aucun paramètre d'environnement valide n'a été sélectionné.

View File

@ -7,7 +7,7 @@
Avatars à proximité
</text>
<text name="av_nearby_desc">
Masquer les avatars les plus complexes pour gagner en fluidité.
Masquez les avatars les plus complexes pour gagner en fluidité.
</text>
<slider tool_tip="Contrôle le moment où un avatar visuellement complexe est dessiné sous forme d'avatar de substitution" label="Complexité maximale (K)" name="IndirectMaxComplexity" />
<slider tool_tip="Contrôle quand un avatar visuellement complexe est considéré comme prenant trop de temps pour être rendu (unité : microsecondes)" label="Temps de rendu max. (μs)" name="FSRenderAvatarMaxART" />
@ -24,6 +24,9 @@
<text name="av_nearby_desc2">
Vous pouvez également faire un clic droit sur un avatar pour contr. l'affichage.
</text>
<text name="av_nearby_desc3">
Votre avatar inclut le poids de la visionneuse. L'onglet des attachements montre l'effet sur les autres.
</text>
<button label="Exceptions..." name="exceptions_btn" />
<check_box label="Toujours afficher complètement les amis" name="display_friends" />
<check_box label="Masquer complètement les avatars." name="hide_avatars" />

View File

@ -238,6 +238,7 @@ http://secondlife.com/viewer-access-faq
Veuillez vérifier que les éléments ci-dessous ont été correctement saisis :
* Nom d&apos;utilisateur (par exemple, bobsmith12 ou steller.sunshine)
* Mot de passe
* Jeton de second facteur (si activé)
Assurez-vous également que la touche Verr. maj n&apos;est pas activée.
</string>
<string name="LoginFailedPasswordChanged">
@ -347,6 +348,10 @@ Veuillez réessayer de vous connecter dans une minute.
<string name="LoginFailedLoggingOutSession">
Le système a commencé à fermer votre dernière session.
Veuillez réessayer de vous connecter dans une minute.
</string>
<string name="LoginFailedAuthenticationMFARequired">
Entrez un nouveau jeton à partir de votre application d'authentification pour pouvoir vous connecter
Si vous pensez qu'il s'agit d'une erreur, veuillez contacter support@secondlife.com.
</string>
<string name="AgentLostConnection">
Il y a peut-être des problèmes techniques dans cette région. Veuillez vérifier votre connexion Internet.

View File

@ -5283,6 +5283,13 @@ https://wiki.firestormviewer.org/fs_voice
Упаковка: [PACK_TIME]с [PSIZE]КБ
Распаковка: [UNPACK_TIME]с [USIZE]КБ
</notification>
<notification name="PromptMFAToken">
[MESSAGE]
<form name="form">
<button name="continue" text="Продолжить"/>
<button name="cancel" text="Отмена"/>
</form>
</notification>
<notification name="NoValidEnvSettingFound">
Не выбрана допустимая настройка окружающей среды.

View File

@ -258,6 +258,7 @@ http://secondlife.com/viewer-access-faq
Пожалуйста, проверьте, правильно ли вы ввели
* Имя пользователя (например bobsmith12 или steller.sunshine)
* Пароль
* Токен второго фактора (если включен)
Также, пожалуйста, проверьте что режим Caps Lock отключен
</string>
<string name="LoginFailedPasswordChanged">
@ -367,6 +368,10 @@ support@secondlife.com.
<string name="LoginFailedLoggingOutSession">
Система начала выход из вашего последнего сеанса.
Пожалуйста, попробуйте зайти снова через минуту.
</string>
<string name="LoginFailedAuthenticationMFARequired">
Чтобы продолжить вход в систему, введите новый токен из приложения многофакторной аутентификации.
Если вы считаете, что это ошибка, пожалуйста, свяжитесь с support@secondlife.com
</string>
<string name="AgentLostConnection">
Возможно, в этом регионе возникли проблемы. Проверьте подключение к Интернету.