diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 10938d9cc..50d42d8ff 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -26,7 +26,7 @@ AscentAvatarZModifier - + Comment Avatar position modifier (Z) Persist 1 @@ -86,7 +86,7 @@ Persist 1 Type - S32 + F32 Value 100 @@ -128,33 +128,33 @@ Comment idfk Persist - 0 + 1 Type F32 Value - 0.0 + 50.0 AscentBuildPrefs_PivotY Comment idfk Persist - 0 + 1 Type F32 Value - 0.0 + 50.0 AscentBuildPrefs_PivotZ Comment idfk Persist - 0 + 1 Type F32 Value - 0.0 + 50.0 AscentCmdLine diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index e83e1c713..fa88cdb39 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -241,6 +241,7 @@ std::string LLAgent::lure_maturity; // BOOL LLAgent::exlPhantom = 0; +BOOL LLAgent::mForceTPose = 0; LLVector3 LLAgent::exlStartMeasurePoint = LLVector3::zero; LLVector3 LLAgent::exlEndMeasurePoint = LLVector3::zero; @@ -1561,7 +1562,7 @@ BOOL LLAgent::calcCameraMinDistance(F32 &obj_min_distance) */ BOOL soft_limit = FALSE; // is the bounding box to be treated literally (volumes) or as an approximation (avatars) - if (!mFocusObject || mFocusObject->isDead()) + if (!mFocusObject || mFocusObject->isDead() || gSavedSettings.getBOOL("DisableCameraConstraints")) { obj_min_distance = 0.f; return TRUE; @@ -3646,7 +3647,8 @@ F32 LLAgent::calcCameraFOVZoomFactor() // don't FOV zoom on mostly transparent objects LLVector3 focus_offset = mFocusObjectOffset; F32 obj_min_dist = 0.f; - calcCameraMinDistance(obj_min_dist); + if (!gSavedSettings.getBOOL("AscentDisableMinZoomDist")) + calcCameraMinDistance(obj_min_dist); F32 current_distance = llmax(0.001f, camera_offset_dir.magVec()); mFocusObjectDist = obj_min_dist - current_distance; diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 10e9f1a2c..cb99803fd 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -414,8 +414,8 @@ public: static void setPhantom(BOOL phantom); static void togglePhantom(); - static BOOL isTPosed() { return mForceTPose; }; - static void setTPosed(BOOL TPose) { mForceTPose = TPose }; + static BOOL isTPosed() { return mForceTPose; } + static void setTPosed(BOOL TPose) { mForceTPose = TPose; } static void toggleTPosed(); // Does this parcel allow you to fly? diff --git a/indra/newview/lloverlaybar.cpp b/indra/newview/lloverlaybar.cpp index 73dc83c4a..5faa78a9e 100644 --- a/indra/newview/lloverlaybar.cpp +++ b/indra/newview/lloverlaybar.cpp @@ -137,9 +137,10 @@ LLOverlayBar::LLOverlayBar() bool updateAdvSettingsPopup(const LLSD &data) { + LLOverlayBar::sAdvSettingsPopup = gSavedSettings.getBOOL("wlfAdvSettingsPopup"); gOverlayBar->childSetVisible("AdvSettings_container", !LLOverlayBar::sAdvSettingsPopup); gOverlayBar->childSetVisible("AdvSettings_container_exp", LLOverlayBar::sAdvSettingsPopup); - return false; + return true; } bool updateChatVisible(const LLSD &data) diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index bc103b913..eba90c89d 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -190,6 +190,11 @@ BOOL LLPanelObject::postBuild() mCtrlRotZ = getChild("Rot Z"); childSetCommitCallback("Rot Z",onCommitRotation,this); + mBtnLinkObj = getChild("link_obj"); + childSetAction("link_obj",onLinkObj, this); + mBtnUnlinkObj = getChild("unlink_obj"); + childSetAction("unlink_obj",onUnlinkObj, this); + mBtnCopyPos = getChild("copypos"); childSetAction("copypos",onCopyPos, this); mBtnPastePos = getChild("pastepos"); @@ -467,7 +472,7 @@ void LLPanelObject::getState( ) BOOL enable_move = objectp->permMove() && !objectp->isAttachment() && (objectp->permModify() || !gSavedSettings.getBOOL("EditLinkedParts")); BOOL enable_scale = objectp->permMove() && objectp->permModify(); BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || !gSavedSettings.getBOOL("EditLinkedParts")); - + BOOL enable_link = objectp->permMove() && !objectp->isAttachment() && (objectp->permModify() || !gSavedSettings.getBOOL("EditLinkedParts")); S32 selected_count = LLSelectMgr::getInstance()->getSelection()->getObjectCount(); BOOL single_volume = (LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME )) && (selected_count == 1); @@ -514,6 +519,8 @@ void LLPanelObject::getState( ) mCtrlPosX->setEnabled(enable_move); mCtrlPosY->setEnabled(enable_move); mCtrlPosZ->setEnabled(enable_move); + mBtnLinkObj->setEnabled((enable_link && !single_volume)); + mBtnUnlinkObj->setEnabled((enable_link && (selected_count > 1))); mBtnCopyPos->setEnabled(enable_move); mBtnPastePos->setEnabled(enable_move); mBtnPastePosClip->setEnabled(enable_move); @@ -2587,6 +2594,18 @@ void LLPanelObject::onPasteParams(void* user_data) self->mObject->updateVolume(mClipboardVolumeParams); } +void LLPanelObject::onLinkObj(void* user_data) +{ + llinfos << "Attempting link." << llendl; + LLSelectMgr::getInstance()->sendLink(); +} + +void LLPanelObject::onUnlinkObj(void* user_data) +{ + llinfos << "Attempting unlink." << llendl; + LLSelectMgr::getInstance()->sendDelink(); +} + void LLPanelObject::onPastePos(void* user_data) { if(mClipboardPos.isNull()) return; diff --git a/indra/newview/llpanelobject.h b/indra/newview/llpanelobject.h index e20867113..daa13412b 100644 --- a/indra/newview/llpanelobject.h +++ b/indra/newview/llpanelobject.h @@ -74,17 +74,19 @@ public: static void onCommitPhantom( LLUICtrl* ctrl, void* userdata); static void onCommitCastShadows( LLUICtrl* ctrl, void* userdata); + static void onLinkObj( void* user_data); + static void onUnlinkObj( void* user_data); static void onCopyPos( void* user_data); static void onPastePos( void* user_data); - static void onPastePosClip( void* user_data); + static void onPastePosClip( void* user_data); static void onCopySize( void* user_data); static void onPasteSize( void* user_data); - static void onPasteSizeClip( void* user_data); + static void onPasteSizeClip( void* user_data); static void onCopyRot( void* user_data); static void onPasteRot( void* user_data); - static void onPasteRotClip( void* user_data); - static void onCopyParams( void* user_data); - static void onPasteParams( void* user_data); + static void onPasteRotClip( void* user_data); + static void onCopyParams( void* user_data); + static void onPasteParams( void* user_data); static void onCommitParametric( LLUICtrl* ctrl, void* userdata); @@ -183,6 +185,9 @@ protected: LLSpinCtrl* mCtrlRotY; LLSpinCtrl* mCtrlRotZ; + LLButton *mBtnLinkObj; + LLButton *mBtnUnlinkObj; + LLButton *mBtnCopyPos; LLButton *mBtnPastePos; LLButton *mBtnPastePosClip; diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 5311eb0ea..95a1c9d7d 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -5565,7 +5565,7 @@ void LLVOAvatar::processAnimationStateChanges() { LLMemType mt(LLMemType::MTYPE_AVATAR); - if (gNoRender)//||mLockTPose) (For future use -HGB) + if ((gNoRender)||(gAgent.isTPosed())) //isTPosed is meant to stop animation updates while force-TPosed. { return; } diff --git a/indra/newview/skins/default/xui/en-us/floater_tools.xml b/indra/newview/skins/default/xui/en-us/floater_tools.xml index 1dabf01da..7c71dc508 100644 --- a/indra/newview/skins/default/xui/en-us/floater_tools.xml +++ b/indra/newview/skins/default/xui/en-us/floater_tools.xml @@ -597,80 +597,79 @@ bottom="-20" drop_shadow_visible="true" follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" mouse_opaque="true" name="select_single" v_pad="0" width="252"> - Select only one primitive to edit parameters. - - - Edit object parameters: +