Merge branch 'DRTVWR-600-maint-A' of https://github.com/secondlife/viewer

# Conflicts:
#	.github/ISSUE_TEMPLATE/10-bug.yaml
#	.github/ISSUE_TEMPLATE/20-enhancement.md
#	.github/ISSUE_TEMPLATE/config.yml
#	indra/newview/app_settings/settings.xml
#	indra/newview/llagent.cpp
#	indra/newview/llfloaterpreference.h
#	indra/newview/llpanelpeople.cpp
#	indra/newview/llpanelpeople.h
#	indra/newview/llviewermenu.cpp
#	indra/newview/llvoavatar.h
#	indra/newview/skins/default/xui/en/panel_performance_nearby.xml
#	indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
master
Ansariel 2024-03-05 11:55:43 +01:00
commit 7bcb96b2f9
52 changed files with 343 additions and 196 deletions

View File

@ -317,7 +317,7 @@ void HttpService::threadRun(LLCoreInt::HttpThread * thread)
}
catch (std::bad_alloc&)
{
LLMemory::logMemoryInfo(TRUE);
LLMemory::logMemoryInfo(true);
//output possible call stacks to log file.
LLError::LLCallStacks::print();

View File

@ -150,7 +150,7 @@ namespace tut
ensure("LLImageDecodeThread: threaded constructor failed", mThread != NULL);
// Insert something in the queue
bool done = false;
LLImageDecodeThread::handle_t decodeHandle = mThread->decodeImage(NULL, 0, FALSE, new responder_test(&done));
LLImageDecodeThread::handle_t decodeHandle = mThread->decodeImage(NULL, 0, false, new responder_test(&done));
// Verifies we get back a valid handle
ensure("LLImageDecodeThread: threaded decodeImage(), returned handle is null", decodeHandle != 0);
// Wait till the thread has time to handle the work order (though it doesn't do much per work order...)

View File

@ -374,7 +374,7 @@ namespace tut
LLPointer<LLInventoryItem> src1 = create_random_inventory_item();
std::ostringstream ostream;
src1->exportLegacyStream(ostream, TRUE);
src1->exportLegacyStream(ostream, true);
std::istringstream istream(ostream.str());
LLPointer<LLInventoryItem> src2 = new LLInventoryItem();
@ -496,7 +496,7 @@ namespace tut
LLPointer<LLInventoryCategory> src1 = create_random_inventory_cat();
std::ostringstream ostream;
src1->exportLegacyStream(ostream, TRUE);
src1->exportLegacyStream(ostream, true);
std::istringstream istream(ostream.str());
LLPointer<LLInventoryCategory> src2 = new LLInventoryCategory();

View File

@ -84,7 +84,7 @@ namespace tut
mMessageName = "MessageName";
gUdpDispatchWasCalled = false;
gClearRecvWasCalled = false;
gValidateMessage = FALSE;
gValidateMessage = false;
mMessage["body"]["binary-template-data"] = std::vector<U8>();
}
@ -121,7 +121,7 @@ namespace tut
{
LLTemplateMessageReader* pReader = NULL;
LLTemplateMessageDispatcher t(*pReader);
gValidateMessage = TRUE;
gValidateMessage = true;
std::vector<U8> vector_data;
fillVector(vector_data, gBinaryTemplateData);
mMessage["body"]["binary-template-data"] = vector_data;
@ -138,7 +138,7 @@ namespace tut
std::vector<U8> vector_data;
fillVector(vector_data, gBinaryTemplateData);
mMessage["body"]["binary-template-data"] = vector_data;
gValidateMessage = FALSE;
gValidateMessage = false;
t.dispatch(mMessageName, mMessage, mResponsePtr);
ensure("clear received message was called", gClearRecvWasCalled);
}
@ -149,7 +149,7 @@ namespace tut
{
LLTemplateMessageReader* pReader = NULL;
LLTemplateMessageDispatcher t(*pReader);
gValidateMessage = TRUE;
gValidateMessage = true;
std::vector<U8> vector_data;
fillVector(vector_data, gBinaryTemplateData);
mMessage["body"]["binary-template-data"] = vector_data;

View File

@ -51,7 +51,7 @@ namespace tut
oversized_filename += 'X';
}
LLXfer_File xff(oversized_filename, FALSE, 1);
LLXfer_File xff(oversized_filename, false, 1);
ensure("oversized local_filename nul-terminated",
xff.getFileName().length() < LL_MAX_PATH);
}

View File

