diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 772840341402c75c9455f01bca6b449960dc53df..7c23c39243400bc7ac669be1f6464e59e0688d6e 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -6909,7 +6909,7 @@ <key>Type</key> <string>F32</string> <key>Value</key> - <real>48.0</real> + <real>65.0</real> </map> <key>MaxHeapSize</key> <map> diff --git a/indra/newview/app_settings/settings_alchemy.xml b/indra/newview/app_settings/settings_alchemy.xml index a6f9585b62969ff55b5e3ac8eee661dc0db56b7e..54ccb1e74f3e20e2bb0b1ffee84768b0a29cd7ce 100644 --- a/indra/newview/app_settings/settings_alchemy.xml +++ b/indra/newview/app_settings/settings_alchemy.xml @@ -653,6 +653,17 @@ <key>Value</key> <integer>1</integer> </map> + <key>AlchemyNimble</key> + <map> + <key>Comment</key> + <string>If true, disables prejump animation flags</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>AlchemyNotifyIncomingMessage</key> <map> <key>Comment</key> diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 1233458b84acf0452036574c05989b5af46efbea..3916a4652e35883d408d757d507ec32130478327 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -444,6 +444,7 @@ LLAgent::LLAgent() : mFrameAgent(), mIsDoNotDisturb(false), + mIgnorePrejump(FALSE), mControlFlags(0x00000000), mbFlagsDirty(FALSE), @@ -525,6 +526,9 @@ void LLAgent::init() mLastKnownRequestMaturity = mLastKnownResponseMaturity; mIsDoSendMaturityPreferenceToServer = true; + mIgnorePrejump = gSavedSettings.getBOOL("AlchemyNimble"); + gSavedSettings.getControl("AlchemyNimble")->getSignal()->connect([this](LLControlVariable* control, const LLSD& new_val, const LLSD&) { mIgnorePrejump = new_val.asBoolean(); }); + auto controlp = gSavedSettings.getControl("AlchemyMotionResetsCamera"); controlp->getSignal()->connect([&](LLControlVariable* control, const LLSD& new_val, const LLSD&) { mMovementResetCamera = new_val.asBoolean(); }); mMovementResetCamera = controlp->getValue().asBoolean(); @@ -1630,7 +1634,14 @@ LLQuaternion LLAgent::getQuat() const //----------------------------------------------------------------------------- U32 LLAgent::getControlFlags() { - return mControlFlags; + if (LLAgent::mIgnorePrejump) + { + return mControlFlags | AGENT_CONTROL_FINISH_ANIM; + } + else + { + return mControlFlags; + } } //----------------------------------------------------------------------------- diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 89c65ba1779ace5e76611f931fed90dd32f97ad6..d960b575596f6481fd420205a966ab29c5f502bb 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -513,6 +513,7 @@ class LLAgent final : public LLOldEvents::LLObservable BOOL mbFlagsDirty; BOOL mbFlagsNeedReset; // ! HACK ! For preventing incorrect flags sent when crossing region boundaries + BOOL mIgnorePrejump; //-------------------------------------------------------------------- // Animations //-------------------------------------------------------------------- diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp index 22d23d6b3070a33227f2d0eb55e68ec6ec2a8585..6e39fbe8fcac72837ad764b4218c586271e4d242 100644 --- a/indra/newview/llfloaterreporter.cpp +++ b/indra/newview/llfloaterreporter.cpp @@ -208,6 +208,9 @@ BOOL LLFloaterReporter::postBuild() std::string reporter = LLSLURL("agent", gAgent.getID(), "inspect").getSLURLString(); getChild<LLUICtrl>("reporter_field")->setValue(reporter); + getChild<LLButton>("refresh_screenshot")->setCommitCallback([this](LLUICtrl*, const LLSD&) + {doAfterInterval(boost::bind(&LLFloaterReporter::takeNewSnapshot, this, true), gSavedSettings.getF32("AbuseReportScreenshotDelay")); }); + // request categories if (gAgent.getRegion() && gAgent.getRegion()->capabilitiesReceived()) @@ -263,7 +266,7 @@ void LLFloaterReporter::onIdle(void* user_data) if (floater_reporter->mSnapshotTimer.getStarted() && floater_reporter->mSnapshotTimer.getElapsedTimeF32() > screenshot_delay) { floater_reporter->mSnapshotTimer.stop(); - floater_reporter->takeNewSnapshot(); + floater_reporter->takeNewSnapshot(false); } } } @@ -937,7 +940,7 @@ void LLFloaterReporter::takeScreenshot(bool use_prev_screenshot) } } -void LLFloaterReporter::takeNewSnapshot() +void LLFloaterReporter::takeNewSnapshot(bool refresh) { childSetEnabled("send_btn", true); mImageRaw = new LLImageRaw; @@ -954,7 +957,7 @@ void LLFloaterReporter::takeNewSnapshot() } setVisible(TRUE); - if(gSavedPerAccountSettings.getBOOL("PreviousScreenshotForReport")) + if(gSavedPerAccountSettings.getBOOL("PreviousScreenshotForReport") && !refresh) { std::string screenshot_filename(gDirUtilp->getLindenUserDir() + gDirUtilp->getDirDelimiter() + SCREEN_PREV_FILENAME); mPrevImageRaw = new LLImageRaw; diff --git a/indra/newview/llfloaterreporter.h b/indra/newview/llfloaterreporter.h index 4baed32a42e65a6b001435dcee89da34b8184684..c342bb2ad9bf52305e25886e362406cadb8524d6 100644 --- a/indra/newview/llfloaterreporter.h +++ b/indra/newview/llfloaterreporter.h @@ -107,7 +107,7 @@ class LLFloaterReporter final void onLoadScreenshotDialog(const LLSD& notification, const LLSD& response); - void takeNewSnapshot(); + void takeNewSnapshot(bool refresh); private: static void show(const LLUUID& object_id, const std::string& avatar_name = LLStringUtil::null, const LLUUID& experience_id = LLUUID::null); @@ -125,6 +125,7 @@ class LLFloaterReporter final void callbackAvatarID(const uuid_vec_t& ids, const std::vector<LLAvatarName> names); void setFromAvatarID(const LLUUID& avatar_id); void onAvatarNameCache(const LLUUID& avatar_id, const LLAvatarName& av_name); + void onUpdateScreenshot(); static void requestAbuseCategoriesCoro(std::string url, LLHandle<LLFloater> handle); static void finishedARPost(const LLSD &); diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp index 9683a3b9ae361dae241c12e9047e66ae8fece7d3..744fa16b5e9845c71c25b5f2be7401c694f5174a 100644 --- a/indra/newview/llgesturemgr.cpp +++ b/indra/newview/llgesturemgr.cpp @@ -62,7 +62,7 @@ // [/RLVa:KB] // Longest time, in seconds, to wait for all animations to stop playing -const F32 MAX_WAIT_ANIM_SECS = 30.f; +const F32 MAX_WAIT_ANIM_SECS = 60.f; // Lightweight constructor. // init() does the heavy lifting. @@ -543,7 +543,7 @@ void LLGestureMgr::playGesture(LLMultiGesture* gesture) // [/RLVa:KB] // Reset gesture to first step - gesture->mCurrentStep = 0; + gesture->reset(); // Add to list of playing gesture->mPlaying = TRUE; diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp index 38a84a30d1f8ccbaf60e61f6da7d3eb64c5162e3..407788ea6bdb9a5545b0ae36edea0385d20c6743 100644 --- a/indra/newview/llsidepaneltaskinfo.cpp +++ b/indra/newview/llsidepaneltaskinfo.cpp @@ -115,7 +115,7 @@ BOOL LLSidepanelTaskInfo::postBuild() mDeedBtn = getChild<LLButton>("button deed"); - mLabelGroupName = getChild<LLNameBox>("Group Name Proxy"); + mLabelGroupName = getChild<LLTextBox>("Group Name"); childSetCommitCallback("Object Name", LLSidepanelTaskInfo::onCommitName,this); getChild<LLLineEditor>("Object Name")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe); @@ -458,25 +458,17 @@ void LLSidepanelTaskInfo::refresh() // update group text field getChildView("Group:")->setEnabled(TRUE); - getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null); LLUUID group_id; BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id); if (groups_identical) { - if (mLabelGroupName) - { - mLabelGroupName->setNameID(group_id,TRUE); - mLabelGroupName->setEnabled(TRUE); - } + mLabelGroupName->setValue(LLSLURL("group", group_id, "inspect").getSLURLString()); + mLabelGroupName->setEnabled(TRUE); } else { - if (mLabelGroupName) - { - mLabelGroupName->setNameID(LLUUID::null, TRUE); - mLabelGroupName->refresh(LLUUID::null, std::string(), true); - mLabelGroupName->setEnabled(FALSE); - } + mLabelGroupName->setValue(LLStringUtil::null); + mLabelGroupName->setEnabled(TRUE); } getChildView("button set group")->setEnabled(owners_identical && (mOwnerID == gAgent.getID()) && is_nonpermanent_enforced); @@ -968,10 +960,8 @@ void LLSidepanelTaskInfo::onClickGroup() void LLSidepanelTaskInfo::cbGroupID(LLUUID group_id) { - if (mLabelGroupName) - { - mLabelGroupName->setNameID(group_id, TRUE); - } + mLabelGroupName->setValue(LLSLURL("group", group_id, "inspect").getSLURLString()); + mLabelGroupName->setEnabled(TRUE); LLSelectMgr::getInstance()->sendGroup(group_id); } diff --git a/indra/newview/llsidepaneltaskinfo.h b/indra/newview/llsidepaneltaskinfo.h index 2baafc67e7cf61d55a428451f165de8573b5c16a..8a3b1164dcd4792e5fa0935e24f0fcff1143f6e9 100644 --- a/indra/newview/llsidepaneltaskinfo.h +++ b/indra/newview/llsidepaneltaskinfo.h @@ -42,6 +42,7 @@ class LLComboBox; class LLNameBox; class LLViewerObject; class LLTextBase; +class LLTextBox; class LLSidepanelTaskInfo : public LLPanel { @@ -100,7 +101,7 @@ class LLSidepanelTaskInfo : public LLPanel void disablePermissions(); private: - LLNameBox* mLabelGroupName; // group name + LLTextBox* mLabelGroupName; // group name LLUUID mCreatorID; LLUUID mOwnerID; diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml index c4ac93633493b53bb9d1d8677ef6bf8bec0c994d..1fa6395afa9acb1e37309c7b63eee4386031a0d9 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml @@ -105,7 +105,7 @@ height="20" layout="topleft" left_delta="104" - max_length_bytes="31" + max_length_bytes="63" name="replace_editor" tool_tip="Replace the trigger word(s) with these words. For example, trigger 'hello' replace with 'howdy' will turn the chat 'I wanted to say hello' into 'I wanted to say howdy' as well as playing the gesture" top_delta="-4" diff --git a/indra/newview/skins/default/xui/en/floater_report_abuse.xml b/indra/newview/skins/default/xui/en/floater_report_abuse.xml index 343e72f057fc0a65a3922fcdfaeadfc660e067e4..2d6d02a68c3384d82013d7a884422b23f7314214 100644 --- a/indra/newview/skins/default/xui/en/floater_report_abuse.xml +++ b/indra/newview/skins/default/xui/en/floater_report_abuse.xml @@ -26,6 +26,17 @@ Text: [MSG_DESCRIPTION] name="screenshot" top="20" width="220" /> + <button + follows="top|left" + halign="center" + height="23" + image_overlay="Refresh_Off" + layout="topleft" + tool_tip="Refresh Screenshot" + name="refresh_screenshot" + left_pad="5" + top="126" + width="25"/> <text type="string" length="1" @@ -36,7 +47,7 @@ Text: [MSG_DESCRIPTION] layout="topleft" left="10" name="reporter_title" - top_pad="-2" + top_pad="15" width="100"> Reporter: </text> @@ -366,7 +377,7 @@ Text: [MSG_DESCRIPTION] type="string" length="1" follows="left|top" - height="22" + height="13" layout="topleft" name="bug_aviso" left_pad="10" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index c72ec869a3eb2b26720a8c4fbf6214efe2be88fd..636f53a08857a795c2121f398db1f5bd5f6528c2 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -2249,6 +2249,16 @@ function="World.EnvPreset" function="ToggleControl" parameter="LimitSelectDistance" /> </menu_item_check> + <menu_item_check + label="Limit Drag Distance" + name="Limit Drag Distance"> + <menu_item_check.on_check + function="CheckControl" + parameter="LimitDragDistance" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="LimitDragDistance" /> + </menu_item_check> <menu_item_check label="Disable Camera Constraints" name="Disable Camera Distance"> @@ -2280,8 +2290,18 @@ function="World.EnvPreset" parameter="AlchemyIgnoreSimCameraConstraint" /> </menu_item_check> <menu_item_separator/> - - <menu_item_check + <menu_item_check + label="Avatar Nimble" + name="Avatar Ignore Prejump"> + <menu_item_check.on_check + function="CheckControl" + parameter="AlchemyNimble" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="AlchemyNimble" /> + </menu_item_check> + <menu_item_separator/> + <menu_item_check label="High-res Snapshot" name="HighResSnapshot"> <menu_item_check.on_check diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml index 9e69f3dfe30db2454946a7bb41656e5d8da3c326..041536651deb915d8945603cfc0fe687df5bd7b2 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml @@ -207,37 +207,38 @@ width="78"> Group: </text> - <button - follows="top|left" - height="10" - image_disabled="Activate_Checkmark" - image_selected="Activate_Checkmark" - image_unselected="Activate_Checkmark" - image_color="White_50" - layout="topleft" - left_pad="0" - top_delta="0" - name="button set group" - tab_stop="false" - tool_tip="Choose a group to share this object's permissions" - width="10" /> - <name_box - follows="left|top" - height="18" - initial_value="Loading..." + <text + type="string" + follows="left|right|top" + font="SansSerifSmall" + height="15" + layout="topleft" + name="Group Name" + left_pad="0" + top_delta="0" + translate="false" + use_ellipses="true" + width="200"> + </text> + <button + follows="top|left" + height="23" + image_overlay="Edit_Wrench" layout="topleft" - left_pad="5" - top_delta="-1" - name="Group Name Proxy" - width="150" /> - <button + left_pad="8" + top_delta="-3" + name="button set group" + tab_stop="false" + tool_tip="Choose a group to share this object's permissions" + width="23" /> + <button follows="top|left" height="23" label="Deed" label_selected="Deed" layout="topleft" name="button deed" - top_pad="0" + top_pad="3" left="81" tool_tip="Deeding gives this item away with next owner permissions. Group shared objects can be deeded by a group officer." width="100" />