@ -46,7 +46,7 @@ public:
if (mVolumeTest.isNull() || volume_params != mCurrParamsTest || detail != mCurrDetailTest)
{
F32 volume_detail = LLVolumeLODGroup::getVolumeScaleFromDetail(detail);
mVolumeTest = new LLVolume(volume_params, volume_detail, FALSE, FALSE);
mVolumeTest = new LLVolume(volume_params, volume_detail, false, false);
mCurrParamsTest = volume_params;
mCurrDetailTest = detail;
return mVolumeTest;
@ -193,7 +193,7 @@ namespace tut
ensure(!primitive.isChanged(LLXform::GEOMETRY));
// Make sure setVolume returns true
ensure(primitive.setVolume(params, 0, true) == TRUE);
ensure(primitive.setVolume(params, 0, true) == true);
LLVolume* new_volume = primitive.getVolume();
// make sure new volume was actually created
@ -210,12 +210,12 @@ namespace tut
ensure(primitive.isChanged(LLXform::GEOMETRY));
// Run it twice to make sure it doesn't create a different one if params are the same
ensure(primitive.setVolume(params, 0, true) == FALSE);
ensure(primitive.setVolume(params, 0, true) == false);
ensure(new_volume == primitive.getVolume());
// Change the param definition and try setting it again.
params.setRevolutions(4);
ensure(primitive.setVolume(params, 0, true) == TRUE);
ensure(primitive.setVolume(params, 0, true) == true);
// Ensure that we now have a different volume
ensure(new_volume != primitive.getVolume());
@ -238,7 +238,7 @@ namespace tut
ensure(!primitive.isChanged(LLXform::GEOMETRY));
// Make sure setVolume returns true
ensure(primitive.setVolume(params, 0, false) == TRUE);
ensure(primitive.setVolume(params, 0, false) == true);
LLVolume* new_volume = primitive.getVolume();
@ -256,12 +256,12 @@ namespace tut
ensure(primitive.isChanged(LLXform::GEOMETRY));
// Run it twice to make sure it doesn't create a different one if params are the same
ensure(primitive.setVolume(params, 0, false) == FALSE);
ensure(primitive.setVolume(params, 0, false) == false);
ensure(new_volume == primitive.getVolume());
// Change the param definition and try setting it again.
params.setRevolutions(4);
ensure(primitive.setVolume(params, 0, false) == TRUE);
ensure(primitive.setVolume(params, 0, false) == true);
// Ensure that we now have a different volume
ensure(new_volume != primitive.getVolume());

View File

@ -104,6 +104,13 @@ LLSearchEditor::LLSearchEditor(const LLSearchEditor::Params& p)
}
}
LLSearchEditor::~LLSearchEditor()
{
mKeystrokeCallback = NULL;
mTextChangedCallback = NULL;
setCommitOnFocusLost(false);
}
//virtual
void LLSearchEditor::draw()
{

View File

@ -74,7 +74,7 @@ protected:
friend class LLUICtrlFactory;
public:
virtual ~LLSearchEditor() {}
virtual ~LLSearchEditor();
/*virtual*/ void draw();

View File

@ -1105,7 +1105,7 @@ U32 LLControlGroup::loadFromFile(const std::string& filename, bool set_default_v
{
infile.close();
LL_WARNS("Settings") << "Unable to parse LLSD control file " << filename << ". Trying Legacy Method." << LL_ENDL;
return loadFromFileLegacy(filename, TRUE, TYPE_STRING);
return loadFromFileLegacy(filename, true, TYPE_STRING);
}
U32 validitems = 0;
@ -1304,7 +1304,7 @@ void main()
// ...invalid data type
getfoo = (F32_CONTROL) gGlobals.resolveName("gFoo");
getfoo->set(TRUE);
getfoo->set(true);
getfoo->dump();
// ...out of range data

View File

@ -112,7 +112,7 @@ namespace tut
LLControlGroup test_cg("foo2");
std::string temp_test_file = (mTestConfigDir + "setting_llsd_temp.xml");
mCleanups.push_back(temp_test_file);
mCG->saveToFile(temp_test_file.c_str(), TRUE);
mCG->saveToFile(temp_test_file.c_str(), true);
results = test_cg.loadFromFile(temp_test_file.c_str());
ensure("number of changed settings loaded", (results == 1));
ensure("value of changed settings loaded", (test_cg.getU32("TestSetting") == 13));
@ -129,12 +129,12 @@ namespace tut
int results = mCG->loadFromFile(mTestConfigFile.c_str(), true);
LLControlVariable* control = mCG->getControl("TestSetting");
LLSD new_value = 13;
control->setValue(new_value, FALSE);
control->setValue(new_value, false);
ensure_equals("value of changed setting", mCG->getU32("TestSetting"), 13);
LLControlGroup test_cg("foo3");
std::string temp_test_file = (mTestConfigDir + "setting_llsd_persist_temp.xml");
mCleanups.push_back(temp_test_file);
mCG->saveToFile(temp_test_file.c_str(), TRUE);
mCG->saveToFile(temp_test_file.c_str(), true);
results = test_cg.loadFromFile(temp_test_file.c_str());
//If we haven't changed any settings, then we shouldn't have any settings to load
ensure("number of non-persisted changed settings loaded", (results == 0));

View File

@ -1610,7 +1610,6 @@ set(viewer_HEADER_FILES
llworldmapview.h
llxmlrpclistener.h
llxmlrpctransaction.h
macmain.h
noise.h
particleeditor.h
permissionstracker.h

View File

@ -15,6 +15,7 @@
<string>RenderAttachedParticles</string>
<string>RenderAutoMaskAlphaDeferred</string>
<string>RenderAutoMaskAlphaNonDeferred</string>
<string>RenderAvatarComplexityMode</string>
<string>RenderAvatarLODFactor</string>
<string>RenderAvatarMaxComplexity</string>
<string>RenderAvatarMaxNonImpostors</string>

View File

@ -11761,17 +11761,6 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>1</integer>
</map>
<key>AlwaysRenderFriends</key>
<map>
<key>Comment</key>
<string>Always render friends regardless of max complexity</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>RenderAvatar</key>
<map>
<key>Comment</key>
@ -14055,16 +14044,16 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Backup</key>
<integer>0</integer>
</map>
<key>RenderUseImpostors</key>
<key>RenderAvatarComplexityMode</key>
<map>
<key>Comment</key>
<string>OBSOLETE and UNUSED. See RenderAvatarMaxNonImpostors and RenderAvatarMaxComplexity.</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
<key>Comment</key>
<string>0 - complexity limit applies to everyone, 1 - always show friends, 2 - only show friends</string>
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>S32</string>
<key>Value</key>
<real>0</real>
</map>
<key>RenderAvatarMaxNonImpostors</key>
<map>

View File

@ -174,7 +174,7 @@ FSAreaSearch::FSAreaSearch(const LLSD& key) :
mRlvBehaviorCallbackConnection()
{
gAgent.setFSAreaSearchActive(true);
gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_360);
gAgent.changeInterestListMode(IL_MODE_360);
mFactoryMap["area_search_list_panel"] = LLCallbackMap(createPanelList, this);
mFactoryMap["area_search_find_panel"] = LLCallbackMap(createPanelFind, this);
mFactoryMap["area_search_filter_panel"] = LLCallbackMap(createPanelFilter, this);
@ -197,7 +197,7 @@ FSAreaSearch::~FSAreaSearch()
// list updates.
if( !LLApp::isExiting() )
{
gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_DEFAULT);
gAgent.changeInterestListMode(IL_MODE_DEFAULT);
}
if (!gIdleCallbacks.deleteFunction(idle, this))

View File

@ -444,7 +444,7 @@ LLAgent::LLAgent() :
mHttpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID),
mTeleportState(TELEPORT_NONE),
mRegionp(NULL),
mInterestListMode(LLViewerRegion::IL_MODE_DEFAULT),
mInterestListMode(IL_MODE_DEFAULT),
mAgentOriginGlobal(),
mPositionGlobal(),
@ -1161,11 +1161,11 @@ void LLAgent::capabilityReceivedCallback(const LLUUID &region_id, LLViewerRegion
LLAppViewer::instance()->updateNameLookupUrl(regionp);
}
if (gAgent.getInterestListMode() == LLViewerRegion::IL_MODE_360)
if (gAgent.getInterestListMode() == IL_MODE_360)
{
// <FS:Beq> make this actually work
// gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_360);
regionp->setInterestListMode(LLViewerRegion::IL_MODE_360);
// gAgent.changeInterestListMode(IL_MODE_360);
regionp->setInterestListMode(IL_MODE_360);
// </FS:Beq>
}
}
@ -1220,10 +1220,10 @@ void LLAgent::setRegion(LLViewerRegion *regionp)
LLAppViewer::instance()->updateNameLookupUrl(regionp);
// <FS:Beq> move the interestlist update to a place where it is safe.
// Set the region to the desired interest list mode
if (getInterestListMode() == LLViewerRegion::IL_MODE_360)
if (getInterestListMode() == IL_MODE_360)
{
changeInterestListMode(LLViewerRegion::IL_MODE_360);
regionp->setCapabilitiesReceivedCallback(LLAgent::capabilityReceivedCallback);
changeInterestListMode(IL_MODE_360);
regionp->setCapabilitiesReceivedCallback(LLAgent::capabilityReceivedCallback);
}
// </FS:Beq>
}
@ -3604,8 +3604,8 @@ void LLAgent::changeInterestListMode(const std::string &new_mode)
if (new_mode != mInterestListMode)
{
// <FS:Beq> Fix area search again
if ( (new_mode == LLViewerRegion::IL_MODE_DEFAULT && (!mFSAreaSearchActive && !m360CaptureActive)) ||
(new_mode == LLViewerRegion::IL_MODE_360) )
if ( (new_mode == IL_MODE_DEFAULT && (!mFSAreaSearchActive && !m360CaptureActive)) ||
(new_mode == IL_MODE_360) )
{
LL_DEBUGS("360Capture") << "Setting Agent interest list mode to " << new_mode << " and updating regions" << LL_ENDL;
// </FS:Beq>

View File

@ -355,22 +355,20 @@ void LLConversationItemSession::clearParticipants()
void LLConversationItemSession::clearAndDeparentModels()
{
std::for_each(mChildren.begin(), mChildren.end(),
[](LLFolderViewModelItem* c)
for (LLFolderViewModelItem* child : mChildren)
{
if (child->getNumRefs() == 0)
{
if (c->getNumRefs() == 0)
{
// LLConversationItemParticipant can be created but not assigned to any view,
// it was waiting for an "add_participant" event to be processed
delete c;
}
else
{
// Model is still assigned to some view/widget
c->setParent(NULL);
}
// LLConversationItemParticipant can be created but not assigned to any view,
// it was waiting for an "add_participant" event to be processed
delete child;
}
);
else
{
// Model is still assigned to some view/widget
child->setParent(NULL);
}
}
mChildren.clear();
}

View File

@ -67,7 +67,7 @@ LLFloater360Capture::LLFloater360Capture(const LLSD& key)
mStartILMode = gAgent.getInterestListMode();
gAgent.set360CaptureActive(true); // <FS:Beq/> make FS area search work aga
// send everything to us for as long as this floater is open
gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_360);
gAgent.changeInterestListMode(IL_MODE_360);
}
LLFloater360Capture::~LLFloater360Capture()
@ -94,7 +94,7 @@ LLFloater360Capture::~LLFloater360Capture()
if ( !LLApp::isExiting() )
{
gAgent.set360CaptureActive(false); // <FS:Beq/> make FS Area search work again
gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_DEFAULT);// The Change Interest Mode target mode is indicative only. If something else is holding the 360 mode open then this will be ignored.
gAgent.changeInterestListMode(IL_MODE_DEFAULT);// The Change Interest Mode target mode is indicative only. If something else is holding the 360 mode open then this will be ignored.
}
}

View File

@ -101,6 +101,26 @@ LLFloaterIMSessionTab::LLFloaterIMSessionTab(const LLSD& session_id)
LLFloaterIMSessionTab::~LLFloaterIMSessionTab()
{
delete mRefreshTimer;
LLFloaterIMContainer* im_container = LLFloaterIMContainer::findInstance();
if (im_container)
{
LLParticipantList* session = dynamic_cast<LLParticipantList*>(im_container->getSessionModel(mSessionID));
if (session)
{
for (const conversations_widgets_map::value_type& widget_pair : mConversationsWidgets)
{
LLFolderViewItem* widget = widget_pair.second;
LLFolderViewModelItem* item_vmi = widget->getViewModelItem();
if (item_vmi && item_vmi->getNumRefs() == 1)
{
// This is the last pointer, remove participant from session
// before participant gets deleted on destroyView.
session->removeChild(item_vmi);
}
}
}
}
}
//static
@ -452,7 +472,6 @@ void LLFloaterIMSessionTab::appendMessage(const LLChat& chat, const LLSD &args)
{
im_box->setTimeNow(mSessionID,chat.mFromID);
}
LLChat& tmp_chat = const_cast<LLChat&>(chat);
@ -547,6 +566,27 @@ void LLFloaterIMSessionTab::removeConversationViewParticipant(const LLUUID& part
LLFolderViewItem* widget = get_ptr_in_map(mConversationsWidgets,participant_id);
if (widget)
{
LLFolderViewModelItem* item_vmi = widget->getViewModelItem();
if (item_vmi && item_vmi->getNumRefs() == 1)
{
// This is the last pointer, remove participant from session
// before participant gets deleted on destroyView.
//
// Floater (widget) and participant's view can simultaneously
// co-own the model, in which case view is responsible for
// the deletion and floater is free to clear and recreate
// the list, yet there are cases where only widget owns
// the pointer so it should do the cleanup.
// See "add_participant".
//
// Todo: If it keeps causing issues turn participants
// into LLPointers in the session
LLParticipantList* session = getParticipantList();
if (session)
{
session->removeChild(item_vmi);
}
}
widget->destroyView();
}
mConversationsWidgets.erase(participant_id);

View File

@ -662,6 +662,12 @@ bool LLFloaterPreference::postBuild()
gSavedSettings.getControl("PreferredMaturity")->getSignal()->connect(boost::bind(&LLFloaterPreference::onChangeMaturity, this));
gSavedSettings.getControl("RenderAvatarComplexityMode")->getSignal()->connect(
[this](LLControlVariable* control, const LLSD& new_val, const LLSD& old_val)
{
onChangeComplexityMode(new_val);
});
gSavedPerAccountSettings.getControl("ModelUploadFolder")->getSignal()->connect(boost::bind(&LLFloaterPreference::onChangeModelFolder, this));
gSavedPerAccountSettings.getControl("PBRUploadFolder")->getSignal()->connect(boost::bind(&LLFloaterPreference::onChangePBRFolder, this));
gSavedPerAccountSettings.getControl("TextureUploadFolder")->getSignal()->connect(boost::bind(&LLFloaterPreference::onChangeTextureFolder, this));
@ -716,6 +722,9 @@ bool LLFloaterPreference::postBuild()
LLSliderCtrl* fov_slider = getChild<LLSliderCtrl>("camera_fov");
fov_slider->setMinValue(LLViewerCamera::getInstance()->getMinView());
fov_slider->setMaxValue(LLViewerCamera::getInstance()->getMaxView());
bool enable_complexity = gSavedSettings.getS32("RenderAvatarComplexityMode") != LLVOAvatar::AV_RENDER_ONLY_SHOW_FRIENDS;
getChild<LLSliderCtrl>("IndirectMaxComplexity")->setEnabled(enable_complexity);
// Hook up and init for filtering
mFilterEdit = getChild<LLSearchEditor>("search_prefs_edit");
@ -2841,6 +2850,12 @@ void LLFloaterPreference::onChangeMaturity()
getChild<LLIconCtrl>("rating_icon_adult")->setVisible(sim_access == SIM_ACCESS_ADULT);
}
void LLFloaterPreference::onChangeComplexityMode(const LLSD& newvalue)
{
bool enable_complexity = newvalue.asInteger() != LLVOAvatar::AV_RENDER_ONLY_SHOW_FRIENDS;
getChild<LLSliderCtrl>("IndirectMaxComplexity")->setEnabled(enable_complexity);
}
std::string get_category_path(LLUUID cat_id)
{
LLViewerInventoryCategory* cat = gInventory.getCategory(cat_id);

View File

@ -229,7 +229,6 @@ public:
bool moveTranscriptsAndLog();
//[FIX FIRE-2765 : SJ] Making sure Reset button resets works
void onClickResetLogPath();
void enableHistory();
// <FS:Ansariel> Show email address in preferences (FIRE-1071) and keep for OpenSim
//void setPersonalInfo(const std::string& visibility);
void setPersonalInfo(const std::string& visibility, bool im_via_email, const std::string& email);
@ -260,10 +259,8 @@ public:
void refreshUI();
void onCommitMediaEnabled();
void onCommitMusicEnabled();
void applyResolution();
void onChangeMaturity();
void onChangeComplexityMode(const LLSD& newvalue);
void onChangeModelFolder();
void onChangePBRFolder();
void onChangeTextureFolder();

View File

@ -52,14 +52,14 @@ LLFloaterPreferenceGraphicsAdvanced::LLFloaterPreferenceGraphicsAdvanced(const L
mCommitCallbackRegistrar.add("Pref.Cancel", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onBtnCancel, this, _2));
mCommitCallbackRegistrar.add("Pref.OK", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onBtnOK, this, _2));
gSavedSettings.getControl("RenderAvatarMaxNonImpostors")->getSignal()->connect(boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateIndirectMaxNonImpostors, this, _2));
}
LLFloaterPreferenceGraphicsAdvanced::~LLFloaterPreferenceGraphicsAdvanced()
{
mComplexityChangedSignal.disconnect();
mComplexityModeChangedSignal.disconnect();
mLODFactorChangedSignal.disconnect();
mNumImpostorsChangedSignal.disconnect();
}
bool LLFloaterPreferenceGraphicsAdvanced::postBuild()
@ -79,8 +79,26 @@ bool LLFloaterPreferenceGraphicsAdvanced::postBuild()
use_HiDPI->setVisible(false);
#endif
mComplexityChangedSignal = gSavedSettings.getControl("RenderAvatarMaxComplexity")->getCommitSignal()->connect(boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateComplexityText, this));
mLODFactorChangedSignal = gSavedSettings.getControl("RenderVolumeLODFactor")->getCommitSignal()->connect(boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateObjectMeshDetailText, this));
mComplexityChangedSignal = gSavedSettings.getControl("RenderAvatarMaxComplexity")->getCommitSignal()->connect(
[this](LLControlVariable* control, const LLSD& new_val, const LLSD& old_val)
{
updateComplexityText();
});
mComplexityModeChangedSignal = gSavedSettings.getControl("RenderAvatarComplexityMode")->getSignal()->connect(
[this](LLControlVariable* control, const LLSD& new_val, const LLSD& old_val)
{
updateComplexityMode(new_val);
});
mLODFactorChangedSignal = gSavedSettings.getControl("RenderVolumeLODFactor")->getCommitSignal()->connect(
[this](LLControlVariable* control, const LLSD& new_val, const LLSD& old_val)
{
updateObjectMeshDetailText();
});
mNumImpostorsChangedSignal = gSavedSettings.getControl("RenderAvatarMaxNonImpostors")->getSignal()->connect(
[this](LLControlVariable* control, const LLSD& new_val, const LLSD& old_val)
{
updateIndirectMaxNonImpostors(new_val);
});
return true;
}
@ -145,6 +163,10 @@ void LLFloaterPreferenceGraphicsAdvanced::refresh()
gSavedSettings.getU32("RenderAvatarMaxComplexity"),
getChild<LLTextBox>("IndirectMaxComplexityText", true));
refreshEnabledState();
bool enable_complexity = gSavedSettings.getS32("RenderAvatarComplexityMode") != LLVOAvatar::AV_RENDER_ONLY_SHOW_FRIENDS;
getChild<LLSliderCtrl>("IndirectMaxComplexity")->setEnabled(enable_complexity);
getChild<LLSliderCtrl>("IndirectMaxNonImpostors")->setEnabled(enable_complexity);
}
void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledGraphics()
@ -160,6 +182,13 @@ void LLFloaterPreferenceGraphicsAdvanced::updateMaxComplexity()
getChild<LLTextBox>("IndirectMaxComplexityText"));
}
void LLFloaterPreferenceGraphicsAdvanced::updateComplexityMode(const LLSD& newvalue)
{
bool enable_complexity = newvalue.asInteger() != LLVOAvatar::AV_RENDER_ONLY_SHOW_FRIENDS;
getChild<LLSliderCtrl>("IndirectMaxComplexity")->setEnabled(enable_complexity);
getChild<LLSliderCtrl>("IndirectMaxNonImpostors")->setEnabled(enable_complexity);
}
void LLFloaterPreferenceGraphicsAdvanced::updateComplexityText()
{
LLAvatarComplexityControls::setText(gSavedSettings.getU32("RenderAvatarMaxComplexity"),

View File

@ -48,6 +48,7 @@ public:
void updateIndirectMaxNonImpostors(const LLSD& newvalue);
void setMaxNonImpostorsText(U32 value, LLTextBox* text_box);
void updateMaxComplexity();
void updateComplexityMode(const LLSD& newvalue);
void updateComplexityText();
void updateObjectMeshDetailText();
void refresh();
@ -61,7 +62,9 @@ protected:
void onBtnCancel(const LLSD& userdata);
boost::signals2::connection mComplexityChangedSignal;
boost::signals2::connection mComplexityModeChangedSignal;
boost::signals2::connection mLODFactorChangedSignal;
boost::signals2::connection mNumImpostorsChangedSignal;
};
#endif //LLFLOATERPREFERENCEGRAPHICSADVANCED_H

View File

@ -452,6 +452,7 @@ LLPanelGroupSubTab::LLPanelGroupSubTab()
LLPanelGroupSubTab::~LLPanelGroupSubTab()
{
mSearchCommitConnection.disconnect();
}
bool LLPanelGroupSubTab::postBuildSubTab(LLView* root)
@ -484,7 +485,8 @@ bool LLPanelGroupSubTab::postBuild()
mSearchEditor = findChild<LLFilterEditor>("filter_input", recurse);
if (mSearchEditor) // SubTab doesn't implement this, only some of derived classes
{
mSearchEditor->setCommitCallback(boost::bind(&LLPanelGroupSubTab::setSearchFilter, this, _2));
// panel
mSearchCommitConnection = mSearchEditor->setCommitCallback(boost::bind(&LLPanelGroupSubTab::setSearchFilter, this, _2));
}
return LLPanelGroupTab::postBuild();

View File

@ -143,6 +143,7 @@ protected:
LLPanel* mFooter;
LLFilterEditor* mSearchEditor;
boost::signals2::connection mSearchCommitConnection;
std::string mSearchFilter;

View File

@ -625,6 +625,11 @@ LLPanelPeople::~LLPanelPeople()
delete mFriendListUpdater;
delete mRecentListUpdater;
mNearbyFilterCommitConnection.disconnect();
mFriedsFilterCommitConnection.disconnect();
mGroupsFilterCommitConnection.disconnect();
mRecentFilterCommitConnection.disconnect();
if(LLVoiceClient::instanceExists())
{
LLVoiceClient::getInstance()->removeObserver(this);
@ -669,10 +674,10 @@ bool LLPanelPeople::postBuild()
// </FS:Ansariel>
// <FS:Ansariel> Firestorm radar
//getChild<LLFilterEditor>("nearby_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
getChild<LLFilterEditor>("friends_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
getChild<LLFilterEditor>("groups_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
getChild<LLFilterEditor>("recent_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
//mNearbyFilterCommitConnection = getChild<LLFilterEditor>("nearby_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
mFriedsFilterCommitConnection = getChild<LLFilterEditor>("friends_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
mGroupsFilterCommitConnection = getChild<LLFilterEditor>("groups_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
mRecentFilterCommitConnection = getChild<LLFilterEditor>("recent_filter_input")->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
// <FS:Ansariel> Don't bother with "want more?" advertisement
//if(LLAgentBenefitsMgr::current().getGroupMembershipLimit() < max_premium)

View File

@ -176,6 +176,11 @@ private:
Updater* mRecentListUpdater;
Updater* mButtonsUpdater;
LLHandle< LLFloater > mPicker;
boost::signals2::connection mNearbyFilterCommitConnection;
boost::signals2::connection mFriedsFilterCommitConnection;
boost::signals2::connection mGroupsFilterCommitConnection;
boost::signals2::connection mRecentFilterCommitConnection;
// [FS:CR] Contact sets
bool onContactSetsEnable(const LLSD& userdata);

View File

@ -1082,8 +1082,13 @@ void handlePerformanceStatsEnabledChanged(const LLSD& newValue)
}
void handleUserImpostorByDistEnabledChanged(const LLSD& newValue)
{
const auto newval = gSavedSettings.getBOOL("AutoTuneImpostorByDistEnabled");
LLPerfStats::tunables.userImpostorDistanceTuningEnabled = newval;
bool auto_tune_newval = false;
S32 mode = gSavedSettings.getS32("RenderAvatarComplexityMode");
if (mode != LLVOAvatar::AV_RENDER_ONLY_SHOW_FRIENDS)
{
auto_tune_newval = gSavedSettings.getBOOL("AutoTuneImpostorByDistEnabled");
}
LLPerfStats::tunables.userImpostorDistanceTuningEnabled = auto_tune_newval;
}
void handleUserImpostorDistanceChanged(const LLSD& newValue)
{
@ -1171,6 +1176,7 @@ void settings_setup_listeners()
setting_setup_signal_listener(gSavedSettings, "RenderGlowNoise", handleSetShaderChanged);
setting_setup_signal_listener(gSavedSettings, "RenderGammaFull", handleSetShaderChanged);
setting_setup_signal_listener(gSavedSettings, "RenderVolumeLODFactor", handleVolumeLODChanged);
setting_setup_signal_listener(gSavedSettings, "RenderAvatarComplexityMode", handleUserImpostorByDistEnabledChanged);
setting_setup_signal_listener(gSavedSettings, "RenderAvatarLODFactor", handleAvatarLODChanged);
setting_setup_signal_listener(gSavedSettings, "RenderAvatarPhysicsLODFactor", handleAvatarPhysicsLODChanged);
setting_setup_signal_listener(gSavedSettings, "RenderTerrainLODFactor", handleTerrainLODChanged);

View File

@ -1451,20 +1451,20 @@ public:
bool handleEvent(const LLSD &userdata)
{
// Toggle the mode - regions will get updated
if (gAgent.getInterestListMode() == LLViewerRegion::IL_MODE_360)
if (gAgent.getInterestListMode() == IL_MODE_360)
{
// <FS:Beq> we need to force the 360 mode "users" to false or this override will fail
gAgent.setFSAreaSearchActive(false);
gAgent.set360CaptureActive(false);
// <FS:Beq/>
gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_DEFAULT);
gAgent.changeInterestListMode(IL_MODE_DEFAULT);
}
else
{
// <FS:Beq> we need to force the 360 mode user flag to true or this override will fail. Don;t set area search though as that can have other effects.
gAgent.set360CaptureActive(false);
// <FS:Beq/>
gAgent.changeInterestListMode(LLViewerRegion::IL_MODE_360);
gAgent.changeInterestListMode(IL_MODE_360);
}
return true;
}
@ -1474,7 +1474,7 @@ class LLAdvancedCheckInterestList360Mode : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
return (gAgent.getInterestListMode() == LLViewerRegion::IL_MODE_360);
return (gAgent.getInterestListMode() == IL_MODE_360);
}
};

View File

@ -112,9 +112,6 @@ S32 LLViewerRegion::sLastCameraUpdated = 0;
S32 LLViewerRegion::sNewObjectCreationThrottle = -1;
LLViewerRegion::vocache_entry_map_t LLViewerRegion::sRegionCacheCleanup;
const std::string LLViewerRegion::IL_MODE_DEFAULT = "default";
const std::string LLViewerRegion::IL_MODE_360 = "360";
typedef std::map<std::string, std::string> CapabilityMap;
static void log_capabilities(const CapabilityMap &capmap);
@ -3692,7 +3689,7 @@ void LLViewerRegion::setInterestListMode(const std::string &new_mode)
{
mInterestListMode = new_mode;
if (mInterestListMode != std::string(IL_MODE_DEFAULT) && mInterestListMode != std::string(IL_MODE_360))
if (mInterestListMode != IL_MODE_DEFAULT && mInterestListMode != IL_MODE_360)
{
LL_WARNS("360Capture") << "Region " << getRegionID() << " setInterestListMode() invalid interest list mode: "
<< mInterestListMode << ", setting to default" << LL_ENDL;

View File

@ -52,6 +52,11 @@ const U32 MAX_OBJECT_CACHE_ENTRIES = 50000;
// Region handshake flags
const U32 REGION_HANDSHAKE_SUPPORTS_SELF_APPEARANCE = 1U << 2;
// Interest list mode,
// in use by agent and region classes so must exist before region classes
const std::string IL_MODE_DEFAULT = "default";
const std::string IL_MODE_360 = "360";
class LLEventPoll;
class LLVLComposition;
class LLViewerObject;
@ -536,9 +541,6 @@ public:
void resetInterestList();
static const std::string IL_MODE_DEFAULT;
static const std::string IL_MODE_360;
private:
static S32 sNewObjectCreationThrottle;
LLViewerRegionImpl * mImpl;

View File

@ -913,10 +913,6 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
min_scale = llmax(min_scale*min_scale, 0.1f);
vsize /= min_scale;
#if LL_DARWIN
vsize /= 1.f + LLViewerTexture::sDesiredDiscardBias*(1.f+face->getDrawable()->mDistanceWRTCamera*bias_distance_scale);
#else
vsize /= LLViewerTexture::sDesiredDiscardBias;
vsize /= llmax(1.f, (LLViewerTexture::sDesiredDiscardBias-1.f) * (1.f + face->getDrawable()->mDistanceWRTCamera * bias_distance_scale));
@ -927,7 +923,6 @@ void LLViewerTextureList::updateImageDecodePriority(LLViewerFetchedTexture* imag
{ // further reduce by discard bias when off screen or occluded
vsize /= LLViewerTexture::sDesiredDiscardBias;
}
#endif
// if a GLTF material is present, ignore that face
// as far as this texture stats go, but update the GLTF material
// stats

View File

@ -9278,13 +9278,17 @@ bool LLVOAvatar::isFullyLoaded() const
bool LLVOAvatar::isTooComplex() const
{
bool too_complex;
static LLCachedControl<bool> always_render_friends(gSavedSettings, "AlwaysRenderFriends");
bool render_friend = (LLAvatarTracker::instance().isBuddy(getID()) && always_render_friends);
static LLCachedControl<S32> compelxity_render_mode(gSavedSettings, "RenderAvatarComplexityMode");
bool render_friend = (LLAvatarTracker::instance().isBuddy(getID()) && compelxity_render_mode > AV_RENDER_LIMIT_BY_COMPLEXITY);
if (isSelf() || render_friend || mVisuallyMuteSetting == AV_ALWAYS_RENDER)
{
too_complex = false;
}
else if (compelxity_render_mode == AV_RENDER_ONLY_SHOW_FRIENDS && !mIsControlAvatar)
{
too_complex = true;
}
else
{
// Determine if visually muted or not
@ -9304,13 +9308,17 @@ bool LLVOAvatar::isTooComplex() const
bool LLVOAvatar::isTooSlow() const
{
static LLCachedControl<bool> always_render_friends(gSavedSettings, "AlwaysRenderFriends");
bool render_friend = (LLAvatarTracker::instance().isBuddy(getID()) && always_render_friends);
static LLCachedControl<S32> compelxity_render_mode(gSavedSettings, "RenderAvatarComplexityMode");
bool render_friend = (LLAvatarTracker::instance().isBuddy(getID()) && compelxity_render_mode > AV_RENDER_LIMIT_BY_COMPLEXITY);
if (render_friend || mVisuallyMuteSetting == AV_ALWAYS_RENDER)
{
return false;
}
else if (compelxity_render_mode == AV_RENDER_ONLY_SHOW_FRIENDS && !mIsControlAvatar)
{
return true;
}
return mTooSlow;
}
@ -9318,7 +9326,7 @@ bool LLVOAvatar::isTooSlow() const
void LLVOAvatar::updateTooSlow()
{
LL_PROFILE_ZONE_SCOPED_CATEGORY_AVATAR;
static LLCachedControl<bool> alwaysRenderFriends(gSavedSettings, "AlwaysRenderFriends");
static LLCachedControl<S32> compelxity_render_mode(gSavedSettings, "RenderAvatarComplexityMode");
static LLCachedControl<bool> allowSelfImpostor(gSavedSettings, "AllowSelfImpostor");
const auto id = getID();
bool changed_slow_state{false}; // <FS:Beq> Post LL merge, force dirty when slowness state changes
@ -9352,12 +9360,14 @@ void LLVOAvatar::updateTooSlow()
if(!mTooSlowWithoutShadows) // if we were not previously above the full impostor cap
{
bool render_friend_or_exception = ( alwaysRenderFriends && LLAvatarTracker::instance().isBuddy( id ) ) ||
bool always_render_friends = compelxity_render_mode > AV_RENDER_LIMIT_BY_COMPLEXITY;
bool render_friend_or_exception = (always_render_friends && LLAvatarTracker::instance().isBuddy( id ) ) ||
( getVisualMuteSettings() == LLVOAvatar::AV_ALWAYS_RENDER );
if( (!isSelf() || allowSelfImpostor) && !render_friend_or_exception )
if( (!isSelf() || allowSelfImpostor) && !render_friend_or_exception)
{
// Note: slow rendering Friends still get their shadows zapped.
mTooSlowWithoutShadows = getGPURenderTime()*2.f >= max_art_ms; // NOTE: assumes shadow rendering doubles render time
mTooSlowWithoutShadows = (getGPURenderTime()*2.f >= max_art_ms) // NOTE: assumes shadow rendering doubles render time
|| (compelxity_render_mode == AV_RENDER_ONLY_SHOW_FRIENDS && !mIsControlAvatar);
}
if(mTooSlowWithoutShadows)
{

View File

@ -508,7 +508,14 @@ public:
// [RLVa:KB] - Checked: RLVa-2.2 (@setcam_avdist)
bool isRlvSilhouette() const;
// [/RLVa:KB]
void forceUpdateVisualMuteSettings();
// states for RenderAvatarComplexityMode
enum ERenderComplexityMode
{
AV_RENDER_LIMIT_BY_COMPLEXITY = 0,
AV_RENDER_ALWAYS_SHOW_FRIENDS = 1,
AV_RENDER_ONLY_SHOW_FRIENDS = 2
};
// Visual Mute Setting is an input. Does not necessarily determine
// what the avatar looks like, because it interacts with other

View File

@ -1,44 +0,0 @@
/**
* @file macmain.h
* @brief Main Mac viewer defines
*
* $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
/* main.h */
#define rMenuBar 128 /* menu bar */
#define mApple 128 /* Apple menu */
#define iAbout 1
#define mFile 129 /* File menu */
#define iNew 1
#define iClose 4
#define iQuitSeparator 10
#define iQuit 11
#define mEdit 130 /* Edit menu */
#define kAboutBox 200 /* Dialog resource for About box */
#define kSleepTime 32767

View File

@ -173,7 +173,6 @@
<menu_item_call label="Animasiya kəşfi" name="Animation Explorer"/>
<menu_item_call label="Aktivlərin qara siyahısı" name="asset_blacklist"/>
<menu_item_call label="Avatarların görüntü ayarları" name="Avatar Render Settings"/>
<menu_item_check label="Həmişə dostlarını tam göstərmək" name="Always show Friends normally"/>
<menu_item_check label="Yalnız dostları göstərmək" name="Render Friends Only"/>
</menu>

View File

@ -172,7 +172,6 @@
<menu_item_call label="Animation-Explorer" name="Animation Explorer"/>
<menu_item_call label="Asset-Blacklist" name="asset_blacklist"/>
<menu_item_call label="Avatar-Anzeigeeinstellungen" name="Avatar Render Settings"/>
<menu_item_check label="Freunde immer komplett anzeigen" name="Always show Friends normally"/>
<menu_item_check label="Nur Freunde anzeigen" name="Render Friends Only"/>
</menu>
<menu label="Bauen" name="BuildTools">

View File

@ -83,6 +83,14 @@
m
</text>
<slider label="Max. Partikelanzahl:" name="MaxParticleCount"/>
<text width="125" name="AvatarComplexityModeLabel">
Avatar-Darstellung:
</text>
<combo_box name="AvatarComplexityMode" width="175">
<combo_box.item label="Komplexitätsbegrenzung" name="0"/>
<combo_box.item label="Freunde immer anzeigen" name="1"/>
<combo_box.item label="Nur Freunde anzeigen" name="2"/>
</combo_box>
<slider label="Max. Komplexität:" name="IndirectMaxComplexity" tool_tip="Legt fest, ab welchem Wert ein visuell komplexer Avatar als JellyDoll dargestellt wird."/>
<slider label="Max. voll dargestellte Avatare:" name="IndirectMaxNonImpostors"/>
<slider label="Post-Processing-Qualität:" name="RenderPostProcess"/>

View File

@ -128,6 +128,42 @@
Avatar
</text>
<text
type="string"
length="1"
follows="left|top"
height="16"
layout="topleft"
left="30"
top_delta="16"
width="128"
name="AvatarComplexityModeLabel"
text_readonly_color="LabelDisabledColor">
Avatar display:
</text>
<combo_box
control_name="RenderAvatarComplexityMode"
height="18"
layout="topleft"
left_delta="130"
top_delta="0"
name="AvatarComplexityMode"
width="150">
<combo_box.item
label="Limit by complexity"
name="0"
value="0"/>
<combo_box.item
label="Always show friends"
name="1"
value="1"/>
<combo_box.item
label="Only show friends"
name="2"
value="2"/>
</combo_box>
<slider
control_name="IndirectMaxComplexity"
tool_tip="Controls at what point a visually complex avatar is drawn as a JellyDoll"

View File

@ -1614,16 +1614,6 @@
function="Floater.Toggle"
parameter="fs_avatar_render_settings" />
</menu_item_call>
<menu_item_check
label="Always show Friends fully"
name="Always show Friends normally">
<menu_item_check.on_click
function="ToggleControl"
parameter="AlwaysRenderFriends"/>
<menu_item_check.on_check
function="CheckControl"
parameter="AlwaysRenderFriends"/>
</menu_item_check>
<menu_item_check
label="Show Friends only"
name="Render Friends Only">

View File

@ -194,18 +194,41 @@ top="0">
width="580">
Note: Your own avatar includes viewer overheads. Use the attachment tab to see how you affect others.
</text>
<check_box
control_name="AlwaysRenderFriends"
<text
type="string"
length="1"
follows="left|top"
height="16"
initial_value="true"
label="Always display friends in full detail"
label_text.text_color="White"
layout="topleft"
name="display_friends"
top_pad="2"
left="18"
width="256">
</check_box>
top_pad="2"
name="AvatarComplexityModeLabel"
text_readonly_color="LabelDisabledColor"
width="128">
Avatar display:
</text>
<combo_box
control_name="RenderAvatarComplexityMode"
height="23"
layout="topleft"
left_delta="130"
top_delta="-4"
name="AvatarComplexityMode"
width="150">
<combo_box.item
label="Limit by complexity"
name="0"
value="0"/>
<combo_box.item
label="Always show friends"
name="1"
value="1"/>
<combo_box.item
label="Only show friends"
name="2"
value="2"/>
</combo_box>
<button
height="23"
label="Exceptions..."

View File

@ -472,6 +472,39 @@
name="MaxParticleCount"
top_pad="6"
width="301" />
<text
type="string"
length="1"
follows="left|top"
height="16"
layout="topleft"
left="200"
top_pad="8"
width="150"
name="AvatarComplexityModeLabel">
Avatar display
</text>
<combo_box
control_name="RenderAvatarComplexityMode"
height="23"
layout="topleft"
left_pad="2"
top_delta="-4"
name="AvatarComplexityMode"
width="150">
<combo_box.item
label="Limit by complexity"
name="0"
value="0"/>
<combo_box.item
label="Always show friends"
name="1"
value="1"/>
<combo_box.item
label="Only show friends"
name="2"
value="2"/>
</combo_box>
<slider
control_name="IndirectMaxComplexity"
tool_tip="Controls at what point a visually complex avatar is drawn as a JellyDoll"
@ -480,10 +513,10 @@
height="15"
increment="1"
initial_value="101"
label="Maximum complexity"
label="Avatar maximum complexity"
label_width="185"
layout="topleft"
left_delta="0"
left="200"
max_val="101"
min_val="1"
show_text="false"

View File

@ -160,7 +160,6 @@
<menu_item_call label="Explorateur d'animations" name="Animation Explorer"/>
<menu_item_call label="Liste noire d'éléments" name="asset_blacklist"/>
<menu_item_call label="Paramètres d'affichage de l'avatar" name="Avatar Render Settings"/>
<menu_item_check label="Toujours afficher complètement les amis" name="Always show Friends normally"/>
<menu_item_check label="N'afficher que les amis" name="Render Friends Only"/>
</menu>
<menu label="Construire" name="BuildTools">

View File

@ -175,7 +175,6 @@
<menu_item_call label="Esplora Animazioni" name="Animation Explorer"/>
<menu_item_call label="Lista Nera" name="asset_blacklist"/>
<menu_item_call label="Impostazioni Rendering Avatar" name="Avatar Render Settings"/>
<menu_item_check label="Mostra amici sempre con il massimo dettaglio" name="Always show Friends normally"/>
<menu_item_check label="Mostra solo amici" name="Render Friends Only"/>
</menu>
<menu label="Costruisci" name="BuildTools">

View File

@ -180,7 +180,6 @@
<menu_item_call label="アニメーションエクスプローラ" name="Animation Explorer" />
<menu_item_call label="非表示アイテムリスト" name="asset_blacklist"/>
<menu_item_call label="アバターの表示設定" name="Avatar Render Settings" />
<menu_item_check label="フレンドは常に通常表示" name="Always show Friends normally" />
<menu_item_check label="フレンドのみ表示" name="Render Friends Only" />
</menu>

View File

@ -175,7 +175,6 @@
<menu_item_call label="Eksplorator animacji" name="Animation Explorer"/>
<menu_item_call label="Czarna lista zasobów danych (assetów)" name="asset_blacklist"/>
<menu_item_call label="Ustawienia renderowania awatarów" name="Avatar Render Settings"/>
<menu_item_check label="Zawsze renderuj znajomych w pełni" name="Always show Friends normally"/>
<menu_item_check label="Renderuj tylko znajomych" name="Render Friends Only"/>
</menu>
<menu label="Buduj" name="BuildTools">

View File

@ -202,7 +202,6 @@
<menu_item_call label="Проводник анимаций" name="Animation Explorer"/>
<menu_item_call label="Черный список активов" name="asset_blacklist"/>
<menu_item_call label="Настройки отображения аватаров" name="Avatar Render Settings"/>
<menu_item_check label="Всегда показывать друзей полностью" name="Always show Friends normally"/>
<menu_item_check label="Показывать только друзей" name="Render Friends Only"/>
</menu>

View File

@ -367,13 +367,13 @@ namespace tut
gTOSReplyPump = 0; // clear the callback.
gSavedSettings.declareBOOL("NoInventoryLibrary", FALSE, "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareBOOL("ConnectAsGod", FALSE, "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareBOOL("UseDebugMenus", FALSE, "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareBOOL("NoInventoryLibrary", false, "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareBOOL("ConnectAsGod", false, "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareBOOL("UseDebugMenus", false, "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareString("ClientSettingsFile", "test_settings.xml", "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareString("NextLoginLocation", "", "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareBOOL("LoginLastLocation", FALSE, "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareBOOL("CmdLineSkipUpdater", TRUE, "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareBOOL("LoginLastLocation", false, "", LLControlVariable::PERSIST_NO);
gSavedSettings.declareBOOL("CmdLineSkipUpdater", true, "", LLControlVariable::PERSIST_NO);
LLSD authenticator = LLSD::emptyMap();
LLSD identifier = LLSD::emptyMap();

View File

@ -964,7 +964,7 @@ namespace tut
// test creation of credentials
my_cred = handler->createCredential("mysavedgrid", my_id, my_authenticator);
// test save without saving authenticator.
handler->saveCredential(my_cred, FALSE);
handler->saveCredential(my_cred, false);
my_new_cred = handler->loadCredential("mysavedgrid");
ensure_equals("saved credential without auth",
(const std::string)my_new_cred->getIdentifier()["type"], "test_type");

View File

@ -75,7 +75,7 @@ static void substitute_string(std::string &input, const std::string &search, con
#include "../llagent.h"
LLAgent::LLAgent() : mAgentAccess(NULL) { }
LLAgent::~LLAgent() { }
bool LLAgent::isGodlike() const { return FALSE; }
bool LLAgent::isGodlike() const { return false; }
LLAgent gAgent;

View File

@ -54,7 +54,7 @@ namespace tut
LLSaleInfo saleinfo1 = ll_sale_info_from_sd(llsd_obj1);
ensure("1. The getSaleType() fn failed", LLSaleInfo::FS_COPY == llsaleinfo.getSaleType());
ensure("2. LLSaleInfo::isForSale() fn failed", TRUE == llsaleinfo.isForSale());
ensure("2. LLSaleInfo::isForSale() fn failed", true == llsaleinfo.isForSale());
ensure("3. The getSalePrice() fn failed", sale_price == llsaleinfo.getSalePrice());
ensure("4. The getCRC32() fn failed", 235833404 == llsaleinfo.getCRC32());
ensure("5. LLSaleInfo::lookup(const char* name) fn failed", LLSaleInfo::FS_COPY == llsaleinfo.lookup(sale));
@ -68,7 +68,7 @@ namespace tut
saleinfo1 = ll_sale_info_from_sd(llsd_obj1);
ensure("8. The getSaleType() and setSaleType() fn failed", LLSaleInfo::FS_ORIGINAL == llsaleinfo.getSaleType());
ensure("9. LLSaleInfo::isForSale() fn failed", TRUE == llsaleinfo.isForSale());
ensure("9. LLSaleInfo::isForSale() fn failed", true == llsaleinfo.isForSale());
ensure("10. The getSalePrice() fn failed", 10000000 == llsaleinfo.getSalePrice());
ensure("11. The getCRC32() fn failed", 127911702 == llsaleinfo.getCRC32());
ensure("12. LLSaleInfo::lookup(const char* name) fn failed", LLSaleInfo::FS_CONTENTS == llsaleinfo.lookup(sale));
@ -82,7 +82,7 @@ namespace tut
saleinfo1 = ll_sale_info_from_sd(llsd_obj1);
ensure("15. The getSaleType() and setSaleType() fn failed", LLSaleInfo::FS_CONTENTS == llsaleinfo.getSaleType());
ensure("16. LLSaleInfo::isForSale() fn failed", TRUE == llsaleinfo.isForSale());
ensure("16. LLSaleInfo::isForSale() fn failed", true == llsaleinfo.isForSale());
ensure("17. The getSalePrice() fn failed", 55000550 == llsaleinfo.getSalePrice());
ensure("18. The getCRC32() fn failed", 408735656 == llsaleinfo.getCRC32());
ensure("19. LLSaleInfo::lookup(const char* name) fn failed", LLSaleInfo::FS_ORIGINAL == llsaleinfo.lookup(sale));
@ -96,7 +96,7 @@ namespace tut
saleinfo1 = ll_sale_info_from_sd(llsd_obj1);
ensure("22. The getSaleType() and setSaleType() fn failed", LLSaleInfo::FS_NOT == llsaleinfo.getSaleType());
ensure("23. LLSaleInfo::isForSale() fn failed", FALSE == llsaleinfo.isForSale());
ensure("23. LLSaleInfo::isForSale() fn failed", false == llsaleinfo.isForSale());
ensure("24. The getSalePrice() fn failed", 0 == llsaleinfo.getSalePrice());
ensure("25. The getCRC32() fn failed", 0 == llsaleinfo.getCRC32());
ensure("26. LLSaleInfo::lookup(const char* name) fn failed", LLSaleInfo::FS_NOT == llsaleinfo.lookup(sale));

View File

@ -61,7 +61,7 @@ namespace tut
1,
0,
0,
FALSE,
false,
"notasharedsecret",
NULL,
false,

View File

@ -75,7 +75,7 @@ namespace tut
1,
0,
0,
FALSE,
false,
"notasharedsecret",
NULL,
false,