From 7aa0b439a875223886521ebab89ed22fcb9cb8d4 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Sun, 24 Mar 2013 12:29:58 -0400 Subject: [PATCH 001/180] Updates and clean up and frosting, oh my~ Removes old code for permitting emerald attachment points Removes other old dead code... Updates RLVa a bit. Adds more translation flexibility via strings.xml --- indra/llui/llfloater.h | 4 - indra/newview/app_settings/settings.xml | 11 + indra/newview/llagent.cpp | 39 +- indra/newview/llagent.h | 66 +- indra/newview/llfloaterreporter.cpp | 4 - indra/newview/llinventorybridge.cpp | 25 +- indra/newview/llviewergesture.h | 1 - indra/newview/llviewermenu.cpp | 844 +++++------------- indra/newview/llviewermenu.h | 4 +- indra/newview/llviewermessage.cpp | 370 +++++--- indra/newview/llviewerwindow.cpp | 418 ++++----- indra/newview/llvoavatar.cpp | 132 +-- indra/newview/llvoavatar.h | 9 +- .../skins/default/xui/en-us/strings.xml | 16 +- .../newview/skins/default/xui/es/strings.xml | 1 - 15 files changed, 750 insertions(+), 1194 deletions(-) diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index 1cfb4635a..421f03efa 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -219,10 +219,6 @@ public: virtual void saveAs() {} virtual void saveAsType(BOOL type=false) {} - // - virtual LLUUID getItemID() { return LLUUID::null; } - // - void setSnapTarget(LLHandle handle) { mSnappedTo = handle; } void clearSnapTarget() { mSnappedTo.markDead(); } LLHandle getSnapTarget() const { return mSnappedTo; } diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 2b7f2fb86..f52152e94 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -726,6 +726,17 @@ Found in Advanced->Rendering->Info Displays Value 0 + FakeAway + + HideFromEditor + 1 + Persist + 0 + Type + Boolean + Value + 0 + InstantMessageLogPathAnyAccount Comment diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 7ee6eafef..08ef9756b 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -230,7 +230,6 @@ private: // BOOL LLAgent::exlPhantom = 0; -BOOL LLAgent::mForceTPose = 0; const F32 LLAgent::TYPING_TIMEOUT_SECS = 5.f; @@ -765,13 +764,6 @@ void LLAgent::togglePhantom() setPhantom( phan ); } -void LLAgent::toggleTPosed() -{ - BOOL posed = !(mForceTPose); - - setTPosed(posed); -} - void LLAgent::handleServerBakeRegionTransition(const LLUUID& region_id) { llinfos << "called" << llendl; @@ -1315,17 +1307,6 @@ LLQuaternion LLAgent::getQuat() const //----------------------------------------------------------------------------- U32 LLAgent::getControlFlags() { -/* - // HACK -- avoids maintenance of control flags when camera mode is turned on or off, - // only worries about it when the flags are measured - if (mCameraMode == CAMERA_MODE_MOUSELOOK) - { - if ( !(mControlFlags & AGENT_CONTROL_MOUSELOOK) ) - { - mControlFlags |= AGENT_CONTROL_MOUSELOOK; - } - } -*/ return mControlFlags; } @@ -1420,7 +1401,6 @@ void LLAgent::setAFK() void LLAgent::clearAFK() { gAwayTriggerTimer.reset(); - if (!gSavedSettings.controlExists("FakeAway")) gSavedSettings.declareBOOL("FakeAway", FALSE, "", NO_PERSIST); if (gSavedSettings.getBOOL("FakeAway") == TRUE) return; // Gods can sometimes get into away state (via gestures) @@ -2035,6 +2015,7 @@ void LLAgent::endAnimationUpdateUI() { (*mMouselookModeOutSignal)(); } + // Only pop if we have pushed... if (TRUE == mViewsPushed) { @@ -3102,13 +3083,13 @@ void LLAgent::sendAnimationRequest(const LLUUID &anim_id, EAnimRequest request) // [RLVa:KB] - Checked: 2011-05-11 (RLVa-1.3.0i) | Added: RLVa-1.3.0i void LLAgent::setAlwaysRun() { - mbAlwaysRun = true;//(!rlv_handler_t::isEnabled()) || (!gRlvHandler.hasBehaviour(RLV_BHVR_ALWAYSRUN)); + mbAlwaysRun = (!rlv_handler_t::isEnabled()) || (!gRlvHandler.hasBehaviour(RLV_BHVR_ALWAYSRUN)); sendWalkRun(); } void LLAgent::setTempRun() { - mbTempRun = true;//(!rlv_handler_t::isEnabled()) || (!gRlvHandler.hasBehaviour(RLV_BHVR_TEMPRUN)); + mbTempRun = (!rlv_handler_t::isEnabled()) || (!gRlvHandler.hasBehaviour(RLV_BHVR_TEMPRUN)); sendWalkRun(); } @@ -4092,6 +4073,7 @@ void LLAgent::teleportViaLandmark(const LLUUID& landmark_asset_id) return; } // [/RLVa:KB] + mTeleportRequest = LLTeleportRequestPtr(new LLTeleportRequestViaLandmark(landmark_asset_id)); startTeleportRequest(); } @@ -4189,6 +4171,7 @@ void LLAgent::teleportViaLocation(const LLVector3d& pos_global) } } // [/RLVa:KB] + mTeleportRequest = LLTeleportRequestPtr(new LLTeleportRequestViaLocation(pos_global)); startTeleportRequest(); } @@ -4261,6 +4244,7 @@ void LLAgent::teleportViaLocationLookAt(const LLVector3d& pos_global) return; } // [/RLVa:KB] + mTeleportRequest = LLTeleportRequestPtr(new LLTeleportRequestViaLocationLookAt(pos_global)); startTeleportRequest(); } @@ -4745,6 +4729,16 @@ void LLAgent::sendAgentUpdateUserInfo(bool im_via_email, const std::string& dire gMessageSystem->addString("DirectoryVisibility", directory_visibility); gAgent.sendReliableMessage(); } + +void LLAgent::dumpGroupInfo() +{ + llinfos << "group " << mGroupName << llendl; + llinfos << "ID " << mGroupID << llendl; + llinfos << "powers " << mGroupPowers << llendl; + llinfos << "title " << mGroupTitle << llendl; + //llinfos << "insig " << mGroupInsigniaID << llendl; +} + // Draw a representation of current autopilot target void LLAgent::renderAutoPilotTarget() { @@ -4990,4 +4984,5 @@ void LLTeleportRequestViaLocationLookAt::restartTeleport() { gAgent.doTeleportViaLocationLookAt(getPosGlobal()); } + // EOF diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 23c73b671..91b0bcb4b 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -94,12 +94,13 @@ struct LLGroupData // forward declarations -// - +//------------------------------------------------------------------------ +// LLAgent +//------------------------------------------------------------------------ class LLAgent : public LLOldEvents::LLObservable { LOG_CLASS(LLAgent); - + public: friend class LLAgentDropGroupViewerNode; @@ -160,7 +161,7 @@ public: public: void getName(std::string& name); //Legacy void buildFullname(std::string &name) const; //Legacy - // *TODO remove, is not used as of August 20, 2009 + //*TODO remove, is not used as of August 20, 2009 void buildFullnameAndTitle(std::string &name) const; //-------------------------------------------------------------------- @@ -169,11 +170,11 @@ public: public: // On the very first login, gender isn't chosen until the user clicks // in a dialog. We don't render the avatar until they choose. - BOOL isGenderChosen() const { return mGenderChosen; } - void setGenderChosen(BOOL b) { mGenderChosen = b; } - private: + BOOL isGenderChosen() const { return mGenderChosen; } + void setGenderChosen(BOOL b) { mGenderChosen = b; } +private: BOOL mGenderChosen; - + /** Identity ** ** *******************************************************************************/ @@ -182,7 +183,7 @@ public: ** ** ** POSITION **/ - + //-------------------------------------------------------------------- // Position //-------------------------------------------------------------------- @@ -215,9 +216,9 @@ public: void resetAxes(); void resetAxes(const LLVector3 &look_at); // Makes reasonable left and up // The following three get*Axis functions return direction avatar is looking, not camera. - const LLVector3& getAtAxis() const { return mFrameAgent.getAtAxis(); } - const LLVector3& getUpAxis() const { return mFrameAgent.getUpAxis(); } - const LLVector3& getLeftAxis() const { return mFrameAgent.getLeftAxis(); } + const LLVector3& getAtAxis() const { return mFrameAgent.getAtAxis(); } + const LLVector3& getUpAxis() const { return mFrameAgent.getUpAxis(); } + const LLVector3& getLeftAxis() const { return mFrameAgent.getLeftAxis(); } LLQuaternion getQuat() const; // Returns the quat that represents the rotation of the agent in the absolute frame private: LLVector3d mAgentOriginGlobal; // Origin of agent coords from global coords @@ -229,7 +230,7 @@ private: //-------------------------------------------------------------------- public: void setStartPosition(U32 location_id); // Marks current location as start, sends information to servers - void setHomePosRegion( const U64& region_handle, const LLVector3& pos_region ); + void setHomePosRegion(const U64& region_handle, const LLVector3& pos_region); BOOL getHomePosGlobal(LLVector3d* pos_global); private: BOOL mHaveHomePosition; @@ -277,18 +278,18 @@ public: private: std::set mRegionsVisited; // Stat - what distinct regions has the avatar been to? F64 mDistanceTraveled; // Stat - how far has the avatar moved? - LLVector3d mLastPositionGlobal; // Used to calculate travel distance + LLVector3d mLastPositionGlobal; // Used to calculate travel distance /** Position ** ** *******************************************************************************/ - + /******************************************************************************** ** ** ** ACTIONS **/ - - //-------------------------------------------------------------------- + + //-------------------------------------------------------------------- // Fidget //-------------------------------------------------------------------- // Trigger random fidget animations @@ -311,7 +312,7 @@ public: static void toggleFlying(); static bool enableFlying(); BOOL canFly(); // Does this parcel allow you to fly? - + //-------------------------------------------------------------------- // Chat //-------------------------------------------------------------------- @@ -405,7 +406,7 @@ public: BOOL getBusy() const; private: BOOL mIsBusy; - + //-------------------------------------------------------------------- // Grab //-------------------------------------------------------------------- @@ -443,7 +444,7 @@ private: //-------------------------------------------------------------------- // Animations - //-------------------------------------------------------------------- + //-------------------------------------------------------------------- public: void stopCurrentAnimations(); void requestStopMotion(LLMotion* motion); @@ -675,7 +676,7 @@ public: // ! BACKWARDS COMPATIBILITY ! This function can go away after the AO transition (see llstartup.cpp). void setAOTransition(); private: - LLAgentAccess *mAgentAccess; + LLAgentAccess * mAgentAccess; //-------------------------------------------------------------------- // God @@ -720,7 +721,8 @@ public: bool isAdult() const; void setTeen(bool teen); void setMaturity(char text); - static int convertTextToMaturity(char text); + static int convertTextToMaturity(char text); + private: bool mIsDoSendMaturityPreferenceToServer; unsigned int mMaturityPreferenceRequestId; @@ -743,7 +745,6 @@ private: bool validateMaturity(const LLSD& newvalue); - /** Access ** ** *******************************************************************************/ @@ -778,20 +779,20 @@ private: // HUD //-------------------------------------------------------------------- public: - const LLColor4 &getEffectColor(); - void setEffectColor(const LLColor4 &color); + const LLColor4 &getEffectColor(); + void setEffectColor(const LLColor4 &color); private: LLColor4 *mEffectColor; /** Rendering ** ** *******************************************************************************/ - + /******************************************************************************** ** ** ** GROUPS **/ - + public: const LLUUID &getGroupID() const { return mGroupID; } // Get group information by group_id, or FALSE if not in group. @@ -828,7 +829,7 @@ public: private: std::string mGroupTitle; // Honorific, like "Sir" BOOL mHideGroupTitle; - + //-------------------------------------------------------------------- // Group Powers //-------------------------------------------------------------------- @@ -882,15 +883,16 @@ public: /** Messaging ** ** - *******************************************************************************/ + *******************************************************************************/ /******************************************************************************** ** ** ** DEBUGGING **/ - + public: - static void clearVisualParams(void *); + void dumpGroupInfo(); + static void clearVisualParams(void *); friend std::ostream& operator<<(std::ostream &s, const LLAgent &sphere); /** Debugging @@ -902,7 +904,7 @@ public: ** Phantom mode! **/ - public: +public: static BOOL getPhantom(); static void setPhantom(BOOL phantom); static void togglePhantom(); diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp index 9e60be11a..c453f5a76 100644 --- a/indra/newview/llfloaterreporter.cpp +++ b/indra/newview/llfloaterreporter.cpp @@ -88,10 +88,6 @@ #include "lltrans.h" -// -#include "llviewercontrol.h" -// - // [RLVa:KB] #include "rlvhandler.h" // [/RLVa:KB] diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp index 6316714b1..befaebf13 100644 --- a/indra/newview/llinventorybridge.cpp +++ b/indra/newview/llinventorybridge.cpp @@ -5359,25 +5359,9 @@ std::string LLObjectBridge::getLabelSuffix() const { return LLItemBridge::getLabelSuffix() + LLTrans::getString("worn"); } - bool unsupportedPoint = false; //Unsupported points are given special names, translate them as they're named, not later. - std::string attachment_point_name = gAgentAvatarp->getAttachedPointName(mUUID); - if (attachment_point_name == LLStringUtil::null) // Error condition, invalid attach point - { - attachment_point_name = "Invalid Attachment"; - std::map >::iterator iter = gAgentAvatarp->mUnsupportedAttachmentPoints.begin(); - std::map >::iterator end = gAgentAvatarp->mUnsupportedAttachmentPoints.end(); - for( ; iter != end; ++iter) - { - if((*iter).second.first == mUUID) - { - attachment_point_name = llformat((LLTrans::getString("unsupported point")+" %d)").c_str(), (*iter).first); - } - } - unsupportedPoint = attachment_point_name != "Invalid Attachment"; - } // e.g. "(worn on ...)" / "(attached to ...)" LLStringUtil::format_map_t args; - args["[ATTACHMENT_POINT]"] = unsupportedPoint ? attachment_point_name : LLTrans::getString(attachment_point_name); + args["[ATTACHMENT_POINT]"] = LLTrans::getString(gAgentAvatarp->getAttachedPointName(mUUID)); if(gRlvAttachmentLocks.canDetach(getItem())) return LLItemBridge::getLabelSuffix() + LLTrans::getString("WornOnAttachmentPoint", args); @@ -5545,13 +5529,6 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags) disabled_items.push_back(std::string("Detach From Yourself")); // [/RLVa:KB] } - else - // testzone attachpt - if( gAgentAvatarp->isWearingUnsupportedAttachment( mUUID ) ) - { - items.push_back(std::string("Detach From Yourself")); - } - // else if (!isItemInTrash() && !isLinkedObjectInTrash() && !isLinkedObjectMissing() && !isCOFFolder()) { items.push_back(std::string("Wearable And Object Separator")); diff --git a/indra/newview/llviewergesture.h b/indra/newview/llviewergesture.h index f5c4e578d..de7288ca0 100644 --- a/indra/newview/llviewergesture.h +++ b/indra/newview/llviewergesture.h @@ -33,7 +33,6 @@ #ifndef LL_LLVIEWERGESTURE_H #define LL_LLVIEWERGESTURE_H -#include "llanimationstates.h" #include "lluuid.h" #include "llstring.h" #include "lldarray.h" diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 38bc05235..e17ec68cd 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -34,43 +34,18 @@ #include "llviewermenu.h" -// system library includes -#include -#include -#include - // linden library includes -#include "llaudioengine.h" -#include "indra_constants.h" -#include "llassetstorage.h" - +#include "llanimationstates.h" // For ANIM_AGENT_AWAY +#include "llinventorypanel.h" #include "llnotifications.h" #include "llnotificationsutil.h" -#include "llchat.h" #include "llfeaturemanager.h" -#include "llfocusmgr.h" -#include "llfontgl.h" -#include "llinstantmessage.h" -#include "llpermissionsflags.h" -#include "llrect.h" #include "llsecondlifeurls.h" -#include "lltransactiontypes.h" -#include "llui.h" -#include "llview.h" -#include "llxfermanager.h" -#include "message.h" -#include "raytrace.h" -#include "llsdserialize.h" -#include "llsdutil.h" // -#include "lllocalinventory.h" #include "llfloaterexploreanimations.h" #include "llfloaterexploresounds.h" #include "llfloaterblacklist.h" // -#include "lltimer.h" -#include "llvfile.h" -#include "llvolumemgr.h" #include "statemachine/aifilepicker.h" // newview includes @@ -81,25 +56,12 @@ #include "jcfloaterareasearch.h" #include "llagentpilot.h" -#include "llbox.h" -#include "llcallingcard.h" -#include "llclipboard.h" #include "llcompilequeue.h" #include "llconsole.h" -#include "llcontrol.h" -#include "llviewercontrol.h" #include "lldebugview.h" -#include "lldir.h" -#include "lldrawable.h" -#include "lldrawpoolalpha.h" -#include "lldrawpooltree.h" #include "llenvmanager.h" -#include "llface.h" #include "llfirstuse.h" -#include "llfloater.h" - #include "llfloaterabout.h" -#include "llfloaterbuycurrency.h" #include "llfloateractivespeakers.h" #include "llfloateranimpreview.h" #include "llfloateravatarinfo.h" @@ -112,7 +74,6 @@ #include "llfloaterbuycontents.h" #include "llfloaterbuycurrency.h" #include "llfloaterbuyland.h" -#include "llfloatercamera.h" #include "llfloaterchat.h" #include "llfloatercustomize.h" #include "llfloaterdaycycle.h" @@ -123,13 +84,10 @@ #include "llfloaterfonttest.h" #include "llfloatergesture.h" #include "llfloatergodtools.h" -#include "llfloatergroupinfo.h" #include "llfloatergroupinvite.h" #include "llfloatergroups.h" - #include "llfloaterhtmlcurrency.h" #include "llfloatermediabrowser.h" // gViewerHtmlHelp -#include "llfloaterhtmlsimple.h" #include "llfloaterhud.h" #include "llfloaterinspect.h" #include "llfloaterinventory.h" @@ -137,13 +95,11 @@ #include "llfloaterland.h" #include "llfloaterlandholdings.h" #include "llfloatermap.h" - #include "llfloatermute.h" #include "llfloateropenobject.h" #include "llfloateroutbox.h" #include "llfloaterpathfindingcharacters.h" #include "llfloaterpathfindinglinksets.h" -#include "llfloaterpermissionsmgr.h" #include "llfloaterperms.h" #include "llfloaterpostprocess.h" #include "llfloaterpreference.h" @@ -156,7 +112,6 @@ #include "llfloaterenvsettings.h" #include "llfloaterstats.h" -#include "llfloaterteleport.h" #include "llfloaterteleporthistory.h" #include "llfloatertest.h" #include "llfloatertools.h" @@ -165,92 +120,55 @@ #include "llfloaterworldmap.h" #include "llfloatermemleak.h" #include "llframestats.h" -#include "llframestatview.h" -#include "llfasttimerview.h" #include "llgivemoney.h" #include "llgroupmgr.h" #include "llhoverview.h" #include "llhudeffecttrail.h" #include "llhudmanager.h" -#include "llimage.h" -#include "llimagebmp.h" -#include "llimagej2c.h" -#include "llimagetga.h" +#include "llimview.h" +#include "llinventorybridge.h" #include "llinventorydefines.h" #include "llinventoryfunctions.h" -#include "llinventorypanel.h" -#include "llinventorybridge.h" -#include "llkeyboard.h" #include "llmakeoutfitdialog.h" -#include "llmenucommands.h" -#include "llmenugl.h" #include "llmimetypes.h" -#include "llmorphview.h" +#include "llmenucommands.h" #include "llmenuoptionpathfindingrebakenavmesh.h" #include "llmoveview.h" #include "llmutelist.h" #include "llnotify.h" #include "llpanellogin.h" -#include "llpanelobject.h" - #include "llparcel.h" - -#include "llpolymesh.h" -#include "llprimitive.h" -#include "llresmgr.h" #include "llselectmgr.h" -#include "llsky.h" #include "llstatusbar.h" -#include "llstatview.h" -#include "llstring.h" -#include "llsurfacepatch.h" -#include "llimview.h" #include "lltextureview.h" -#include "lltool.h" #include "lltoolbar.h" #include "lltoolcomp.h" -#include "lltoolfocus.h" -#include "lltoolgrab.h" #include "lltoolmgr.h" #include "lltoolpie.h" -#include "lltoolplacer.h" #include "lltoolselectland.h" #include "lluictrlfactory.h" -#include "lluploaddialog.h" #include "lluserauth.h" -#include "lluuid.h" #include "llvelocitybar.h" #include "llviewercamera.h" #include "llviewergenericmessage.h" -#include "llviewergesture.h" #include "llviewertexturelist.h" // gTextureList -#include "llviewerinventory.h" #include "llviewermenufile.h" // init_menu_file() #include "llviewermessage.h" #include "llviewernetwork.h" #include "llviewerobjectlist.h" #include "llviewerparcelmgr.h" -#include "llviewerparceloverlay.h" -#include "llviewerregion.h" #include "llviewerstats.h" -#include "llviewerwindow.h" #include "llvoavatarself.h" -#include "llvolume.h" -#include "llweb.h" #include "llworld.h" #include "llworldmap.h" -#include "object_flags.h" #include "pipeline.h" -#include "llappviewer.h" -#include "roles_constants.h" #include "llviewerjoystick.h" +#include "llwaterparammanager.h" #include "llwlanimator.h" #include "llwlparammanager.h" -#include "llwaterparammanager.h" +#include "llfloatercamera.h" #include "llfloaternotificationsconsole.h" -#include "lltexlayer.h" - // #include "llfloatermessagelog.h" #include "shfloatermediaticker.h" @@ -265,10 +183,10 @@ #include "llviewerobjectbackup.h" #include "llagentui.h" #include "llpathfindingmanager.h" +#include #include "lltexturecache.h" #include "llvovolume.h" -#include #include "hippogridmanager.h" @@ -303,13 +221,13 @@ void handle_test_load_url(void*); // // Evil hackish imported globals -// + //extern BOOL gHideSelectedObjects; //extern BOOL gAllowSelectAvatar; +//extern BOOL gDebugAvatarRotation; extern BOOL gDebugClicks; extern BOOL gDebugWindowProc; extern BOOL gDebugTextEditorTips; -extern BOOL gDebugAvatarRotation; extern BOOL gShowOverlayTitle; extern BOOL gOcclusionCull; // @@ -347,7 +265,6 @@ LLPieMenu* gDetachPieMenu = NULL; LLPieMenu* gDetachScreenPieMenu = NULL; LLPieMenu* gDetachBodyPartPieMenus[8]; -LLMenuItemCallGL* gFakeAway = NULL; LLMenuItemCallGL* gAFKMenu = NULL; LLMenuItemCallGL* gBusyMenu = NULL; @@ -355,7 +272,6 @@ typedef LLMemberListener view_listener_t; // // Local prototypes -// // File Menu void handle_compress_image(void*); @@ -373,8 +289,6 @@ void handle_region_dump_settings(void*); void handle_region_dump_temp_asset_data(void*); void handle_region_clear_temp_asset_data(void*); - - // Object pie menu BOOL sitting_on_selection(); @@ -390,8 +304,6 @@ bool confirm_take(const LLSD& notification, const LLSD& response, LLObjectSelect void handle_buy_object(LLSaleInfo sale_info); void handle_buy_contents(LLSaleInfo sale_info); -bool for_sale_selection(LLSelectNode* nodep); - // Land pie menu void near_sit_down_point(BOOL success, void *); @@ -404,7 +316,7 @@ void handle_talk_to(void *userdata); void handle_agent_stop_moving(void*); void print_packets_lost(void*); void drop_packet(void*); -void velocity_interpolate( void* data ); +void velocity_interpolate( void* ); void toggle_wind_audio(void); void handle_rebake_textures(void*); BOOL check_admin_override(void*); @@ -418,6 +330,7 @@ void toggle_show_xui_names(void *); BOOL check_show_xui_names(void *); // Debug UI + void handle_web_search_demo(void*); void handle_web_browser_test(void*); void handle_buy_currency_test(void*); @@ -505,16 +418,11 @@ void handle_sounds_explorer(void*); void handle_blacklist(void*); // -BOOL is_inventory_visible( void* user_data ); void handle_reset_view(); -void disabled_duplicate(void*); void handle_duplicate_in_place(void*); -void handle_repeat_duplicate(void*); -void handle_export(void*); -// void handle_deed_object_to_group(void*); -// BOOL enable_deed_object_to_group(void*); + void handle_object_owner_self(void*); void handle_object_owner_permissive(void*); void handle_object_lock(void*); @@ -529,7 +437,6 @@ void handle_force_parcel_owner_to_me(void*); void handle_force_parcel_to_content(void*); void handle_claim_public_land(void*); -void handle_god_request_havok(void *); void handle_god_request_avatar_geometry(void *); // Hack for easy testing of new avatar geometry void reload_personal_settings_overrides(void *); void reload_vertex_shader(void *); @@ -543,13 +450,6 @@ void force_error_infinite_loop(void *); void force_error_software_exception(void *); void force_error_driver_crash(void *); -void handle_stopall(void*); -//void handle_hinge(void*); -//void handle_ptop(void*); -//void handle_lptop(void*); -//void handle_wheel(void*); -//void handle_dehinge(void*); -BOOL enable_dehinge(void*); void handle_force_delete(void*); void print_object_info(void*); void print_agent_nvpairs(void*); @@ -588,7 +488,6 @@ void handle_test_male(void *); void handle_test_female(void *); void handle_toggle_pg(void*); void handle_dump_attachments(void *); -void handle_show_overlay_title(void*); void handle_dump_avatar_local_textures(void*); void handle_meshes_and_morphs(void*); void handle_mesh_save_llm(void* data); @@ -610,9 +509,7 @@ BOOL enable_selection_you_own_all(void*); BOOL enable_selection_you_own_one(void*); BOOL enable_save_into_inventory(void*); BOOL enable_save_into_task_inventory(void*); -BOOL enable_not_thirdperson(void*); -// BOOL enable_export_selected(void *); -BOOL enable_have_card(void*); + BOOL enable_detach(void*); BOOL enable_region_owner(void*); void menu_toggle_attached_lights(void* user_data); @@ -688,13 +585,13 @@ void set_underclothes_menu_options() { if (gMenuHolder && gAgent.isTeen()) { - gMenuHolder->getChild("Self Underpants", TRUE)->setVisible(FALSE); - gMenuHolder->getChild("Self Undershirt", TRUE)->setVisible(FALSE); + gMenuHolder->getChild("Self Underpants")->setVisible(FALSE); + gMenuHolder->getChild("Self Undershirt")->setVisible(FALSE); } if (gMenuBarView && gAgent.isTeen()) { - gMenuBarView->getChild("Menu Underpants", TRUE)->setVisible(FALSE); - gMenuBarView->getChild("Menu Undershirt", TRUE)->setVisible(FALSE); + gMenuBarView->getChild("Menu Underpants")->setVisible(FALSE); + gMenuBarView->getChild("Menu Undershirt")->setVisible(FALSE); } } @@ -815,6 +712,7 @@ void init_menus() menu->addChild(new LLMenuItemCallGL( "Fake Away Status", &handle_fake_away_status, NULL)); menu->addChild(new LLMenuItemCallGL( "Force Ground Sit", &handle_force_ground_sit, NULL)); menu->addChild(new LLMenuItemCallGL( "Phantom Avatar", &handle_phantom_avatar, NULL, NULL, 'P', MASK_CONTROL | MASK_ALT)); + menu->addSeparator(); menu->addChild(new LLMenuItemCallGL( "Animation Override...", &handle_edit_ao, NULL)); @@ -892,7 +790,6 @@ void init_menus() /*gLoginMenuBarView->setRect(LLRect(menuBarRect.mLeft, menuBarRect.mTop, gViewerWindow->getRootView()->getRect().getWidth() - menuBarRect.mLeft, menuBarRect.mBottom));*/ - gLoginMenuBarView->setBackgroundColor( color ); gMenuHolder->addChild(gLoginMenuBarView); @@ -1346,7 +1243,6 @@ void init_debug_xui_menu(LLMenuGL* menu) // menu->addChild(new LLMenuItemCheckGL("Show XUI Names", toggle_show_xui_names, NULL, check_show_xui_names, NULL)); - //menu->addChild(new LLMenuItemCallGL("Buy Currency...", handle_buy_currency)); menu->createJumpKeys(); } @@ -1540,7 +1436,7 @@ void init_debug_rendering_menu(LLMenuGL* menu) (void*)LLPipeline::RENDER_DEBUG_WIND_VECTORS)); sub_menu->addChild(new LLMenuItemCheckGL("Complexity", &LLPipeline::toggleRenderDebug, NULL, &LLPipeline::toggleRenderDebugControl, - (void*)LLPipeline::RENDER_DEBUG_RENDER_COMPLEXITY)); ; + (void*)LLPipeline::RENDER_DEBUG_RENDER_COMPLEXITY)); sub_menu = new LLMenuGL("Render Tests"); sub_menu->setCanTearOff(TRUE); @@ -1687,14 +1583,10 @@ void init_debug_avatar_menu(LLMenuGL* menu) menu->addChild(new LLMenuItemToggleGL( "Debug Rotation", &LLVOAvatar::sDebugAvatarRotation)); menu->addChild(new LLMenuItemCallGL("Dump Attachments", handle_dump_attachments)); menu->addChild(new LLMenuItemCallGL("Rebake Textures", handle_rebake_textures, NULL, NULL, 'R', MASK_ALT | MASK_CONTROL )); -// -//#ifndef LL_RELEASE_FOR_DOWNLOAD -// +#ifndef LL_RELEASE_FOR_DOWNLOAD menu->addChild(new LLMenuItemCallGL("Debug Avatar Textures", handle_debug_avatar_textures, NULL, NULL, 'A', MASK_SHIFT|MASK_CONTROL|MASK_ALT)); menu->addChild(new LLMenuItemCallGL("Dump Local Textures", handle_dump_avatar_local_textures, NULL, NULL, 'M', MASK_SHIFT|MASK_ALT )); -// -//#endif -// +#endif gMeshesAndMorphsMenu = new LLMenuGL("Meshes and Morphs"); menu->addChild(gMeshesAndMorphsMenu); @@ -1820,12 +1712,6 @@ void init_server_menu(LLMenuGL* menu) menu->addChild(new LLMenuItemCallGL("Save Region State", &LLPanelRegionTools::onSaveState, &enable_god_customer_service, NULL)); -// menu->addChild(new LLMenuItemCallGL("Force Join Group", handle_force_join_group)); -// -// menu->addSeparator(); -// -// menu->addChild(new LLMenuItemCallGL( "OverlayTitle", -// &handle_show_overlay_title, &enable_god_customer_service, NULL)); menu->createJumpKeys(); } @@ -2209,16 +2095,15 @@ class LLObjectDerender : public view_listener_t LLUUID root_key; //delivers null in linked parts if used as getFirstRootNode() LLSelectNode* node = selection->getFirstRootNode(NULL,TRUE); - + /*this works for derendering entire object if child is selected - + LLSelectNode* node = selection->getFirstNode(); //Delivers node even when linked parts, but only first node - + LLViewerObject* obj = node->getObject(); LLViewerObject* parent = (LLViewerObject*)obj->getParent();*/ - - + if(node) { root_key = node->getObject()->getID(); @@ -2259,15 +2144,11 @@ class LLObjectDerender : public view_listener_t } } - - - LLSD indata; indata["entry_type"] = 6; //AT_TEXTURE indata["entry_name"] = entry_name; indata["entry_agent"] = gAgent.getID(); - // ...don't kill the avatar if (!(id == gAgentID)) { @@ -2344,7 +2225,7 @@ class LLAvatarReloadTextures : public view_listener_t } } } - else + else { texture_list.addTexture(avatar->getTEImage((ETextureIndex)i)); } @@ -2519,7 +2400,7 @@ class LLSelfEnableRemoveAllAttachments : public view_listener_t bool new_value = false; if (isAgentAvatarValid()) { - for (LLVOAvatar::attachment_map_t::iterator iter = gAgentAvatarp->mAttachmentPoints.begin(); + for (LLVOAvatar::attachment_map_t::iterator iter = gAgentAvatarp->mAttachmentPoints.begin(); iter != gAgentAvatarp->mAttachmentPoints.end(); ) { LLVOAvatar::attachment_map_t::iterator curiter = iter++; @@ -2555,9 +2436,6 @@ BOOL enable_has_attachments(void*) return FALSE; } -//--------------------------------------------------------------------------- -// Avatar pie menu -//--------------------------------------------------------------------------- //--------------------------------------------------------------------------- // Avatar pie menu //--------------------------------------------------------------------------- @@ -2583,8 +2461,7 @@ class LLObjectEnableMute : public view_listener_t if (avatar) { // It's an avatar - LLNameValue *lastname = avatar->getNVPair("LastName"); - BOOL is_linden = lastname && !LLStringUtil::compareStrings(lastname->getString(), "Linden"); + BOOL is_linden = LLMuteList::getInstance()->isLinden(avatar->getID()); BOOL is_self = avatar->isSelf(); new_value = !is_linden && !is_self; // [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) | OK @@ -2610,11 +2487,9 @@ class LLObjectMute : public view_listener_t LLVOAvatar* avatar = find_avatar_from_object(object); if (avatar) { -// [RLVa:KB] - Checked: 2009-07-08 (RLVa-1.0.0e) | Added: RLVa-1.0.0e | OK +// [RLVa:KB] - Checked: 2010-08-25 (RLVa-1.2.1b) | Added: RLVa-1.0.0e if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) - { - return true; // Fallback code [see LLObjectEnableMute::handleEvent()] - } + return true; // [/RLVa:KB] id = avatar->getID(); @@ -2818,7 +2693,7 @@ class LLKillEmAll : public view_listener_t */ LLSelectMgr::getInstance()->selectionUpdateTemporary(1);//set temp to TRUE LLVector3 pos = objpos->getPosition();//get the x and the y - pos.mV[VZ] = 340282346638528859811704183484516925440.0f;//create the z + pos.mV[VZ] = FLT_MAX;//create the z objpos->setPositionParent(pos);//set the x y z LLSelectMgr::getInstance()->sendMultipleUpdate(UPD_POSITION);//send the data } @@ -2848,20 +2723,20 @@ class LLObjectMeasure : public view_listener_t startMeasurePoint = position; startpoint_set = true; - chat.mText = llformat("Start point set"); - LLFloaterChat::addChat(chat); + chat.mText = LLTrans::getString("StartPointSet"); } else { - chat.mText = llformat("End point set"); + chat.mText = LLTrans::getString("EndPointSet"); LLFloaterChat::addChat(chat); - F32 fdist = dist_vec(startMeasurePoint, position); + LLStringUtil::format_map_t args; + args["[DIST]"] = boost::lexical_cast(dist_vec(startMeasurePoint, position)); - chat.mText = llformat("Distance: %fm", fdist); - LLFloaterChat::addChat(chat); + chat.mText = LLTrans::getString("MeasuredDistance", args); startpoint_set = false; } + LLFloaterChat::addChat(chat); return true; } }; @@ -2927,15 +2802,6 @@ class LLAvatarAnims : public view_listener_t bool handle_go_to() { -// [RLVa:KB] - Checked: 2009-10-10 (RLVa-1.0.5a) | Modified: RLVa-1.0.5a -/* - if ( (rlv_handler_t::isEnabled()) && (gAgent.forwardGrabbed()) && (gRlvHandler.hasLockedAttachment(RLV_LOCK_REMOVE)) ) - { - return true; - } -*/ -// [/RLVa:KB] - // try simulator autopilot std::vector strings; std::string val; @@ -2973,6 +2839,19 @@ class LLGoToObject : public view_listener_t } }; +class LLAvatarReportAbuse : public view_listener_t +{ + bool handleEvent(LLPointer event, const LLSD& userdata) + { + LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() ); + if(avatar) + { + LLFloaterReporter::showFromObject(avatar->getID()); + } + return true; + } +}; + //--------------------------------------------------------------------------- // Object backup //--------------------------------------------------------------------------- @@ -2981,8 +2860,7 @@ class LLObjectEnableExport : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); - bool new_value = (object != NULL); + bool new_value = !!LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); if (new_value) { struct ff : public LLSelectedNodeFunctor @@ -3016,11 +2894,7 @@ class LLObjectExport : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); - if (object) - { - LLObjectBackup::getInstance()->exportObject(); - } + LLObjectBackup::getInstance()->exportObject(); return true; } }; @@ -3062,11 +2936,11 @@ bool callback_freeze(const LLSD& notification, const LLSD& response) if (0 == option || 1 == option) { - U32 flags = 0x0; + U32 flags = KICK_FLAGS_FREEZE; if (1 == option) { // unfreeze - flags |= 0x1; + flags |= KICK_FLAGS_UNFREEZE; } LLMessageSystem* msg = gMessageSystem; @@ -3191,33 +3065,13 @@ class LLAvatarVisibleDebug : public view_listener_t } }; -class LLAvatarEnableDebug : public view_listener_t -{ - bool handleEvent(LLPointer event, const LLSD& userdata) - { - //bool new_value = gAgent.isGodlike(); - //gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value); - return true; - } -}; - class LLAvatarDebug : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - //LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() ); if (isAgentAvatarValid()) { gAgentAvatarp->dumpLocalTextures(); - // hell no don't tell them about that - /* - llinfos << "Dumping temporary asset data to simulator logs for avatar " << avatar->getID() << llendl; - std::vector strings; - strings.push_back(avatar->getID().asString()); - LLUUID invoice; - send_generic_message("dumptempassetdata", strings, invoice); - */ - // LLFloaterAvatarTextures::show( gAgentAvatarp->getID() ); } return true; @@ -3385,7 +3239,6 @@ class LLAvatarEnableFreezeEject : public view_listener_t LLParcel* parcel = LLViewerParcelMgr::getInstance()->selectParcelAt(pos_global)->getParcel(); LLViewerRegion* region = avatar->getRegion(); new_value = (region != NULL); - if (new_value) { new_value = region->isOwnedSelf(pos); @@ -3454,7 +3307,6 @@ class LLAvatarGiveCard : public view_listener_t }; - void login_done(S32 which, void *user) { llinfos << "Login done " << which << llendl; @@ -3506,7 +3358,7 @@ void append_aggregate(std::string& string, const LLAggregatePermissions& ag_perm bool enable_buy_object() { // In order to buy, there must only be 1 purchaseable object in - // the selection manger. + // the selection manager. if(LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() != 1) return false; LLViewerObject* obj = NULL; LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode(); @@ -3567,10 +3419,10 @@ void handle_buy_object(LLSaleInfo sale_info) } S32 price = sale_info.getSalePrice(); - + if (price > 0 && price > gStatusBar->getBalance()) { - LLFloaterBuyCurrency::buyCurrency("This object costs", price); + LLFloaterBuyCurrency::buyCurrency(LLTrans::getString("this_object_costs"), price); return; } @@ -3622,11 +3474,7 @@ void handle_show_notifications_console(void *) void handle_dump_group_info(void *) { - llinfos << "group " << gAgent.getGroupName() << llendl; - llinfos << "ID " << gAgent.getGroupID() << llendl; - llinfos << "powers " << gAgent.mGroupPowers << llendl; - llinfos << "title " << gAgent.getGroupTitle() << llendl; - //llinfos << "insig " << gAgent.mGroupInsigniaID << llendl; + gAgent.dumpGroupInfo(); } void handle_dump_capabilities_info(void *) @@ -3668,12 +3516,7 @@ class LLSelfSitOrStand : public view_listener_t } else { -// [RLVa:KB] - Alternate: Snowglobe-1.3.X | Checked: 2009-12-29 (RLVa-1.1.0k) | Added: RLVa-1.1.0k | OK - if (gRlvHandler.hasBehaviour(RLV_BHVR_SIT)) - return true; -// [/RLVa:KB] - - gAgent.setControlFlags(AGENT_CONTROL_SIT_ON_GROUND); + gAgent.sitDown(); // Might be first sit LLFirstUse::useSit(); @@ -3714,7 +3557,7 @@ class LLSelfEnableSitOrStand : public view_listener_t // [/RLVa:KB] label = sit_text; } - + // [RLVa:KB] - Alternate: Snowglobe-1.3.X | Checked: 2009-12-29 (RLVa-1.1.0k) | Added: RLVa-1.1.0k | OK gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value); // [/RLVa:KB] @@ -3759,7 +3602,7 @@ void set_god_level(U8 god_level) LLFloaterDirectory::requestClassifieds(); // God mode changes region visibility - LLWorldMap::getInstance()->reset(); + LLWorldMap::getInstance()->reloadItems(true); // inventory in items may change in god mode gObjectList.dirtyAllObjectInventory(); @@ -3782,7 +3625,6 @@ void set_god_level(U8 god_level) LLNotificationsUtil::add("LeavingGodMode", args); } - // changing god-level can affect which menus we see show_debug_menus(); } @@ -3858,20 +3700,9 @@ void handle_area_search(void*) void handle_fake_away_status(void*) { - if (!gSavedSettings.controlExists("FakeAway")) gSavedSettings.declareBOOL("FakeAway", FALSE, "", NO_PERSIST); - - if (gSavedSettings.getBOOL("FakeAway") == TRUE) - { - gSavedSettings.declareBOOL("FakeAway", FALSE, "", NO_PERSIST); - gSavedSettings.setBOOL("FakeAway", FALSE); - gAgent.sendAnimationRequest(ANIM_AGENT_AWAY, ANIM_REQUEST_STOP); - } - else - { - gSavedSettings.declareBOOL("FakeAway", TRUE, "", NO_PERSIST); - gSavedSettings.setBOOL("FakeAway", TRUE); - gAgent.sendAnimationRequest(ANIM_AGENT_AWAY, ANIM_REQUEST_START); - } + bool fake_away = gSavedSettings.getBOOL("FakeAway"); + gAgent.sendAnimationRequest(ANIM_AGENT_AWAY, fake_away ? ANIM_REQUEST_STOP : ANIM_REQUEST_START); + gSavedSettings.setBOOL("FakeAway", !fake_away); } void handle_force_ground_sit(void*) @@ -3882,7 +3713,7 @@ void handle_force_ground_sit(void*) { gAgent.setControlFlags(AGENT_CONTROL_SIT_ON_GROUND); } - else + else { gAgent.setControlFlags(AGENT_CONTROL_STAND_UP); } @@ -3950,31 +3781,14 @@ BOOL is_agent_friend(const LLUUID& agent_id) BOOL is_agent_mappable(const LLUUID& agent_id) { - return (is_agent_friend(agent_id) && - LLAvatarTracker::instance().getBuddyInfo(agent_id)->isOnline() && - LLAvatarTracker::instance().getBuddyInfo(agent_id)->isRightGrantedFrom(LLRelationship::GRANT_MAP_LOCATION) + const LLRelationship* buddy_info = LLAvatarTracker::instance().getBuddyInfo(agent_id); + + return (buddy_info && + buddy_info->isOnline() && + buddy_info->isRightGrantedFrom(LLRelationship::GRANT_MAP_LOCATION) ); } -// Enable a menu item when you have someone's card. -/* -BOOL enable_have_card(void *userdata) -{ - LLUUID* avatar_id = (LLUUID *)userdata; - if (gAgent.isGodlike()) - { - return TRUE; - } - else if(avatar_id) - { - return is_agent_friend(*avatar_id); - } - else - { - return FALSE; - } -} -*/ // Enable a menu item when you don't have someone's card. class LLAvatarEnableAddFriend : public view_listener_t @@ -3998,16 +3812,17 @@ void request_friendship(const LLUUID& dest_id) LLViewerObject* dest = gObjectList.findObject(dest_id); if(dest && dest->isAvatar()) { - std::string fullname; + std::string full_name; LLNameValue* nvfirst = dest->getNVPair("FirstName"); LLNameValue* nvlast = dest->getNVPair("LastName"); if(nvfirst && nvlast) { - fullname = std::string(nvfirst->getString()) + " " + nvlast->getString(); + full_name = LLCacheName::buildFullName( + nvfirst->getString(), nvlast->getString()); } - if (!fullname.empty()) + if (!full_name.empty()) { - LLPanelFriends::requestFriendshipDialog(dest_id, fullname); + LLPanelFriends::requestFriendshipDialog(dest_id, full_name); } else { @@ -4063,7 +3878,7 @@ bool handle_sit_or_stand() if (sitting_on_selection()) { - gAgent.setControlFlags(AGENT_CONTROL_STAND_UP); + gAgent.standUp(); return true; } @@ -4071,18 +3886,18 @@ bool handle_sit_or_stand() if (object && object->getPCode() == LL_PCODE_VOLUME) { -// [RLVa:KB] - Checked: 2010-08-29 (RLVa-1.1.3b) | Added: RLVa-1.2.1c | OK - if ( (gRlvHandler.hasBehaviour(RLV_BHVR_STANDTP)) && (gAgentAvatarp) ) +// [RLVa:KB] - Checked: 2010-08-29 (RLVa-1.2.1c) | Added: RLVa-1.2.1c + if ( (gRlvHandler.hasBehaviour(RLV_BHVR_STANDTP)) && (isAgentAvatarValid()) ) { if (gAgentAvatarp->isSitting()) { - if (gRlvHandler.canStand()) - gAgent.setControlFlags(AGENT_CONTROL_STAND_UP); + gAgent.standUp(); return true; } gRlvHandler.setSitSource(gAgent.getPositionGlobal()); } // [/RLVa:KB] + gMessageSystem->newMessageFast(_PREHASH_AgentRequestSit); gMessageSystem->nextBlockFast(_PREHASH_AgentData); gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); @@ -4122,9 +3937,7 @@ class LLLandSit : public view_listener_t { // [RLVa:KB] - Checked: 2010-09-28 (RLVa-1.2.1f) | Modified: RLVa-1.2.1f | OK if ( (rlv_handler_t::isEnabled()) && ((!gRlvHandler.canStand()) || (gRlvHandler.hasBehaviour(RLV_BHVR_SIT))) ) - { return true; - } // [/RLVa:KB] gAgent.setControlFlags(AGENT_CONTROL_STAND_UP); @@ -4133,7 +3946,7 @@ class LLLandSit : public view_listener_t LLVector3d posGlobal = LLToolPie::getInstance()->getPick().mPosGlobal; LLQuaternion target_rot; - if (gAgentAvatarp) + if (isAgentAvatarValid()) { target_rot = gAgentAvatarp->getRotation(); } @@ -4246,23 +4059,6 @@ void toggle_wind_audio(void) } } - -// Callback for enablement -BOOL is_inventory_visible( void* user_data ) -{ - LLInventoryView* iv = reinterpret_cast(user_data); - if( iv ) - { - return iv->getVisible(); - } - return FALSE; -} - -void handle_show_newest_map(void*) -{ - LLFloaterWorldMap::show(NULL, FALSE); -} - //------------------------------------------------------------------- // Help menu functions //------------------------------------------------------------------- @@ -4270,7 +4066,7 @@ void handle_show_newest_map(void*) // // Major mode switching // -void reset_view_final( BOOL proceed); +void reset_view_final( BOOL proceed ); void handle_reset_view() { @@ -4295,7 +4091,7 @@ class LLViewResetView : public view_listener_t }; // Note: extra parameters allow this function to be called from dialog. -void reset_view_final( BOOL proceed) +void reset_view_final( BOOL proceed ) { if( !proceed ) { @@ -4394,14 +4190,6 @@ class LLEditEnableDuplicate : public view_listener_t }; -void disabled_duplicate(void*) -{ - if (LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()) - { - LLNotificationsUtil::add("CopyFailed"); - } -} - void handle_duplicate_in_place(void*) { llinfos << "handle_duplicate_in_place" << llendl; @@ -4410,11 +4198,6 @@ void handle_duplicate_in_place(void*) LLSelectMgr::getInstance()->selectDuplicate(offset, TRUE); } -void handle_repeat_duplicate(void*) -{ - LLSelectMgr::getInstance()->repeatDuplicate(); -} - /* dead code 30-apr-2008 void handle_deed_object_to_group(void*) { @@ -4566,38 +4349,6 @@ void handle_claim_public_land(void*) gAgent.sendReliableMessage(); } -void handle_god_request_havok(void *) -{ - if (gAgent.isGodlike()) - { - LLSelectMgr::getInstance()->sendGodlikeRequest("havok", "infoverbose"); - } -} - -//void handle_god_request_foo(void *) -//{ -// if (gAgent.isGodlike()) -// { -// LLSelectMgr::getInstance()->sendGodlikeRequest(GOD_WANTS_FOO); -// } -//} - -//void handle_god_request_terrain_save(void *) -//{ -// if (gAgent.isGodlike()) -// { -// LLSelectMgr::getInstance()->sendGodlikeRequest("terrain", "save"); -// } -//} - -//void handle_god_request_terrain_load(void *) -//{ -// if (gAgent.isGodlike()) -// { -// LLSelectMgr::getInstance()->sendGodlikeRequest("terrain", "load"); -// } -//} - BOOL enable_dump_archetype_xm(void*) { return gSavedSettings.getBOOL("DebugAvatarAppearanceMessage"); @@ -4620,17 +4371,10 @@ void handle_god_request_avatar_geometry(void *) { if (gAgent.isGodlike()) { - LLSelectMgr::getInstance()->sendGodlikeRequest("avatar toggle", NULL); + LLSelectMgr::getInstance()->sendGodlikeRequest("avatar toggle", ""); } } - -void handle_show_overlay_title(void*) -{ - gShowOverlayTitle = !gShowOverlayTitle; - gSavedSettings.setBOOL("ShowOverlayTitle", gShowOverlayTitle); -} - static bool get_derezzable_objects( EDeRezDestination dest, std::string& error, @@ -4703,12 +4447,9 @@ static bool get_derezzable_objects( break; default: - // - //if((node->mPermissions->allowTransferTo(gAgent.getID()) - // && object->permCopy()) - // || gAgent.isGodlike()) - if(1) - // + if((node->mPermissions->allowTransferTo(gAgent.getID()) + && object->permCopy()) + || gAgent.isGodlike()) { can_derez_current = TRUE; } @@ -5053,7 +4794,6 @@ void handle_take() if(locked_but_takeable_object && you_own_everything) { params.name("ConfirmObjectTakeLock"); - } else if(!locked_but_takeable_object && !you_own_everything) { @@ -5128,37 +4868,42 @@ BOOL enable_take() return FALSE; } + +void handle_buy_or_take() +{ + if (LLSelectMgr::getInstance()->getSelection()->isEmpty()) + { + return; + } + + if (is_selection_buy_not_take()) + { + S32 total_price = selection_price(); + + if (total_price <= gStatusBar->getBalance() || total_price == 0) + { + handle_buy(); + } + else + { + LLFloaterBuyCurrency::buyCurrency( LLTrans::getString( "BuyingCosts" ), total_price ); + } + } + else + { + handle_take(); + } +} class LLToolsBuyOrTake : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - if (LLSelectMgr::getInstance()->getSelection()->isEmpty()) - { - return true; - } - - if (is_selection_buy_not_take()) - { - S32 total_price = selection_price(); - - if (total_price <= gStatusBar->getBalance() || total_price == 0) - { - handle_buy(); - } - else - { - LLFloaterBuyCurrency::buyCurrency( - "Buying this costs", total_price); - } - } - else - { - handle_take(); - } + handle_buy_or_take(); return true; } }; + bool visible_take_object() { return !is_selection_buy_not_take() && enable_take(); @@ -5282,11 +5027,6 @@ void show_buy_currency(const char* extra) LLNotificationsUtil::add("PromptGoToCurrencyPage", args, LLSD(), callback_show_buy_currency); } -void handle_buy_currency(void*) -{ -// LLFloaterBuyCurrency::buyCurrency(); -} - void handle_buy() { if (LLSelectMgr::getInstance()->getSelection()->isEmpty()) return; @@ -5358,10 +5098,7 @@ class LLToolsSaveToInventory : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - // - //if(enable_save_into_inventory(NULL)) - if(1) - // + if(enable_save_into_inventory(NULL)) { derez_objects(DRD_SAVE_INTO_AGENT_INVENTORY, LLUUID::null); } @@ -5425,7 +5162,6 @@ class LLToolsEnablePathfindingRebakeRegion : public view_listener_t LLMenuOptionPathfindingRebakeNavmesh *rebakeInstance = LLMenuOptionPathfindingRebakeNavmesh::getInstance(); returnValue = (rebakeInstance->canRebakeRegion() && (rebakeInstance->getMode() == LLMenuOptionPathfindingRebakeNavmesh::kRebakeNavMesh_Available)); - } gMenuHolder->findControl(userdata["control"].asString())->setValue(returnValue); return returnValue; @@ -5653,37 +5389,6 @@ class LLToolsEnableReleaseKeys : public view_listener_t } }; -//void handle_hinge(void*) -//{ -// LLSelectMgr::getInstance()->sendHinge(1); -//} - -//void handle_ptop(void*) -//{ -// LLSelectMgr::getInstance()->sendHinge(2); -//} - -//void handle_lptop(void*) -//{ -// LLSelectMgr::getInstance()->sendHinge(3); -//} - -//void handle_wheel(void*) -//{ -// LLSelectMgr::getInstance()->sendHinge(4); -//} - -//void handle_dehinge(void*) -//{ -// LLSelectMgr::getInstance()->sendDehinge(); -//} - -//BOOL enable_dehinge(void*) -//{ -// LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getFirstEditableObject(); -// return obj && !obj->isAttachment(); -//} - class LLEditEnableCut : public view_listener_t { @@ -6094,7 +5799,7 @@ void show_debug_menus() //gMenuBarView->setItemVisible(std::string(AVI_TOOLS), visible); gMenuBarView->needsArrange(); // clean-up positioning - }; + } } void toggle_debug_menus(void*) @@ -6238,18 +5943,7 @@ class LLWorldFakeAway : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - if (!gSavedSettings.controlExists("FakeAway")) gSavedSettings.declareBOOL("FakeAway", FALSE, "", NO_PERSIST); - - if (gSavedSettings.getBOOL("FakeAway") == TRUE) - { - gSavedSettings.setBOOL("FakeAway", FALSE); - gAgent.sendAnimationRequest(ANIM_AGENT_AWAY, ANIM_REQUEST_STOP); - } - else - { - gSavedSettings.setBOOL("FakeAway", TRUE); - gAgent.sendAnimationRequest(ANIM_AGENT_AWAY, ANIM_REQUEST_START); - } + handle_fake_away_status(NULL); return true; } }; @@ -6297,7 +5991,6 @@ class LLWorldSetBusy : public view_listener_t } }; - class LLWorldCreateLandmark : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) @@ -6348,43 +6041,49 @@ class LLToolsLookAtSelection : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - const F32 PADDING_FACTOR = 2.f; - BOOL zoom = (userdata.asString() == "zoom"); - if (!LLSelectMgr::getInstance()->getSelection()->isEmpty()) - { - gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE); - - LLBBox selection_bbox = LLSelectMgr::getInstance()->getBBoxOfSelection(); - F32 angle_of_view = llmax(0.1f, LLViewerCamera::getInstance()->getAspect() > 1.f ? LLViewerCamera::getInstance()->getView() * LLViewerCamera::getInstance()->getAspect() : LLViewerCamera::getInstance()->getView()); - F32 distance = selection_bbox.getExtentLocal().magVec() * PADDING_FACTOR / atan(angle_of_view); - - LLVector3 obj_to_cam = LLViewerCamera::getInstance()->getOrigin() - selection_bbox.getCenterAgent(); - obj_to_cam.normVec(); - - LLUUID object_id; - if (LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()) - { - object_id = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()->mID; - } - if (zoom) - { - // Make sure we are not increasing the distance between the camera and object - LLVector3d orig_distance = gAgentCamera.getCameraPositionGlobal() - LLSelectMgr::getInstance()->getSelectionCenterGlobal(); - distance = llmin(distance, (F32) orig_distance.length()); - - gAgentCamera.setCameraPosAndFocusGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal() + LLVector3d(obj_to_cam * distance), - LLSelectMgr::getInstance()->getSelectionCenterGlobal(), - object_id ); - } - else - { - gAgentCamera.setFocusGlobal( LLSelectMgr::getInstance()->getSelectionCenterGlobal(), object_id ); - } - } + handle_look_at_selection(userdata); return true; } }; +void handle_look_at_selection(const LLSD& param) +{ + const F32 PADDING_FACTOR = 2.f; + BOOL zoom = (param.asString() == "zoom"); + if (!LLSelectMgr::getInstance()->getSelection()->isEmpty()) + { + gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE); + + LLBBox selection_bbox = LLSelectMgr::getInstance()->getBBoxOfSelection(); + F32 angle_of_view = llmax(0.1f, LLViewerCamera::getInstance()->getAspect() > 1.f ? LLViewerCamera::getInstance()->getView() * LLViewerCamera::getInstance()->getAspect() : LLViewerCamera::getInstance()->getView()); + F32 distance = selection_bbox.getExtentLocal().magVec() * PADDING_FACTOR / atan(angle_of_view); + + LLVector3 obj_to_cam = LLViewerCamera::getInstance()->getOrigin() - selection_bbox.getCenterAgent(); + obj_to_cam.normVec(); + + LLUUID object_id; + if (LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()) + { + object_id = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()->mID; + } + if (zoom) + { + // Make sure we are not increasing the distance between the camera and object + LLVector3d orig_distance = gAgentCamera.getCameraPositionGlobal() - LLSelectMgr::getInstance()->getSelectionCenterGlobal(); + distance = llmin(distance, (F32) orig_distance.length()); + + gAgentCamera.setCameraPosAndFocusGlobal(LLSelectMgr::getInstance()->getSelectionCenterGlobal() + LLVector3d(obj_to_cam * distance), + LLSelectMgr::getInstance()->getSelectionCenterGlobal(), + object_id ); + + } + else + { + gAgentCamera.setFocusGlobal( LLSelectMgr::getInstance()->getSelectionCenterGlobal(), object_id ); + } + } +} + void callback_invite_to_group(LLUUID group_id, void *user_data) { std::vector agent_ids; @@ -6449,7 +6148,7 @@ class LLAvatarAddFriend : public view_listener_t } }; -bool complete_give_money(const LLSD& notification, const LLSD& response, LLObjectSelectionHandle handle) +bool complete_give_money(const LLSD& notification, const LLSD& response, LLObjectSelectionHandle selection) { S32 option = LLNotification::getSelectedOption(notification, response); if (option == 0) @@ -6457,7 +6156,7 @@ bool complete_give_money(const LLSD& notification, const LLSD& response, LLObjec gAgent.clearBusy(); } - LLViewerObject* objectp = handle->getPrimaryObject(); + LLViewerObject* objectp = selection->getPrimaryObject(); // Show avatar's name if paying attachment if (objectp && objectp->isAttachment()) @@ -6472,7 +6171,7 @@ bool complete_give_money(const LLSD& notification, const LLSD& response, LLObjec { if (objectp->isAvatar()) { - const BOOL is_group = FALSE; + const bool is_group = false; LLFloaterPay::payDirectly(&give_money, objectp->getID(), is_group); @@ -6740,7 +6439,6 @@ class LLShowFloater : public view_listener_t { LLViewerParcelMgr::getInstance()->selectParcelAt(gAgent.getPositionGlobal()); } - LLViewerParcelMgr::getInstance()->startBuyLand(); } else if (floater_name == "about region") @@ -7027,7 +6725,7 @@ class LLShowAgentProfile : public view_listener_t if ( (avatar) && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) || (gAgent.getID() == agent_id)) ) // [/RLVa:KB] { - LLFloaterAvatarInfo::show( avatar->getID() ); + LLFloaterAvatarInfo::show(avatar->getID()); } return true; } @@ -7315,7 +7013,7 @@ void handle_detach_from_avatar(void* user_data) { uuid_vec_t ids_to_remove; const LLViewerJointAttachment *attachment = (LLViewerJointAttachment*)user_data; - + // if (attachment->getNumObjects() > 0) // [RLVa:KB] - Checked: 2010-03-04 (RLVa-1.2.0a) | Added: RLVa-1.2.0a if ( (attachment->getNumObjects() > 0) && ((!rlv_handler_t::isEnabled()) || (gRlvAttachmentLocks.canDetach(attachment))) ) @@ -7478,18 +7176,18 @@ class LLAttachmentEnableDrop : public view_listener_t // item is in your inventory LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); - LLViewerJointAttachment* attachment_pt = NULL; + LLViewerJointAttachment* attachment = NULL; LLInventoryItem* item = NULL; - if ( object ) + if (object) { S32 attachmentID = ATTACHMENT_ID_FROM_STATE(object->getState()); - attachment_pt = get_if_there(gAgentAvatarp->mAttachmentPoints, attachmentID, (LLViewerJointAttachment*)NULL); + attachment = get_if_there(gAgentAvatarp->mAttachmentPoints, attachmentID, (LLViewerJointAttachment*)NULL); - if ( attachment_pt ) + if (attachment) { - for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment_pt->mAttachedObjects.begin(); - attachment_iter != attachment_pt->mAttachedObjects.end(); + for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment->mAttachedObjects.begin(); + attachment_iter != attachment->mAttachedObjects.end(); ++attachment_iter) { // make sure item is in your inventory (it could be a delayed attach message being sent from the sim) @@ -7523,8 +7221,11 @@ class LLAttachmentEnableDrop : public view_listener_t BOOL enable_detach(void*) { LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); - if (!object) return FALSE; - if (!object->isAttachment()) return FALSE; + if (!object || + !object->isAttachment()) + { + return FALSE; + } // Find the avatar who owns this attachment LLViewerObject* avatar = object; @@ -7725,7 +7426,7 @@ namespace }; } -void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, const std::string& nomodmsg) +void queue_actions(LLFloaterScriptQueue* q, const std::string& msg) { QueueObjects func(q); LLSelectMgr *mgr = LLSelectMgr::getInstance(); @@ -7735,10 +7436,12 @@ void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, cons { if ( !func.scripted ) { + std::string noscriptmsg = std::string("Cannot") + msg + "SelectObjectsNoScripts"; LLNotifications::instance().add(noscriptmsg); } else if ( !func.modifiable ) { + std::string nomodmsg = std::string("Cannot") + msg + "SelectObjectsNoPermission"; LLNotifications::instance().add(nomodmsg); } else @@ -7755,38 +7458,6 @@ void queue_actions(LLFloaterScriptQueue* q, const std::string& noscriptmsg, cons } } -void handle_compile_queue(std::string to_lang) -{ - LLFloaterCompileQueue* queue; - if (to_lang == "mono") - { - queue = LLFloaterCompileQueue::create(TRUE); - } - else - { - queue = LLFloaterCompileQueue::create(FALSE); - } - queue_actions(queue, "CannotRecompileSelectObjectsNoScripts", "CannotRecompileSelectObjectsNoPermission"); -} - -void handle_reset_selection(void) -{ - LLFloaterResetQueue* queue = LLFloaterResetQueue::create(); - queue_actions(queue, "CannotResetSelectObjectsNoScripts", "CannotResetSelectObjectsNoPermission"); -} - -void handle_set_run_selection(void) -{ - LLFloaterRunQueue* queue = LLFloaterRunQueue::create(); - queue_actions(queue, "CannotSetRunningSelectObjectsNoScripts", "CannotSerRunningSelectObjectsNoPermission"); -} - -void handle_set_not_run_selection(void) -{ - LLFloaterNotRunQueue* queue = LLFloaterNotRunQueue::create(); - queue_actions(queue, "CannotSetRunningNotSelectObjectsNoScripts", "CannotSerRunningNotSelectObjectsNoPermission"); -} - class LLToolsSelectedScriptAction : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) @@ -7803,25 +7474,40 @@ class LLToolsSelectedScriptAction : public view_listener_t // [/RLVa:KB] std::string action = userdata.asString(); + LLFloaterScriptQueue* queue = NULL; + std::string msg; if (action == "compile mono") { - handle_compile_queue("mono"); + queue = LLFloaterCompileQueue::create(true); + msg = "Recompile"; } if (action == "compile lsl") { - handle_compile_queue("lsl"); + queue = LLFloaterCompileQueue::create(false); + msg = "Recompile"; } else if (action == "reset") { - handle_reset_selection(); + queue = LLFloaterResetQueue::create(); + msg = "Reset"; } else if (action == "start") { - handle_set_run_selection(); + queue = LLFloaterRunQueue::create(); + msg = "SetRunning"; } else if (action == "stop") { - handle_set_not_run_selection(); + queue = LLFloaterNotRunQueue::create(); + msg = "SetRunningNot"; + } + if (queue) + { + queue_actions(queue, msg); + } + else + { + llwarns << "Failed to generate LLFloaterScriptQueue with action: " << action << llendl; } return true; } @@ -7937,20 +7623,15 @@ void handle_toggle_pg(void*) LLFloaterWorldMap::reloadIcons(NULL); - llinfos << "PG status set to " << (S32)gAgent.isTeen() << llendl; + llinfos << "PG status set to " << gAgent.isTeen() << llendl; } void handle_dump_attachments(void*) { - LLVOAvatar* avatar = gAgentAvatarp; - if( !avatar ) - { - llinfos << "NO AVATAR" << llendl; - return; - } + if(!isAgentAvatarValid()) return; - for (LLVOAvatar::attachment_map_t::iterator iter = avatar->mAttachmentPoints.begin(); - iter != avatar->mAttachmentPoints.end(); ) + for (LLVOAvatar::attachment_map_t::iterator iter = gAgentAvatarp->mAttachmentPoints.begin(); + iter != gAgentAvatarp->mAttachmentPoints.end(); ) { LLVOAvatar::attachment_map_t::iterator curiter = iter++; LLViewerJointAttachment* attachment = curiter->second; @@ -8009,7 +7690,7 @@ void menu_toggle_control( void* user_data ) } -// these are used in the gl menus to set control values. +// these are used in the gl menus to set control values, generically. class LLToggleControl : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) @@ -8324,28 +8005,6 @@ class LLToolsEnableSaveToObjectInventory : public view_listener_t } }; -BOOL enable_not_thirdperson(void*) -{ - return !gAgentCamera.cameraThirdPerson(); -} - - -// BOOL enable_export_selected(void *) -// { -// if (LLSelectMgr::getInstance()->getSelection()->isEmpty()) -// { -// return FALSE; -// } -// if (!gExporterRequestID.isNull()) -// { -// return FALSE; -// } -// if (!LLUploadDialog::modalUploadIsFinished()) -// { -// return FALSE; -// } -// return TRUE; -// } class LLViewEnableMouselook : public view_listener_t { @@ -8442,10 +8101,7 @@ BOOL enable_god_basic(void*) void toggle_show_xui_names(void *) { - BOOL showXUINames = gSavedSettings.getBOOL("ShowXUINames"); - - showXUINames = !showXUINames; - gSavedSettings.setBOOL("ShowXUINames", showXUINames); + gSavedSettings.setBOOL("ShowXUINames", !gSavedSettings.getBOOL("ShowXUINames")); } BOOL check_show_xui_names(void *) @@ -8574,6 +8230,21 @@ void handle_dump_avatar_local_textures(void*) } } +void handle_debug_avatar_textures(void*) +{ + if (LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject()) + { + LLFloaterAvatarTextures::show(objectp->getID()); + } + // + else + { + // default to own avatar + LLFloaterAvatarTextures::show(gAgent.getID()); + } + // +} + void init_meshes_and_morphs_menu() { LLMenuGL* menu = gMeshesAndMorphsMenu; @@ -8970,22 +8641,6 @@ static void handle_morph_load_obj_continued(void* data, AIFilePicker* filepicker morph_data->setMorphFromMesh(&mesh); } -void handle_debug_avatar_textures(void*) -{ - LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject(); - if (objectp) - { - LLFloaterAvatarTextures::show(objectp->getID()); - } - // -} - // Returns a pointer to the avatar give the UUID of the avatar OR of an attachment the avatar is wearing. // Returns NULL on failure. LLVOAvatar* find_avatar_from_object( LLViewerObject* object ) @@ -9000,8 +8655,7 @@ LLVOAvatar* find_avatar_from_object( LLViewerObject* object ) } while( object && !object->isAvatar() ); } - else - if( !object->isAvatar() ) + else if( !object->isAvatar() ) { object = NULL; } @@ -9021,7 +8675,7 @@ LLVOAvatar* find_avatar_from_object( const LLUUID& object_id ) void handle_disconnect_viewer(void *) { - LLAppViewer::instance()->forceDisconnect("Testing viewer disconnect"); + LLAppViewer::instance()->forceDisconnect(LLTrans::getString("TestingDisconnect")); } void force_error_breakpoint(void *) @@ -9089,9 +8743,9 @@ void handle_test_load_url(void*) // LLViewerMenuHolderGL // -LLViewerMenuHolderGL::LLViewerMenuHolderGL() : LLMenuHolderGL() -{ -} +LLViewerMenuHolderGL::LLViewerMenuHolderGL() +: LLMenuHolderGL() +{} BOOL LLViewerMenuHolderGL::hideMenus() { @@ -9188,25 +8842,7 @@ void handle_buy_currency_test(void*) LLStringUtil::format_map_t replace; replace["[AGENT_ID]"] = gAgent.getID().asString(); replace["[SESSION_ID]"] = gAgent.getSecureSessionID().asString(); - - // *TODO: Replace with call to LLUI::getLanguage() after windows-setup - // branch merges in. JC - std::string language = "en-us"; - language = gSavedSettings.getString("Language"); - if (language.empty() || language == "default") - { - language = gSavedSettings.getString("InstallLanguage"); - } - if (language.empty() || language == "default") - { - language = gSavedSettings.getString("SystemLanguage"); - } - if (language.empty() || language == "default") - { - language = "en-us"; - } - - replace["[LANGUAGE]"] = language; + replace["[LANGUAGE]"] = LLUI::getLanguage(); LLStringUtil::format(url, replace); llinfos << "buy currency url " << url << llendl; @@ -9351,7 +8987,7 @@ class LLEditEnableTakeOff : public view_listener_t // [RLVa:KB] - Checked: 2009-07-07 (RLVa-1.1.3b) | Modified: RLVa-1.1.3b | OK if ( !(rlv_handler_t::isEnabled()) || (gRlvWearableLocks.canRemove(type)) ) // [/RLVa:KB] - + new_value = LLAgentWearables::selfHasWearable(type); gMenuHolder->findControl(control_name)->setValue(new_value); @@ -9452,18 +9088,18 @@ class LLWorldEnvSettings : public view_listener_t { // if not there or is hidden, show it if( !LLFloaterEnvSettings::isOpen() || - !LLFloaterEnvSettings::instance()->getVisible()) { - LLFloaterEnvSettings::show(); - - // otherwise, close it button acts like a toggle - } - else + !LLFloaterEnvSettings::instance()->getVisible()) { + LLFloaterEnvSettings::show(); + } + else + { + // otherwise, close it button acts like a toggle LLFloaterEnvSettings::instance()->close(); } return true; } - + if (tod == "sunrise") { LLEnvManagerNew::instance().setUseSkyPreset("Sunrise", gSavedSettings.getBOOL("PhoenixInterpolateSky")); @@ -9491,7 +9127,7 @@ class LLWorldEnvSettings : public view_listener_t /// Water Menu callbacks class LLWorldWaterSettings : public view_listener_t -{ +{ bool handleEvent(LLPointer event, const LLSD& userdata) { // [RLVa:KB] - Checked: 2009-07-10 (RLVa-1.0.0g) @@ -9568,19 +9204,6 @@ void initialize_menus() F32 mVal; bool mMult; }; - - class LLAvatarReportAbuse : public view_listener_t - { - bool handleEvent(LLPointer event, const LLSD& userdata) - { - LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() ); - if(avatar) - { - LLFloaterReporter::showFromObject(avatar->getID()); - } - return true; - } - }; // File menu init_menu_file(); @@ -9732,7 +9355,6 @@ void initialize_menus() addMenu(new LLAvatarDebug(), "Avatar.Debug"); addMenu(new LLAvatarVisibleDebug(), "Avatar.VisibleDebug"); - addMenu(new LLAvatarEnableDebug(), "Avatar.EnableDebug"); addMenu(new LLAvatarInviteToGroup(), "Avatar.InviteToGroup"); addMenu(new LLAvatarGiveCard(), "Avatar.GiveCard"); addMenu(new LLAvatarEject(), "Avatar.Eject"); diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h index 9d4d43629..e17b242dd 100644 --- a/indra/newview/llviewermenu.h +++ b/indra/newview/llviewermenu.h @@ -90,7 +90,6 @@ BOOL enable_god_full(void* user_data); BOOL enable_god_liaison(void* user_data); BOOL enable_god_customer_service(void* user_data); BOOL enable_god_basic(void* user_data); -void handle_show_newest_map(void*); void set_underclothes_menu_options(); void exchange_callingcard(const LLUUID& dest_id); @@ -98,6 +97,7 @@ void exchange_callingcard(const LLUUID& dest_id); void handle_gestures(void*); void handle_sit_down(void*); void handle_object_build(void*); +bool handle_object_open(); bool visible_take_object(); bool enable_object_take_copy(); @@ -108,6 +108,7 @@ bool enable_object_delete(); void handle_buy(); void handle_take(); void handle_take_copy(); +void handle_look_at_selection(const LLSD& param); void handle_object_return(); void handle_object_delete(); @@ -125,7 +126,6 @@ void handle_fake_away_status(void*); bool handle_sit_or_stand(); bool handle_give_money_dialog(); -bool handle_object_open(); bool enable_buy_object(); bool handle_go_to(); diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 3efe1822a..2c566a46c 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -36,49 +36,31 @@ #include -#include "llimagejpeg.h" -#include "llagentui.h" #include "llanimationstates.h" #include "llaudioengine.h" #include "llavatarnamecache.h" -#include "indra_constants.h" #include "../lscript/lscript_byteformat.h" //Need LSCRIPTRunTimePermissionBits and SCRIPT_PERMISSION_* -#include "llfloaterbump.h" -#include "llassetstorage.h" #include "llcachename.h" -#include "llchat.h" -#include "lldbstrings.h" #include "lleconomy.h" #include "llfocusmgr.h" #include "llfollowcamparams.h" -#include "llinstantmessage.h" -#include "llquantize.h" -#include "llregionflags.h" +#include "llinventorydefines.h" #include "llregionhandle.h" #include "llsdserialize.h" -#include "llstring.h" #include "llteleportflags.h" -#include "lltracker.h" #include "lltransactionflags.h" #include "llvfile.h" #include "llvfs.h" #include "llxfermanager.h" #include "mean_collision_data.h" -#include "message.h" -#include "sound_ids.h" -#include "lleventtimer.h" -#include "llmd5.h" #include "llagent.h" #include "llagentcamera.h" #include "llcallingcard.h" -#include "llconsole.h" -#include "llvieweraudio.h" -#include "llviewercontrol.h" -#include "lldrawpool.h" #include "llfirstuse.h" #include "llfloateranimpreview.h" +#include "llfloaterbump.h" #include "llfloaterbuycurrency.h" #include "llfloaterbuyland.h" #include "llfloaterchat.h" @@ -93,16 +75,12 @@ #include "llfloaterpostcard.h" #include "llfloaterpreference.h" #include "llfloaterteleporthistory.h" -#include "llfollowcam.h" -#include "llgroupnotify.h" -#include "llhudeffect.h" #include "llhudeffecttrail.h" #include "llhudmanager.h" #include "llimpanel.h" -#include "llinventorydefines.h" +#include "llinventorybridge.h" #include "llinventorymodel.h" #include "llinventorypanel.h" -#include "llmenugl.h" #include "llmutelist.h" #include "llnotify.h" #include "llnotifications.h" @@ -115,13 +93,7 @@ #include "llstatusbar.h" #include "llimview.h" #include "llfloateractivespeakers.h" -#include "lltexturestats.h" -#include "lltool.h" -#include "lltoolbar.h" -#include "lltoolmgr.h" #include "lltrans.h" -#include "llfoldertype.h" -#include "llui.h" // for make_ui_sound #include "lluploaddialog.h" #include "llviewercamera.h" #include "llviewerdisplay.h" @@ -140,13 +112,12 @@ #include "llviewerwindow.h" #include "llvlmanager.h" #include "llvoavatar.h" -#include "llweb.h" #include "llworld.h" #include "pipeline.h" -#include "llappviewer.h" #include "llfloaterworldmap.h" #include "llviewerdisplay.h" #include "llkeythrottle.h" +#include "llagentui.h" #include "llviewerregion.h" // #include "llviewernetwork.h" @@ -250,7 +221,7 @@ const BOOL SCRIPT_QUESTION_IS_CAUTION[SCRIPT_PERMISSION_EOF] = FALSE, // ChangePermissions FALSE, // TrackYourCamera, FALSE, // ControlYourCamera - FALSE // TeleportYourAgent + FALSE // TeleportYourAgent }; bool friendship_offer_callback(const LLSD& notification, const LLSD& response) @@ -312,9 +283,6 @@ static LLNotificationFunctorRegistration friendship_offer_callback_reg_nm("Offer void give_money(const LLUUID& uuid, LLViewerRegion* region, S32 amount, BOOL is_group, S32 trx_type, const std::string& desc) { - // - //if(!region) return; - // if(0 == amount || !region) return; amount = abs(amount); LL_INFOS("Messaging") << "give_money(" << uuid << "," << amount << ")"<< LL_ENDL; @@ -1113,7 +1081,9 @@ public: // If we now try to remove the inventory item, it will cause a nested // notifyObservers() call, which won't work. // So defer moving the item to trash until viewer gets idle (in a moment). - LLAppViewer::instance()->addOnIdleCallback(boost::bind(&LLInventoryModel::removeItem, &gInventory, mObjectID)); + // Use removeObject() rather than removeItem() because at this level, + // the object could be either an item or a folder. + LLAppViewer::instance()->addOnIdleCallback(boost::bind(&LLInventoryModel::removeObject, &gInventory, mObjectID)); gInventory.removeObserver(this); delete this; } @@ -1196,12 +1166,12 @@ bool check_offer_throttle(const std::string& from_name, bool check_only) } } -void open_inventory_offer(const uuid_vec_t& items, const std::string& from_name) { uuid_vec_t::const_iterator it = items.begin(); uuid_vec_t::const_iterator end = items.end(); LLInventoryItem* item; for(; it != end; ++it) +void open_inventory_offer(const uuid_vec_t& objects, const std::string& from_name) { item = gInventory.getItem(*it); if(!item) @@ -1270,12 +1240,14 @@ void open_inventory_offer(const uuid_vec_t& items, const std::string& from_name) return; } + + //////////////////////////////////////////////////////////////////////////////// + // Highlight item //Not sure about this check. Could make it easy to miss incoming items. //don't dick with highlight while the user is working //if(inventory_has_focus && !user_is_away) // break; LL_DEBUGS("Messaging") << "Highlighting" << item->getUUID() << LL_ENDL; - //highlight item LLFocusableElement* focus_ctrl = gFocusMgr.getKeyboardFocus(); view->getPanel()->setSelection(item->getUUID(), TAKE_FOCUS_NO); @@ -1379,7 +1351,7 @@ LLSD LLOfferInfo::asLLSD() } bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& response) - { +{ LLChat chat; std::string log_message; S32 button = LLNotificationsUtil::getSelectedOption(notification, response); @@ -1413,8 +1385,7 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD& msg->addUUIDFast(_PREHASH_RegionID, LLUUID::null); msg->addVector3Fast(_PREHASH_Position, gAgent.getPositionAgent()); LLInventoryObserver* opener = NULL; - LLViewerInventoryCategory* catp = NULL; - catp = (LLViewerInventoryCategory*)gInventory.getCategory(mObjectID); + LLViewerInventoryCategory* catp = gInventory.getCategory(mObjectID); LLViewerInventoryItem* itemp = NULL; if(!catp) { @@ -1905,6 +1876,36 @@ static std::string clean_name_from_im(const std::string& name, EInstantMessage t } } +static std::string clean_name_from_task_im(const std::string& msg, + BOOL from_group) +{ + boost::smatch match; + static const boost::regex returned_exp( + "(.*been returned to your inventory lost and found folder by )(.+)( (from|near).*)"); + if (boost::regex_match(msg, match, returned_exp)) + { + // match objects are 1-based for groups + std::string final = match[1].str(); + std::string name = match[2].str(); + // Don't try to clean up group names + if (!from_group) + { + if (LLAvatarNameCache::useDisplayNames()) + { + // ...just convert to username + final += LLCacheName::buildUsername(name); + } + else + { + // ...strip out legacy "Resident" name + final += LLCacheName::cleanFullName(name); + } + } + final += match[3].str(); + return final; + } + return msg; +} void notification_display_name_callback(const LLUUID& id, const LLAvatarName& av_name, @@ -1915,6 +1916,25 @@ void notification_display_name_callback(const LLUUID& id, substitutions["NAME"] = av_name.mDisplayName; LLNotificationsUtil::add(name, substitutions, payload); } + +// Callback for name resolution of a god/estate message +void god_message_name_cb(const LLAvatarName& av_name, LLChat chat, std::string message) +{ + std::string name; + LLAvatarNameCache::getPNSName(av_name, name); + LLSD args; + args["NAME"] = name; + args["MESSAGE"] = message; + LLNotificationsUtil::add("GodMessage", args); + + // Treat like a system message and put in chat history. + chat.mText = name + ": " + message; + + // Claim to be from a local agent so it doesn't go into console. + LLFloaterChat::addChat(chat, false, true); + +} + void process_improved_im(LLMessageSystem *msg, void **user_data) { if (gNoRender) @@ -1990,6 +2010,10 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) { name = LLTrans::getString("Unnamed"); } + + // Preserve the unaltered name for use in group notice mute checking. + std::string original_name = name; + // IDEVO convert new-style "Resident" names for display name = clean_name_from_im(name, dialog); @@ -2003,6 +2027,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) || dialog == IM_FROM_TASK && LLMuteList::getInstance()->isMuted(session_id); BOOL is_linden = LLMuteList::getInstance()->isLinden(name); BOOL is_owned_by_me = FALSE; + BOOL is_friend = (LLAvatarTracker::instance().getBuddyInfo(from_id) == NULL) ? false : true; + BOOL accept_im_from_only_friend = gSavedSettings.getBOOL("VoiceCallsFriendsOnly"); LLUUID computed_session_id = LLIMMgr::computeSessionID(dialog,from_id); @@ -2274,10 +2300,10 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) // do nothing -- don't distract newbies in // Prelude with global IMs } -// [RLVa:KB] - Checked: 2010-03-27 (RLVa-1.1.3a) | Modified: RLVa-1.2.0b - else if ( (rlv_handler_t::isEnabled()) && (offline == IM_ONLINE) && ("@version" == message) ) +// [RLVa:KB] - Checked: 2011-05-28 (RLVa-1.4.0a) | Modified: RLVa-1.4.0a + else if ( (rlv_handler_t::isEnabled()) && (offline == IM_ONLINE) && ("@version" == message) && + (!is_muted) && ((!accept_im_from_only_friend) || (is_friend)) ) { - // TODO-RLVa: [RLVa-1.2.1] Should we send our version string if the other party is muted? RlvUtil::sendBusyMessage(from_id, RlvStrings::getVersion(), session_id); // We won't receive a typing stop message, so do that manually (see comment at the end of LLFloaterIMPanel::sendMsg) LLPointer im_info = new LLIMInfo(gMessageSystem); @@ -2344,41 +2370,24 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) } else if (to_id.isNull()) { -// [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) - // Filter region messages that weren't sent by a Linden - if ( (rlv_handler_t::isEnabled()) && (LLMuteList::getInstance()) && - (!LLMuteList::getInstance()->isLinden(name)) && (from_id != gAgent.getID()) ) - { - if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) - RlvUtil::filterLocation(message); - if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) - { - name = RlvStrings::getAnonym(name); - RlvUtil::filterNames(message); - } - } -// [/RLVa:KB] - - // Message to everyone from GOD - args["NAME"] = name; - args["MESSAGE"] = message; - LLNotificationsUtil::add("GodMessage", args); - - // Treat like a system message and put in chat history. - // Claim to be from a local agent so it doesn't go into - // console. - chat.mText = name + separator_string + message.substr(message_offset); - BOOL local_agent = TRUE; - LLFloaterChat::addChat(chat, FALSE, local_agent); + // Message to everyone from GOD, look up the fullname since + // server always slams name to legacy names + LLAvatarNameCache::get(from_id, boost::bind(god_message_name_cb, _2, chat, message)); } else { // standard message, not from system + bool mute_im = is_muted; + if(accept_im_from_only_friend&&!is_friend) + { + mute_im = true; + } + // [RLVa:KB] - Checked: 2010-11-30 (RLVa-1.3.0c) | Modified: RLVa-1.3.0c // Don't block offline IMs, or IMs from Lindens if ( (rlv_handler_t::isEnabled()) && (offline != IM_OFFLINE) && (!is_linden) && (!gRlvHandler.canReceiveIM(from_id)) ) { - if (!is_muted) + if (!mute_im) RlvUtil::sendBusyMessage(from_id, RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM_REMOTE), session_id); message = message.substr(0, message_offset) + RlvStrings::getString(RLV_STRING_BLOCKED_RECVIM); } @@ -2391,11 +2400,25 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) args["[LONG_TIMESTAMP]"] = formatted_time(timestamp); saved = LLTrans::getString("Saved_message", args); } - buffer = separator_string + saved + message.substr(message_offset); + buffer = separator_string + saved + message.substr(message_offset); LL_INFOS("Messaging") << "process_improved_im: session_id( " << session_id << " ), from_id( " << from_id << " )" << LL_ENDL; - if (!is_muted || is_linden) +/* + bool mute_im = is_muted; + if (accept_im_from_only_friend && !is_friend) + { + if (!gIMMgr->isNonFriendSessionNotified(session_id)) + { + std::string message = LLTrans::getString("IM_unblock_only_groups_friends"); + gIMMgr->addMessage(session_id, from_id, name, message); + gIMMgr->addNotifiedNonFriendSessionID(session_id); + } + + mute_im = true; + } +*/ + if (!mute_im || is_linden) { gIMMgr->addMessage( session_id, @@ -2442,9 +2465,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) case IM_MESSAGEBOX: { // This is a block, modeless dialog. - // *TODO: Translate + //*TODO: Translate args["MESSAGE"] = message; - LLNotificationsUtil::add("SystemMessage", args); + LLNotificationsUtil::add("SystemMessageTip", args); } break; case IM_GROUP_NOTICE: @@ -2477,6 +2500,26 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) break; } + // The group notice packet does not have an AgentID. Obtain one from the name cache. + // If last name is "Resident" strip it out so the cache name lookup works. + U32 index = original_name.find(" Resident"); + if (index != std::string::npos) + { + original_name = original_name.substr(0, index); + } + std::string legacy_name = gCacheName->buildLegacyName(original_name); + LLUUID agent_id; + gCacheName->getUUID(legacy_name, agent_id); + + if (agent_id.isNull()) + { + LL_WARNS("Messaging") << "buildLegacyName returned null while processing " << original_name << LL_ENDL; + } + else if (LLMuteList::getInstance()->isMuted(agent_id)) + { + break; + } + notice_bin_bucket = (struct notice_bucket_full_t*) &binary_bucket[0]; U8 has_inventory = notice_bin_bucket->header.has_inventory; U8 asset_type = notice_bin_bucket->header.asset_type; @@ -2549,27 +2592,11 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) break; case IM_GROUP_INVITATION: { - // Read the binary bucket for more information. - struct invite_bucket_t - { - S32 membership_fee; - LLUUID role_id; - }* invite_bucket; - - // Make sure the binary bucket is the correct size. - if (binary_bucket_size != sizeof(invite_bucket_t)) - { - LL_WARNS("Messaging") << "Malformed group invite binary bucket" << LL_ENDL; - break; - } - - invite_bucket = (struct invite_bucket_t*) &binary_bucket[0]; - S32 membership_fee = ntohl(invite_bucket->membership_fee); - // NaCl - Antispam - if(antispam || gSavedSettings.getBOOL("AntiSpamGroupInvites") || (membership_fee > 0 && gSavedSettings.getBOOL("AntiSpamGroupFeeInvites"))) + if (antispam || gSavedSettings.getBOOL("AntiSpamGroupInvites")) return; // NaCl End + //if (!is_linden && (is_busy || is_muted)) if ((is_busy || is_muted)) { @@ -2579,6 +2606,26 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) else { LL_INFOS("Messaging") << "Received IM_GROUP_INVITATION message." << LL_ENDL; + // Read the binary bucket for more information. + struct invite_bucket_t + { + S32 membership_fee; + LLUUID role_id; + }* invite_bucket; + + // Make sure the binary bucket is the correct size. + if (binary_bucket_size != sizeof(invite_bucket_t)) + { + LL_WARNS("Messaging") << "Malformed group invite binary bucket" << LL_ENDL; + break; + } + + invite_bucket = (struct invite_bucket_t*) &binary_bucket[0]; + S32 membership_fee = ntohl(invite_bucket->membership_fee); + // NaCl - Antispam + if (membership_fee > 0 && gSavedSettings.getBOOL("AntiSpamGroupFeeInvites")) + return; + // NaCl End LLSD payload; payload["transaction_id"] = session_id; @@ -2680,23 +2727,23 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) case IM_INVENTORY_ACCEPTED: { +// args["NAME"] = name; // [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Modified: RLVa-0.2.0b - bool fRlvObfuscate = (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && - (RlvUtil::isNearbyAgent(from_id)) && (!LLFloaterAvatarInfo::getInstance(from_id)); - args["NAME"] = (!fRlvObfuscate) ? name : RlvStrings::getAnonym(name); + bool fRlvFilterName = (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (RlvUtil::isNearbyAgent(from_id)) && + (!LLFloaterAvatarInfo::getInstance(from_id)); + args["NAME"] = (!fRlvFilterName) ? name : RlvStrings::getAnonym(name); // [/RLVa:KB] - //args["NAME"] = name; LLNotificationsUtil::add("InventoryAccepted", args); break; } case IM_INVENTORY_DECLINED: { +// args["NAME"] = name; // [RLVa:KB] - Version: 1.23.4 | Checked: 2009-07-08 (RLVa-1.0.0e) | Modified: RLVa-0.2.0b - bool fRlvObfuscate = (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && - (RlvUtil::isNearbyAgent(from_id)) && (!LLFloaterAvatarInfo::getInstance(from_id)); - args["NAME"] = (!fRlvObfuscate) ? name : RlvStrings::getAnonym(name); + bool fRlvFilterName = (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES)) && (RlvUtil::isNearbyAgent(from_id)) && + (!LLFloaterAvatarInfo::getInstance(from_id)); + args["NAME"] = (!fRlvFilterName) ? name : RlvStrings::getAnonym(name); // [/RLVa:KB] - //args["NAME"] = name; LLNotificationsUtil::add("InventoryDeclined", args); break; } @@ -2764,11 +2811,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) saved = llformat("(Saved %s) ", formatted_time(timestamp).c_str()); } buffer = separator_string + saved + message.substr(message_offset); - BOOL is_this_agent = FALSE; - if(from_id == gAgentID) - { - is_this_agent = TRUE; - } gIMMgr->addMessage( session_id, from_id, @@ -2793,7 +2835,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) prepend_msg = std::string("IM: "); } chat.mText = prepend_msg + name + separator_string + saved + message.substr(message_offset); - LLFloaterChat::addChat(chat, TRUE, is_this_agent); + LLFloaterChat::addChat(chat, TRUE, from_id == gAgentID); } break; @@ -2832,6 +2874,22 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) chat.mFromID = from_id ^ gAgent.getSessionID(); } + chat.mSourceType = CHAT_SOURCE_OBJECT; + + // To conclude that the source type of message is CHAT_SOURCE_SYSTEM it's not + // enough to check only from name (i.e. fromName = "Second Life"). For example + // source type of messages from objects called "Second Life" should not be CHAT_SOURCE_SYSTEM. + bool chat_from_system = (SYSTEM_FROM == name) && region_id.isNull() && position.isNull(); + if(chat_from_system) + { + // System's UUID is NULL (fixes EXT-4766) + chat.mFromID = LLUUID::null; + chat.mSourceType = CHAT_SOURCE_SYSTEM; + } + + // IDEVO Some messages have embedded resident names + message = clean_name_from_task_im(message, from_group); + std::ostringstream link; link << "secondlife:///app/objectim/" << session_id << LLURI::mapToQueryString(query_string); @@ -2841,7 +2899,6 @@ void process_improved_im(LLMessageSystem *msg, void **user_data) // Note: lie to LLFloaterChat::addChat(), pretending that this is NOT an IM, because // IMs from objcts don't open IM sessions. - chat.mSourceType = CHAT_SOURCE_OBJECT; LLFloaterChat::addChat(chat, FALSE, FALSE); } break; @@ -3463,12 +3520,10 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) // if (chat.mSourceType == CHAT_SOURCE_OBJECT // && chat.mChatType != CHAT_TYPE_DEBUG_MSG // && gSavedSettings.getBOOL("EffectScriptChatParticles") ) -// [RLVa:KB] - Alternate: Snowglobe-1.2.4 | Checked: 2009-07-10 (RLVa-1.0.0g) - // Don't show swirly things for llOwnerSay() chat here because we handle those further down - // RELEASE-RLVa: if this code changes, remember to change the code down below as well - if ( (chat.mSourceType == CHAT_SOURCE_OBJECT && chat.mChatType != CHAT_TYPE_DEBUG_MSG) && - (gSavedSettings.getBOOL("EffectScriptChatParticles")) && - (CHAT_TYPE_OWNER != chat.mChatType) ) +// [RLVa:KB] - Checked: 2010-03-09 (RLVa-1.2.0b) | Modified: RLVa-1.0.0g + if ( ((chat.mSourceType == CHAT_SOURCE_OBJECT) && (chat.mChatType != CHAT_TYPE_DEBUG_MSG)) && + (gSavedSettings.getBOOL("EffectScriptChatParticles")) && + ((!rlv_handler_t::isEnabled()) || (CHAT_TYPE_OWNER != chat.mChatType)) ) // [/RLVa:KB] { LLPointer psc = new LLViewerPartSourceChat(chatter->getPositionAgent()); @@ -3822,11 +3877,10 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) if(SHCommandHandler::handleCommand(false,mesg,from_id,chatter)) return; #endif //shy_mod -// [RLVa:KB] - Alternate: Snowglobe-1.2.4 | Checked: 2009-07-10 (RLVa-1.0.0g) +// [RLVa:KB] - Checked: 2010-03-09 (RLVa-1.2.0b) | Modified: RLVa-1.0.0g // Copy/paste from above - if ( chatter && (chat.mSourceType == CHAT_SOURCE_OBJECT && chat.mChatType != CHAT_TYPE_DEBUG_MSG) && - (gSavedSettings.getBOOL("EffectScriptChatParticles")) && - (CHAT_TYPE_OWNER != chat.mChatType) ) + if ( (rlv_handler_t::isEnabled()) && (chatter) && (chat.mSourceType == CHAT_SOURCE_OBJECT) && + (gSavedSettings.getBOOL("EffectScriptChatParticles")) ) { LLPointer psc = new LLViewerPartSourceChat(chatter->getPositionAgent()); psc->setSourceObject(chatter); @@ -3838,8 +3892,8 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) } // [/RLVa:KB] case CHAT_TYPE_DEBUG_MSG: - case CHAT_TYPE_DIRECT: // llRegionSayTo() case CHAT_TYPE_NORMAL: + case CHAT_TYPE_DIRECT: verb = ": "; break; case CHAT_TYPE_SHOUT: @@ -3890,8 +3944,8 @@ void process_teleport_start(LLMessageSystem *msg, void**) LL_DEBUGS("Messaging") << "Got TeleportStart with TeleportFlags=" << teleport_flags << ". gTeleportDisplay: " << gTeleportDisplay << ", gAgent.mTeleportState: " << gAgent.getTeleportState() << LL_ENDL; - //if (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL) -// [RLVa:KB] - Checked: 2009-07-07 (RLVa-1.0.0d) | Added: RLVa-0.2.0b +// if (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL) +// [RLVa:KB] - Checked: 2010-04-07 (RLVa-1.2.0d) | Added: RLVa-0.2.0b if ( (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL) || (!gRlvHandler.getCanCancelTp()) ) // [/RLVa:KB] { @@ -3930,8 +3984,8 @@ void process_teleport_progress(LLMessageSystem* msg, void**) } U32 teleport_flags = 0x0; msg->getU32("Info", "TeleportFlags", teleport_flags); - //if (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL) -// [RLVa:KB] - Checked: 2009-07-07 (RLVa-1.0.0d) | Added: RLVa-0.2.0b +// if (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL) +// [RLVa:KB] - Checked: 2010-04-07 (RLVa-1.2.0d) | Added: RLVa-0.2.0b if ( (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL) || (!gRlvHandler.getCanCancelTp()) ) // [/RLVa:KB] { @@ -4132,7 +4186,7 @@ void process_teleport_finish(LLMessageSystem* msg, void**) gAgent.setRegion(regionp); gObjectList.shiftObjects(shift_vector); - if (gAgentAvatarp) + if (isAgentAvatarValid()) { gAgentAvatarp->clearChatText(); gAgentCamera.slamLookAt(look_at); @@ -4538,6 +4592,8 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) head_rot_chg = dot(last_head_rot, head_rotation); + //static S32 msg_number = 0; // Used for diagnostic log messages + if (force_send || (cam_center_chg.magVec() > TRANSLATE_THRESHOLD) || (head_rot_chg < THRESHOLD_HEAD_ROT_QDOT) || @@ -4546,19 +4602,20 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) control_flag_change != 0 || flag_change != 0) { - /* + /* Diagnotics to show why we send the AgentUpdate message. Also un-commment the msg_number code above and below this block + msg_number += 1; if (head_rot_chg < THRESHOLD_HEAD_ROT_QDOT) { //LL_INFOS("Messaging") << "head rot " << head_rotation << LL_ENDL; - LL_INFOS("Messaging") << "head_rot_chg = " << head_rot_chg << LL_ENDL; + LL_INFOS("Messaging") << "msg " << msg_number << ", frame " << LLFrameTimer::getFrameCount() << ", head_rot_chg " << head_rot_chg << LL_ENDL; } if (cam_rot_chg.magVec() > ROTATION_THRESHOLD) { - LL_INFOS("Messaging") << "cam rot " << cam_rot_chg.magVec() << LL_ENDL; + LL_INFOS("Messaging") << "msg " << msg_number << ", frame " << LLFrameTimer::getFrameCount() << ", cam rot " << cam_rot_chg.magVec() << LL_ENDL; } if (cam_center_chg.magVec() > TRANSLATE_THRESHOLD) { - LL_INFOS("Messaging") << "cam center " << cam_center_chg.magVec() << LL_ENDL; + LL_INFOS("Messaging") << "msg " << msg_number << ", frame " << LLFrameTimer::getFrameCount() << ", cam center " << cam_center_chg.magVec() << LL_ENDL; } // if (drag_delta_chg.magVec() > TRANSLATE_THRESHOLD) // { @@ -4566,9 +4623,9 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) // } if (control_flag_change) { - LL_INFOS("Messaging") << "dcf = " << control_flag_change << LL_ENDL; + LL_INFOS("Messaging") << "msg " << msg_number << ", frame " << LLFrameTimer::getFrameCount() << ", dcf = " << control_flag_change << LL_ENDL; } - */ +*/ duplicate_count = 0; } @@ -4603,6 +4660,26 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) if (duplicate_count < DUP_MSGS && !gDisconnected) { + /* More diagnostics to count AgentUpdate messages + static S32 update_sec = 0; + static S32 update_count = 0; + static S32 max_update_count = 0; + S32 cur_sec = lltrunc( LLTimer::getTotalSeconds() ); + update_count += 1; + if (cur_sec != update_sec) + { + if (update_sec != 0) + { + update_sec = cur_sec; + //msg_number = 0; + max_update_count = llmax(max_update_count, update_count); + llinfos << "Sent " << update_count << " AgentUpdate messages per second, max is " << max_update_count << llendl; + } + update_sec = cur_sec; + update_count = 0; + } + */ + LLFastTimer t(FTM_AGENT_UPDATE_SEND); // Build the message msg->newMessageFast(_PREHASH_AgentUpdate); @@ -4820,8 +4897,7 @@ void process_time_synch(LLMessageSystem *mesgsys, void **user_data) LLWorld::getInstance()->setSpaceTimeUSec(space_time_usec); - //LL_DEBUGS("Messaging") << "time_synch() - " << sun_direction << ", " << sun_ang_velocity - // << ", " << phase << LL_ENDL; + LL_DEBUGS("Windlight Sync") << "Sun phase: " << phase << " rad = " << fmodf(phase / F_TWO_PI + 0.25, 1.f) * 24.f << " h" << LL_ENDL; gSky.setSunPhase(phase); gSky.setSunTargetDirection(sun_direction, sun_ang_velocity); @@ -5712,17 +5788,17 @@ void process_money_balance_reply( LLMessageSystem* msg, void** ) return; } - // Once the 'recent' container gets large enough, chop some - // off the beginning. - const U32 MAX_LOOKBACK = 30; - const S32 POP_FRONT_SIZE = 12; - if(recent.size() > MAX_LOOKBACK) - { - LL_DEBUGS("Messaging") << "Removing oldest transaction records" << LL_ENDL; - recent.erase(recent.begin(), recent.begin() + POP_FRONT_SIZE); - } - //LL_DEBUGS("Messaging") << "Pushing back transaction " << tid << LL_ENDL; - recent.push_back(tid); + // Once the 'recent' container gets large enough, chop some + // off the beginning. + const U32 MAX_LOOKBACK = 30; + const S32 POP_FRONT_SIZE = 12; + if(recent.size() > MAX_LOOKBACK) + { + LL_DEBUGS("Messaging") << "Removing oldest transaction records" << LL_ENDL; + recent.erase(recent.begin(), recent.begin() + POP_FRONT_SIZE); + } + //LL_DEBUGS("Messaging") << "Pushing back transaction " << tid << LL_ENDL; + recent.push_back(tid); if (msg->has("TransactionInfo")) { @@ -5945,14 +6021,14 @@ static void process_money_balance_reply_extended(LLMessageSystem* msg) bool handle_prompt_for_maturity_level_change_callback(const LLSD& notification, const LLSD& response) { S32 option = LLNotificationsUtil::getSelectedOption(notification, response); - + if (0 == option) { // set the preference to the maturity of the region we're calling U8 preferredMaturity = static_cast(notification["payload"]["_region_access"].asInteger()); gSavedSettings.setU32("PreferredMaturity", static_cast(preferredMaturity)); } - + return false; } diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index ab6f13752..0c51c367a 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -48,12 +48,10 @@ #include "llviewquery.h" #include "llxmltree.h" -//#include "llviewercamera.h" #include "llrender.h" #include "llvoiceclient.h" // for push-to-talk button handling - // // TODO: Many of these includes are unnecessary. Remove them. // @@ -67,7 +65,6 @@ #include "llrect.h" #include "llsky.h" #include "llstring.h" -#include "lltrans.h" #include "llui.h" #include "lluuid.h" #include "llview.h" @@ -137,8 +134,8 @@ #include "llpreviewtexture.h" #include "llprogressview.h" #include "llresmgr.h" -#include "llrootview.h" #include "llselectmgr.h" +#include "llrootview.h" #include "llrendersphere.h" #include "llstartup.h" #include "llstatusbar.h" @@ -164,6 +161,7 @@ #include "lltoolplacer.h" #include "lltoolselectland.h" #include "lltoolview.h" +#include "lltrans.h" #include "lluictrlfactory.h" #include "llurldispatcher.h" // SLURL from other app instance #include "llvieweraudio.h" @@ -220,7 +218,6 @@ extern BOOL gDebugClicks; extern BOOL gDisplaySwapBuffers; extern BOOL gDepthDirty; extern BOOL gResizeScreenTexture; -extern S32 gJamesInt; LLViewerWindow *gViewerWindow = NULL; LLVelocityBar *gVelocityBar = NULL; @@ -290,14 +287,14 @@ private: line_list_t mLineList; LLColor4 mTextColor; -public: - LLDebugText(LLViewerWindow* window) : mWindow(window) {} - void addText(S32 x, S32 y, const std::string &text) { mLineList.push_back(Line(text, x, y)); } +public: + LLDebugText(LLViewerWindow* window) : mWindow(window) {} + void update() { std::string wind_vel_text; @@ -306,6 +303,14 @@ public: std::string rwind_vector_text; std::string audio_text; + static const std::string beacon_particle = LLTrans::getString("BeaconParticle"); + static const std::string beacon_physical = LLTrans::getString("BeaconPhysical"); + static const std::string beacon_scripted = LLTrans::getString("BeaconScripted"); + static const std::string beacon_scripted_touch = LLTrans::getString("BeaconScriptedTouch"); + static const std::string beacon_sound = LLTrans::getString("BeaconSound"); + static const std::string beacon_media = LLTrans::getString("BeaconMedia"); + static const std::string particle_hiding = LLTrans::getString("ParticleHiding"); + // Draw the statistics in a light gray // and in a thin font mTextColor = LLColor4( 0.86f, 0.86f, 0.86f, 1.f ); @@ -328,14 +333,12 @@ public: addText(xpos, ypos, llformat("Texture: %d:%02d:%02d", hours,mins,secs)); ypos += y_inc2; } - { F32 time = gFrameTimeSeconds; S32 hours = (S32)(time / (60*60)); S32 mins = (S32)((time - hours*(60*60)) / 60); S32 secs = (S32)((time - hours*(60*60) - mins*60)); addText(xpos, ypos, llformat("Time: %d:%02d:%02d", hours,mins,secs)); ypos += y_inc; } - } #if LL_WINDOWS static const LLCachedControl debug_show_memory("DebugShowMemory"); @@ -345,6 +348,7 @@ public: ypos += y_inc; } #endif + if (gDisplayCameraPos) { std::string camera_view_text; @@ -539,7 +543,7 @@ public: ypos += y_inc; addText(xpos, ypos, llformat("%d Render Calls", gPipeline.mBatchCount)); - ypos += y_inc; + ypos += y_inc; addText(xpos, ypos, llformat("%d Matrix Ops", gPipeline.mMatrixOpCount)); ypos += y_inc; @@ -559,7 +563,7 @@ public: gPipeline.mMaxBatchSize = 0; gPipeline.mBatchCount = 0; } - ypos += y_inc; + ypos += y_inc; addText(xpos,ypos, llformat("%d/%d Nodes visible", gPipeline.mNumVisibleNodes, LLSpatialGroup::sNodeCount)); @@ -650,7 +654,7 @@ public: } LLVertexBuffer::sBindCount = LLImageGL::sBindCount = - LLVertexBuffer::sSetCount = LLImageGL::sUniqueCount = + LLVertexBuffer::sSetCount = LLImageGL::sUniqueCount = gPipeline.mNumVisibleNodes = LLPipeline::sVisibleLightCount = 0; } static const LLCachedControl debug_show_render_matrices("DebugShowRenderMatrices"); @@ -707,39 +711,44 @@ public: addText(xpos, ypos, llformat("Total Allocated(KB): %d", LLPrivateMemoryPoolManager::getInstance()->mTotalAllocatedSize / 1024)); ypos += y_inc; } + // only display these messages if we are actually rendering beacons at this moment static const LLCachedControl beacons_visible("BeaconsVisible",false); if (LLPipeline::getRenderBeacons(NULL) && beacons_visible) { + if (LLPipeline::toggleRenderTypeControlNegated((void*)LLPipeline::RENDER_TYPE_PARTICLES)) + { + addText(xpos, ypos, particle_hiding); + ypos += y_inc; + } + if (LLPipeline::getRenderParticleBeacons(NULL)) { addText(xpos, ypos, "Viewing particle beacons (blue)"); ypos += y_inc; } - if (LLPipeline::toggleRenderTypeControlNegated((void*)LLPipeline::RENDER_TYPE_PARTICLES)) + + if (LLPipeline::getRenderSoundBeacons(NULL)) { - addText(xpos, ypos, "Hiding particles"); - ypos += y_inc; - } - if (LLPipeline::getRenderPhysicalBeacons(NULL)) - { - addText(xpos, ypos, "Viewing physical object beacons (green)"); + addText(xpos, ypos, "Viewing sound beacons (blue/cyan/green/yellow/red)"); ypos += y_inc; } + if (LLPipeline::getRenderScriptedBeacons(NULL)) { - addText(xpos, ypos, "Viewing scripted object beacons (red)"); + addText(xpos, ypos, beacon_scripted); ypos += y_inc; } else if (LLPipeline::getRenderScriptedTouchBeacons(NULL)) { - addText(xpos, ypos, "Viewing scripted object with touch function beacons (red)"); + addText(xpos, ypos, beacon_scripted_touch); ypos += y_inc; } - if (LLPipeline::getRenderSoundBeacons(NULL)) + + if (LLPipeline::getRenderPhysicalBeacons(NULL)) { - addText(xpos, ypos, "Viewing sound beacons (blue/cyan/green/yellow/red)"); + addText(xpos, ypos, "Viewing physical object beacons (green)"); ypos += y_inc; } } @@ -796,9 +805,13 @@ BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK y = llround((F32)y / mDisplayScale.mV[VY]); if (down) + { buttonstatestr = "down"; + } else + { buttonstatestr = "up"; + } switch (clicktype) { @@ -833,7 +846,7 @@ BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK llinfos << "ViewerWindow " << buttonname << " mouse " << buttonstatestr << " at " << x << "," << y << llendl; } - // Make sure we get a coresponding mouseup event, even if the mouse leaves the window + // Make sure we get a corresponding mouseup event, even if the mouse leaves the window if (down) { mWindow->captureMouse(); @@ -887,15 +900,15 @@ BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK if (down) { - if (top_ctrl->pointInView(local_x, local_y)) - { - return top_ctrl->handleAnyMouseClick(local_x, local_y, mask, clicktype, down) ; - } - else - { - gFocusMgr.setTopCtrl(NULL); - } - } + if (top_ctrl->pointInView(local_x, local_y)) + { + return top_ctrl->handleAnyMouseClick(local_x, local_y, mask, clicktype, down) ; + } + else + { + gFocusMgr.setTopCtrl(NULL); + } + } else handled = top_ctrl->pointInView(local_x, local_y) && top_ctrl->handleMouseUp(local_x, local_y, mask); } @@ -916,38 +929,38 @@ BOOL LLViewerWindow::handleAnyMouseClick(LLWindow *window, LLCoordGL pos, MASK if (down) { - // Do not allow tool manager to handle mouseclicks if we have disconnected - if (gDisconnected) - { - return FALSE; - } - - if(LLToolMgr::getInstance()->getCurrentTool()->handleAnyMouseClick( x, y, mask, clicktype, down ) ) - { - // This is necessary to force clicks in the world to cause edit - // boxes that might have keyboard focus to relinquish it, and hence - // cause a commit to update their value. JC - gFocusMgr.setKeyboardFocus(NULL); - return TRUE; - } + // Do not allow tool manager to handle mouseclicks if we have disconnected + if (gDisconnected) + { + return FALSE; + } + + if (LLToolMgr::getInstance()->getCurrentTool()->handleAnyMouseClick( x, y, mask, clicktype, down ) ) + { + // This is necessary to force clicks in the world to cause edit + // boxes that might have keyboard focus to relinquish it, and hence + // cause a commit to update their value. JC + gFocusMgr.setKeyboardFocus(NULL); + return TRUE; + } } else { - mWindow->releaseMouse(); + mWindow->releaseMouse(); - LLTool *tool = LLToolMgr::getInstance()->getCurrentTool(); + LLTool *tool = LLToolMgr::getInstance()->getCurrentTool(); if( !handled ) - { + { handled = mRootView->handleAnyMouseClick(x, y, mask, clicktype, down); - } + } if( !handled ) - { + { if (tool) - { + { handled = tool->handleAnyMouseClick(x, y, mask, clicktype, down); - } - } + } + } } return (!down); @@ -964,7 +977,7 @@ BOOL LLViewerWindow::handleDoubleClick(LLWindow *window, LLCoordGL pos, MASK ma // try handling as a double-click first, then a single-click if that // wasn't handled. BOOL down = TRUE; - return handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_DOUBLELEFT,down) || + return handleAnyMouseClick(window, pos, mask, LLMouseHandler::CLICK_DOUBLELEFT, down) || handleMouseDown(window, pos, mask); } @@ -978,16 +991,17 @@ BOOL LLViewerWindow::handleMouseUp(LLWindow *window, LLCoordGL pos, MASK mask) BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK mask) { //From Phoenix - gSavedSettings.setBOOL("zmm_rightmousedown",1); - if(gAgentCamera.cameraMouselook()&&gSavedSettings.getBOOL("zmm_isinml")==0) + // Singu TODO: Change these from debug settings to externs? + gSavedSettings.setBOOL("zmm_rightmousedown", true); + if (gAgentCamera.cameraMouselook() && !gSavedSettings.getBOOL("zmm_isinml")) { llinfos << "zmmisinml set to true" << llendl; - gSavedSettings.setBOOL("zmm_isinml",1); - F32 deffov=LLViewerCamera::getInstance()->getDefaultFOV(); - gSavedSettings.setF32("zmm_deffov",deffov); - LLViewerCamera::getInstance()->setDefaultFOV(gSavedSettings.getF32("zmm_deffov")/gSavedSettings.getF32("zmm_mlfov")); + gSavedSettings.setBOOL("zmm_isinml", true); + F32 deffov = LLViewerCamera::getInstance()->getDefaultFOV(); + gSavedSettings.setF32("zmm_deffov", deffov); + LLViewerCamera::getInstance()->setDefaultFOV(deffov/gSavedSettings.getF32("zmm_mlfov")); } - + S32 x = pos.mX; S32 y = pos.mY; x = llround((F32)x / mDisplayScale.mV[VX]); @@ -1000,7 +1014,6 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK if (handle) return handle; - // *HACK: this should be rolled into the composite tool logic, not // hardcoded at the top level. if (CAMERA_MODE_CUSTOMIZE_AVATAR != gAgentCamera.getCameraMode() && LLToolMgr::getInstance()->getCurrentTool() != LLToolPie::getInstance()) @@ -1017,14 +1030,14 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK BOOL LLViewerWindow::handleRightMouseUp(LLWindow *window, LLCoordGL pos, MASK mask) { - gSavedSettings.setBOOL("zmm_rightmousedown",0); + gSavedSettings.setBOOL("zmm_rightmousedown", false); if(gSavedSettings.getBOOL("zmm_isinml")==1) { llinfos << "zmmisinml set to false" << llendl; gSavedSettings.setBOOL("zmm_isinml",0); LLViewerCamera::getInstance()->setDefaultFOV(gSavedSettings.getF32("zmm_deffov")); - } - + } + BOOL down = FALSE; return handleAnyMouseClick(window,pos,mask,LLMouseHandler::CLICK_RIGHT,down); } @@ -1069,12 +1082,11 @@ void LLViewerWindow::handleMouseMove(LLWindow *window, LLCoordGL pos, MASK mask { gMouseIdleTimer.reset(); } + saveLastMouse(mouse_point); BOOL mouse_actually_moved = !gFocusMgr.getMouseCapture() && // mouse is not currenty captured ((prev_saved_mouse_point.mX != mCurrentMousePoint.mX) || (prev_saved_mouse_point.mY != mCurrentMousePoint.mY)); // mouse moved from last recorded position - - mWindow->showCursorFromMouseMove(); if (gAwayTimer.getElapsedTimeF32() > MIN_AFK_TIME @@ -1227,7 +1239,7 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated) { if (activated) { - mActive = TRUE; + mActive = true; send_agent_resume(); gAgent.clearAFK(); if (mWindow->getFullscreen() && !mIgnoreActivate) @@ -1257,7 +1269,8 @@ BOOL LLViewerWindow::handleActivate(LLWindow *window, BOOL activated) } else { - mActive = FALSE; + mActive = false; + if (gSavedSettings.getBOOL("AllowIdleAFK")) { gAgent.setAFK(); @@ -1443,9 +1456,8 @@ LLViewerWindow::LLViewerWindow( S32 x, S32 y, S32 width, S32 height, BOOL fullscreen, BOOL ignore_pixel_depth) - : - mWindow(NULL), - mActive(TRUE), +: mWindow(NULL), + mActive(true), mWantFullscreen(fullscreen), mShowFullscreenProgress(FALSE), mWindowRectRaw(0, height, width, 0), @@ -1511,7 +1523,7 @@ LLViewerWindow::LLViewerWindow( LL_WARNS("Window") << "Unable to create window, be sure screen is set at 32-bit color in Control Panels->Display->Settings" << LL_ENDL; #endif - LLAppViewer::instance()->fastQuit(1); + LLAppViewer::instance()->fastQuit(1); } if (!LLAppViewer::instance()->restoreErrorTrap()) @@ -1520,15 +1532,15 @@ LLViewerWindow::LLViewerWindow( } LLCoordScreen scr; - mWindow->getSize(&scr); + mWindow->getSize(&scr); - if(fullscreen && ( scr.mX!=width || scr.mY!=height)) - { + if(fullscreen && ( scr.mX!=width || scr.mY!=height)) + { llwarns << "Fullscreen has forced us in to a different resolution now using "<setFollows(FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_BOTTOM); - mRootView->addChild(gConsole); + getRootView()->addChild(gConsole); // Debug view over the console gDebugView = new LLDebugView("gDebugView", full_window); @@ -1854,7 +1866,7 @@ void LLViewerWindow::adjustRectanglesForFirstUse(const LLRect& window) adjust_rect_top_left("FloaterGestureRect2", window); adjust_rect_top_right("FloaterMiniMapRect", window); - + adjust_rect_top_right("FloaterLagMeter", window); adjust_rect_top_left("FloaterBuildOptionsRect", window); @@ -1887,7 +1899,7 @@ void LLViewerWindow::adjustRectanglesForFirstUse(const LLRect& window) r.getHeight()); gSavedSettings.setRect("FloaterInventoryRect", r); } - + // adjust_rect_top_left("FloaterHUDRect2", window); // slightly off center to be left of the avatar. @@ -1930,7 +1942,7 @@ void LLViewerWindow::initWorldUI() gHoverView = new LLHoverView(std::string("gHoverView"), full_window); gHoverView->setVisible(TRUE); mRootView->addChild(gHoverView); - + gIMMgr = LLIMMgr::getInstance(); // @@ -1943,7 +1955,7 @@ void LLViewerWindow::initWorldUI() gFloaterTools = new LLFloaterTools(); gFloaterTools->setVisible(FALSE); } - + if ( gHUDView == NULL ) { LLRect hud_rect = full_window; @@ -1959,7 +1971,7 @@ void LLViewerWindow::initWorldUI() LLPanel* panel_ssf_container = getRootView()->getChild("state_management_buttons_container"); panel_ssf_container->setVisible(TRUE); - + LLMenuOptionPathfindingRebakeNavmesh::getInstance()->initialize(); } @@ -2031,10 +2043,12 @@ void LLViewerWindow::shutdownViews() { gMorphView->setVisible(FALSE); } + llinfos << "Global views cleaned." << llendl ; // DEV-40930: Clear sModalStack. Otherwise, any LLModalDialog left open // will crump with LL_ERRS. LLModalDialog::shutdownModals(); + llinfos << "LLModalDialog shut down." << llendl; // Delete all child views. delete mRootView; @@ -2096,8 +2110,6 @@ void LLViewerWindow::shutdownGL() llinfos << "Cleaning up select manager" << llendl; LLSelectMgr::getInstance()->cleanup(); - - llinfos << "Stopping GL during shutdown" << llendl; if (!gNoRender) { @@ -2257,10 +2269,10 @@ void LLViewerWindow::reshape(S32 width, S32 height) // Hide normal UI when a logon fails void LLViewerWindow::setNormalControlsVisible( BOOL visible ) { - if ( gBottomPanel ) + if (gBottomPanel) { - gBottomPanel->setVisible( visible ); - gBottomPanel->setEnabled( visible ); + gBottomPanel->setVisible(visible); + gBottomPanel->setEnabled(visible); } if ( gMenuBarView ) @@ -2272,7 +2284,7 @@ void LLViewerWindow::setNormalControlsVisible( BOOL visible ) setMenuBackgroundColor(gAgent.getGodLevel() > GOD_NOT, LLViewerLogin::getInstance()->isInProductionGrid()); } - + if ( gStatusBar ) { gStatusBar->setVisible( visible ); @@ -2282,35 +2294,35 @@ void LLViewerWindow::setNormalControlsVisible( BOOL visible ) void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid) { - LLSD args; - LLColor4 new_bg_color; + LLSD args; + LLColor4 new_bg_color; - if(god_mode && LLViewerLogin::getInstance()->isInProductionGrid()) - { - new_bg_color = gColors.getColor( "MenuBarGodBgColor" ); - } - else if(god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) - { - new_bg_color = gColors.getColor( "MenuNonProductionGodBgColor" ); - } - else if(!god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) - { - new_bg_color = gColors.getColor( "MenuNonProductionBgColor" ); - } - else - { - new_bg_color = gColors.getColor( "MenuBarBgColor" ); - } + if(god_mode && LLViewerLogin::getInstance()->isInProductionGrid()) + { + new_bg_color = gColors.getColor( "MenuBarGodBgColor" ); + } + else if(god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) + { + new_bg_color = gColors.getColor( "MenuNonProductionGodBgColor" ); + } + else if(!god_mode && !LLViewerLogin::getInstance()->isInProductionGrid()) + { + new_bg_color = gColors.getColor( "MenuNonProductionBgColor" ); + } + else + { + new_bg_color = gColors.getColor( "MenuBarBgColor" ); + } - if(gMenuBarView) - { - gMenuBarView->setBackgroundColor( new_bg_color ); - } + if(gMenuBarView) + { + gMenuBarView->setBackgroundColor( new_bg_color ); + } - if(gStatusBar) - { - gStatusBar->setBackgroundColor( new_bg_color ); - } + if(gStatusBar) + { + gStatusBar->setBackgroundColor( new_bg_color ); + } } void LLViewerWindow::drawDebugText() @@ -2327,6 +2339,7 @@ void LLViewerWindow::drawDebugText() mDebugText->draw(); } gGL.popMatrix(); + gGL.flush(); if (LLGLSLShader::sNoFixedFunction) { @@ -2377,6 +2390,7 @@ void LLViewerWindow::draw() { gUIProgram.bind(); } + gGL.pushMatrix(); { @@ -2422,7 +2436,7 @@ void LLViewerWindow::draw() gGL.matrixMode(LLRender::MM_MODELVIEW); LLUI::pushMatrix(); - LLUI::translate( (F32) screen_x, (F32) screen_y, 0.f); + LLUI::translate( (F32) screen_x, (F32) screen_y); top_ctrl->draw(); LLUI::popMatrix(); } @@ -2496,7 +2510,6 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask) && !gFocusMgr.getKeystrokesOnly()) { // We have keyboard focus, and it's not an accelerator - if (key < 0x80) { // Not a special key, so likely (we hope) to generate a character. Let it fall through to character handler first. @@ -2538,9 +2551,9 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask) // Debugging view for unified notifications: CTRL-SHIFT-5 // *FIXME: Having this special-cased right here (just so this can be invoked from the login screen) sucks. if ((MASK_SHIFT & mask) - && (!(MASK_ALT & mask)) - && (MASK_CONTROL & mask) - && ('5' == key)) + && (!(MASK_ALT & mask)) + && (MASK_CONTROL & mask) + && ('5' == key)) { LLFloaterNotificationConsole::showInstance(); return TRUE; @@ -2584,35 +2597,36 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask) // arrow keys move avatar while chatting hack if (gChatBar && gChatBar->inputEditorHasFocus()) { - if (gChatBar->getCurrentChat().empty() || gSavedSettings.getBOOL("ArrowKeysMoveAvatar")) + // If text field is empty, there's no point in trying to move + // cursor with arrow keys, so allow movement + if (gChatBar->getCurrentChat().empty() + || gSavedSettings.getBOOL("ArrowKeysMoveAvatar")) { - switch(key) + // Singu Note: We do this differently from LL to preserve the Ctrl- behavior in the chatbar + // let Control-Up and Control-Down through for chat line history, + //if (!(key == KEY_UP && mask == MASK_CONTROL) + // && !(key == KEY_DOWN && mask == MASK_CONTROL)) { - case KEY_LEFT: - case KEY_RIGHT: - case KEY_UP: - // let CTRL UP through for chat line history - if( MASK_CONTROL == mask ) + switch(key) { + case KEY_LEFT: + case KEY_RIGHT: + case KEY_UP: + case KEY_DOWN: + if (mask == MASK_CONTROL) + break; + case KEY_PAGE_UP: + case KEY_PAGE_DOWN: + case KEY_HOME: + // when chatbar is empty or ArrowKeysMoveAvatar set, + //pass arrow keys on to avatar... + return FALSE; + default: break; } - case KEY_DOWN: - // let CTRL DOWN through for chat line history - if( MASK_CONTROL == mask ) - { - break; - } - case KEY_PAGE_UP: - case KEY_PAGE_DOWN: - case KEY_HOME: - // when chatbar is empty or ArrowKeysMoveAvatar set, pass arrow keys on to avatar... - return FALSE; - default: - break; } } } - if (keyboard_focus->handleKey(key, mask, FALSE)) { return TRUE; @@ -2674,13 +2688,8 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask) } // give menus a chance to handle keys - if (gMenuBarView && gMenuBarView->handleAcceleratorKey(key, mask)) - { - return TRUE; - } - - // give menus a chance to handle keys - if (gLoginMenuBarView && gLoginMenuBarView->handleAcceleratorKey(key, mask)) + if ((gMenuBarView && gMenuBarView->handleAcceleratorKey(key, mask)) + ||(gLoginMenuBarView && gLoginMenuBarView->handleAcceleratorKey(key, mask))) { return TRUE; } @@ -2944,7 +2953,7 @@ void LLViewerWindow::updateUI() if( !handled ) { - lldebugst(LLERR_USER_INPUT) << "hover not handled by top view or root" << llendl; + lldebugst(LLERR_USER_INPUT) << "hover not handled by top view or root" << llendl; } } @@ -2978,7 +2987,7 @@ void LLViewerWindow::updateUI() } - // Show a new tool tip (or update one that is alrady shown) + // Show a new tool tip (or update one that is already shown) BOOL tool_tip_handled = FALSE; std::string tool_tip_msg; static const LLCachedControl tool_tip_delay("ToolTipDelay",.7f); @@ -2991,8 +3000,8 @@ void LLViewerWindow::updateUI() tooltip_delay = drag_and_drop_tool_tip_delay; } if( handled && - gMouseIdleTimer.getElapsedTimeF32() > tooltip_delay && - !mWindow->isCursorHidden() ) + gMouseIdleTimer.getElapsedTimeF32() > tooltip_delay && + !mWindow->isCursorHidden() ) { LLRect screen_sticky_rect; LLMouseHandler *mh; @@ -3017,7 +3026,7 @@ void LLViewerWindow::updateUI() if (shouldShowToolTipFor(mh)) { tool_tip_handled = mh->handleToolTip(local_x, local_y, tool_tip_msg, &screen_sticky_rect ); - + if( tool_tip_handled && !tool_tip_msg.empty() ) { mToolTipStickyRect = screen_sticky_rect; @@ -3034,8 +3043,8 @@ void LLViewerWindow::updateUI() { mToolTip->setVisible( tooltip_vis ); } - } - + } + static const LLCachedControl freeze_time("FreezeTime",0); if (tool && tool != gToolNull && tool != LLToolCompInspect::getInstance() && tool != LLToolDragAndDrop::getInstance() && !freeze_time) { @@ -3043,8 +3052,8 @@ void LLViewerWindow::updateUI() // With the null, inspect, or drag and drop tool, don't muck // with visibility. - if (gFloaterTools->isMinimized() || - (tool != LLToolPie::getInstance() // not default tool + if (gFloaterTools->isMinimized() + || (tool != LLToolPie::getInstance() // not default tool && tool != LLToolCompGun::getInstance() // not coming out of mouselook && !mSuppressToolbox // not override in third person && LLToolMgr::getInstance()->getCurrentToolset() != gFaceEditToolset // not special mode @@ -3198,8 +3207,6 @@ void LLViewerWindow::updateUI() LLSelectMgr::getInstance()->deselectUnused(); } - - // per frame picking - for tooltips and changing cursor over interactive objects static S32 previous_x = -1; static S32 previous_y = -1; @@ -3223,17 +3230,15 @@ void LLViewerWindow::updateUI() previous_x = x; previous_y = y; - + return; } - /* static */ void LLViewerWindow::hoverPickCallback(const LLPickInfo& pick_info) { gViewerWindow->mHoverPick = pick_info; } - void LLViewerWindow::updateMouseDelta() { @@ -3275,7 +3280,7 @@ void LLViewerWindow::updateMouseDelta() mCurrentMouseDelta.set(dx, dy); mouse_vel.setVec((F32) dx, (F32) dy); } - + mMouseVelocityStat.addValue(mouse_vel.magVec()); } @@ -3543,7 +3548,7 @@ void LLViewerWindow::pickAsync(S32 x, S32 y_from_bot, MASK mask, void (*callback { return; } - + // push back pick info object BOOL in_build_mode = gFloaterTools && gFloaterTools->getVisible(); if (in_build_mode || LLDrawPoolAlpha::sShowDebugAlpha) @@ -3720,7 +3725,6 @@ LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 de found = this_object; } } - else // is a world object { if (this_object->lineSegmentIntersect(mouse_world_start, mouse_world_end, this_face, pick_transparent, @@ -3730,7 +3734,6 @@ LLViewerObject* LLViewerWindow::cursorIntersect(S32 mouse_x, S32 mouse_y, F32 de } } } - else // check ALL objects { found = gPipeline.lineSegmentIntersectInHUD(mouse_hud_start, mouse_hud_end, pick_transparent, @@ -4011,7 +4014,7 @@ void LLViewerWindow::saveImageNumbered(LLPointer image, int in pick_type = FFSAVE_ALL; // ??? // Get a base file location if needed. - if ( ! isSnapshotLocSet()) + if (!isSnapshotLocSet()) { std::string proposed_name( sSnapshotBaseName ); @@ -4162,7 +4165,7 @@ void LLViewerWindow::playSnapshotAnimAndSound() BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL do_rebuild, ESnapshotType type) { return rawSnapshot(raw, preview_width, preview_height, (F32)gViewerWindow->getWindowWidthRaw() / gViewerWindow->getWindowHeightRaw(), show_ui, do_rebuild, type); - + // *TODO below code was broken in deferred pipeline /* if ((!raw) || preview_width < 10 || preview_height < 10) @@ -4194,14 +4197,14 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p S32 render_name = gSavedSettings.getS32("RenderName"); gSavedSettings.setS32("RenderName", 0); LLVOAvatar::updateFreezeCounter(1) ; //pause avatar updating for one frame - + S32 w = preview_width ; S32 h = preview_height ; LLVector2 display_scale = mDisplayScale ; mDisplayScale.setVec((F32)w / mWindowRectRaw.getWidth(), (F32)h / mWindowRectRaw.getHeight()) ; LLRect window_rect = mWindowRect; mWindowRectRaw.set(0, h, w, 0); - + gDisplaySwapBuffers = FALSE; gDepthDirty = TRUE; glClearColor(0.f, 0.f, 0.f, 0.f); @@ -4225,7 +4228,7 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p if(SNAPSHOT_TYPE_DEPTH == type) { glpixel_length = 4 ; - glformat = GL_DEPTH_COMPONENT ; + glformat = GL_DEPTH_COMPONENT ; gltype = GL_FLOAT ; } else @@ -4250,9 +4253,9 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p for(S32 x = 0 ; x < w ; x++) { S32 i = (w * y + x) << 2 ; - + F32 depth_float_i = *(F32*)(raw->getData() + i); - + F32 linear_depth_float = 1.f / (depth_conversion_factor_1 - (depth_float_i * depth_conversion_factor_2)); U8 depth_byte = F32_to_U8(linear_depth_float, camerap->getNear(), camerap->getFar()); *(raw->getData() + i + 0) = depth_byte; @@ -4260,13 +4263,13 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p *(raw->getData() + i + 2) = depth_byte; *(raw->getData() + i + 3) = 255; } - } + } } LLFontGL::setFontDisplay(TRUE) ; LLHUDText::setDisplayText(TRUE) ; mDisplayScale.setVec(display_scale) ; - mWindowRect = window_rect; + mWindowRect = window_rect; setup3DRender(); setupViewport(); gDisplaySwapBuffers = FALSE; @@ -4294,9 +4297,9 @@ BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 p // objects on them. gPipeline.resetDrawOrders(); } - - gSavedSettings.setS32("RenderName", render_name); - + + gSavedSettings.setS32("RenderName", render_name); + return TRUE;*/ } @@ -4375,7 +4378,7 @@ bool LLViewerWindow::rawRawSnapshot(LLImageRaw *raw, LLPipeline::toggleRenderDebugFeature((void*)LLPipeline::RENDER_DEBUG_FEATURE_UI); } } - + S32 buffer_x_offset = 0; S32 buffer_y_offset = 0; F32 scale_factor = 1.0f; @@ -4415,7 +4418,6 @@ bool LLViewerWindow::rawRawSnapshot(LLImageRaw *raw, } } - // ratio is the ratio snapshot/image', where image' is a rectangle with aspect snapshot_aspect that precisely contains image. // Thus image_width' / image_height' == aspect ==> snapshot_width / image_width' == snapshot_height / image_height'. // Since image' precisely contains image, one of them is equal (ie, image_height' = image_height) and the other is larger @@ -4455,7 +4457,6 @@ bool LLViewerWindow::rawRawSnapshot(LLImageRaw *raw, // Done. break; } - // Center the buffer. buffer_x_offset = llfloor(((window_width - unscaled_image_buffer_x) * scale_factor) / 2.f); @@ -4620,7 +4621,7 @@ bool LLViewerWindow::rawRawSnapshot(LLImageRaw *raw, // objects on them. gPipeline.resetDrawOrders(); } - + if (reset_deferred) { mWindowRectRaw = window_rect; @@ -4720,7 +4721,7 @@ void LLViewerWindow::drawMouselookInstructions() gGL.color4f( 0.9f, 0.9f, 0.9f, alpha ); gl_rect_2d( instructions_rect ); } - + font->renderUTF8( instructions, 0, instructions_rect.mLeft + INSTRUCTIONS_PAD, @@ -4797,7 +4798,6 @@ void LLViewerWindow::setup3DViewport(S32 x_offset, S32 y_offset) } - void LLViewerWindow::setShowProgress(const BOOL show) { if (mProgressView) @@ -4806,15 +4806,12 @@ void LLViewerWindow::setShowProgress(const BOOL show) } } - - - void LLViewerWindow::moveProgressViewToFront() { - if( mProgressView && mRootView ) + if (mProgressView && mRootView) { - mRootView->removeChild( mProgressView ); - mRootView->addChild( mProgressView ); + mRootView->removeChild(mProgressView); + mRootView->addChild(mProgressView); } } @@ -4986,6 +4983,7 @@ void LLViewerWindow::initFonts(F32 zoom_factor) return; LLFontGL::destroyAllGL(); // Initialize with possibly different zoom factor + LLFontGL::initClass( gSavedSettings.getF32("FontScreenDPI"), mDisplayScale.mV[VX] * zoom_factor, mDisplayScale.mV[VY] * zoom_factor, @@ -5006,7 +5004,7 @@ void LLViewerWindow::toggleFullscreen(BOOL show_progress) void LLViewerWindow::getTargetWindow(BOOL& fullscreen, S32& width, S32& height) const { fullscreen = mWantFullscreen; - + if (mWindow && mWindow->getFullscreen() == mWantFullscreen) { @@ -5055,7 +5053,7 @@ BOOL LLViewerWindow::checkSettings() { getWindow()->setNativeAspectRatio(gSavedSettings.getF32("FullScreenAspectRatio")); } - + reshape(getWindowWidthRaw(), getWindowHeightRaw()); // force aspect ratio @@ -5066,7 +5064,7 @@ BOOL LLViewerWindow::checkSettings() mResDirty = false; } - + BOOL is_fullscreen = mWindow->getFullscreen(); if(mWantFullscreen) { @@ -5075,14 +5073,14 @@ BOOL LLViewerWindow::checkSettings() gSavedSettings.getS32("FullScreenHeight")); getWindow()->getSize(&screen_size); if(!is_fullscreen || - screen_size.mX != desired_screen_size.mX + screen_size.mX != desired_screen_size.mX || screen_size.mY != desired_screen_size.mY) { if (!LLStartUp::canGoFullscreen()) { return FALSE; } - + LLGLState::checkStates(); LLGLState::checkTextureChannels(); changeDisplaySettings(TRUE, @@ -5193,7 +5191,7 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, new_pos.mX = gSavedSettings.getS32("WindowX"); new_pos.mY = gSavedSettings.getS32("WindowY"); } - + mWindow->setFSAASamples(fsaa); result_first_try = mWindow->switchContext(fullscreen, size, disable_vsync, &new_pos); @@ -5233,6 +5231,7 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, } BOOL success = result_first_try || result_second_try; + if (success) { #if LL_WINDOWS @@ -5274,7 +5273,7 @@ F32 LLViewerWindow::getDisplayAspectRatio() const { if (gSavedSettings.getBOOL("FullScreenAutoDetectAspectRatio")) { - return mWindow->getNativeAspectRatio(); + return mWindow->getNativeAspectRatio(); } else { @@ -5313,7 +5312,7 @@ void LLViewerWindow::calcDisplayScale() display_scale.mV[0] = llround(display_scale.mV[0], 2.0f/(F32) mWindowRectRaw.getWidth()); display_scale.mV[1] = llround(display_scale.mV[1], 2.0f/(F32) mWindowRectRaw.getHeight()); } - + if (display_scale != mDisplayScale) { llinfos << "Setting display scale to " << display_scale << llendl; @@ -5327,7 +5326,8 @@ void LLViewerWindow::calcDisplayScale() S32 LLViewerWindow::getChatConsoleBottomPad() { S32 offset = 0; - if( gToolBar && gToolBar->getVisible() ) + + if(gToolBar && gToolBar->getVisible()) offset += TOOL_BAR_HEIGHT; return offset; @@ -5347,8 +5347,9 @@ LLRect LLViewerWindow::getChatConsoleRect() console_rect.mLeft += CONSOLE_PADDING_LEFT; - static const LLCachedControl chat_full_width("ChatFullWidth",true); - if (chat_full_width) + static const LLCachedControl CHAT_FULL_WIDTH("ChatFullWidth",true); + + if (CHAT_FULL_WIDTH) { console_rect.mRight -= CONSOLE_PADDING_RIGHT; } @@ -5400,7 +5401,7 @@ LLBottomPanel::LLBottomPanel(const LLRect &rect) : mFactoryMap["toolbar"] = LLCallbackMap(createToolBar, NULL); mFactoryMap["overlay"] = LLCallbackMap(createOverlayBar, NULL); LLUICtrlFactory::getInstance()->buildPanel(this, "panel_bars.xml", &getFactoryMap()); - + setOrigin(rect.mLeft, rect.mBottom); reshape(rect.getWidth(), rect.getHeight()); } @@ -5435,6 +5436,7 @@ void* LLBottomPanel::createToolBar(void* data) return gToolBar; } +//////////////////////////////////////////////////////////////////////////// // // LLPickInfo // @@ -5585,7 +5587,7 @@ void LLPickInfo::getSurfaceInfo() mObjectFace = -1; mUVCoords = LLVector2(-1, -1); mSTCoords = LLVector2(-1, -1); - mXYCoords = LLCoordScreen(-1, -1); + mXYCoords = LLCoordScreen(-1, -1); mIntersection = LLVector3(0,0,0); mNormal = LLVector3(0,0,0); mBinormal = LLVector3(0,0,0); diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 5ed1a2aa1..4b9158aa2 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -931,8 +931,6 @@ F32 LLVOAvatar::sLODFactor = 1.f; F32 LLVOAvatar::sPhysicsLODFactor = 1.f; BOOL LLVOAvatar::sUseImpostors = FALSE; BOOL LLVOAvatar::sJointDebug = FALSE; - - F32 LLVOAvatar::sUnbakedTime = 0.f; F32 LLVOAvatar::sUnbakedUpdateTime = 0.f; F32 LLVOAvatar::sGreyTime = 0.f; @@ -2480,13 +2478,6 @@ void LLVOAvatar::idleUpdateMisc(bool detailed_update) LLJoint::sNumUpdates = 0; LLJoint::sNumTouches = 0; - /*// *NOTE: this is necessary for the floating name text above your head. - // NOTE NOTE: This doesn't seem to be needed any more? - if (mDrawable && mDrawable.notNull()) - { - gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_SHADOW, TRUE); - }*/ - BOOL visible = isVisible() || mNeedsAnimUpdate; // update attachments positions @@ -2929,7 +2920,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) } return; } - + if (!mNameText) { mNameText = static_cast( LLHUDObject::addHUDObject( @@ -4936,31 +4927,6 @@ void LLVOAvatar::updateTextures() } } - /* - // JAMESDEBUG - if (isSelf()) - { - S32 null_count = 0; - S32 default_count = 0; - for (U32 i = 0; i < getNumTEs(); i++) - { - const LLTextureEntry* te = getTE(i); - if (te) - { - if (te->getID() == LLUUID::null) - { - null_count++; - } - else if (te->getID() == IMG_DEFAULT_AVATAR) - { - default_count++; - } - } - } - llinfos << "JAMESDEBUG my avatar TE null " << null_count << " default " << default_count << llendl; - } - */ - mMaxPixelArea = 0.f; mMinPixelArea = 99999999.f; mHasGrey = FALSE; // debug @@ -5237,10 +5203,7 @@ const LLUUID& LLVOAvatar::getStepSound() const //----------------------------------------------------------------------------- void LLVOAvatar::processAnimationStateChanges() { - if ((gNoRender)||(gAgent.isTPosed())) //isTPosed is meant to stop animation updates while force-TPosed. - { - return; - } + if (gNoRender) return; if ( isAnyAnimationSignaled(AGENT_WALK_ANIMS, NUM_AGENT_WALK_ANIMS) ) { @@ -6188,32 +6151,6 @@ const LLViewerJointAttachment *LLVOAvatar::attachObject(LLViewerObject *viewer_o { LLViewerJointAttachment* attachment = getTargetAttachmentPoint(viewer_object); - // testzone attachpt - if(!attachment) - { - llwarns << "Failed to find attachment." << llendl; - S32 attachmentID = ATTACHMENT_ID_FROM_STATE(viewer_object->getState()); - LLUUID item_id; - LLNameValue* item_id_nv = viewer_object->getNVPair("AttachItemID"); - if( item_id_nv ) - { - const char* s = item_id_nv->getString(); - if(s) - item_id.set(s); - } - if(!item_id.isNull()) - { - mUnsupportedAttachmentPoints[attachmentID] = std::pair(item_id,viewer_object->getID()); - if (viewer_object->isSelected()) - { - LLSelectMgr::getInstance()->updateSelectionCenter(); - LLSelectMgr::getInstance()->updatePointAt(); - } - } - else - llwarns << "No item ID" << llendl; - } - // if (!attachment || !attachment->addObject(viewer_object)) { return 0; @@ -6390,57 +6327,6 @@ BOOL LLVOAvatar::detachObject(LLViewerObject *viewer_object) mPendingAttachment.erase(iter); return TRUE; } - - - // testzone attachpt - LLUUID item_id; - LLNameValue* item_id_nv = viewer_object->getNVPair("AttachItemID"); - if( item_id_nv ) - { - const char* s = item_id_nv->getString(); - if(s) - item_id.set(s); - } - if(!item_id.isNull()) - { - std::map >::iterator iter = mUnsupportedAttachmentPoints.begin(); - std::map >::iterator end = mUnsupportedAttachmentPoints.end(); - for( ; iter != end; ++iter) - { - if((*iter).second.first == item_id) - { - mUnsupportedAttachmentPoints.erase((*iter).first); - if (isSelf()) - { - // the simulator should automatically handle - // permission revocation - - stopMotionFromSource(viewer_object->getID()); - LLFollowCamMgr::setCameraActive(viewer_object->getID(), FALSE); - - LLViewerObject::const_child_list_t& child_list = viewer_object->getChildren(); - for (LLViewerObject::child_list_t::const_iterator iter = child_list.begin(); - iter != child_list.end(); iter++) - { - LLViewerObject* child_objectp = *iter; - // the simulator should automatically handle - // permissions revocation - - stopMotionFromSource(child_objectp->getID()); - LLFollowCamMgr::setCameraActive(child_objectp->getID(), FALSE); - } - // Then make sure the inventory is in sync with the avatar. - gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id); - gInventory.notifyObservers(); - } - return TRUE; - } - } - llwarns << "Not found" << llendl; - } - else - llwarns << "No item ID" << llendl; - // return FALSE; } @@ -6684,19 +6570,6 @@ BOOL LLVOAvatar::isWearingAttachment( const LLUUID& inv_item_id ) return FALSE; } -// testzone attachpt -BOOL LLVOAvatar::isWearingUnsupportedAttachment( const LLUUID& inv_item_id ) -{ - std::map >::iterator end = mUnsupportedAttachmentPoints.end(); - for(std::map >::iterator iter = mUnsupportedAttachmentPoints.begin(); iter != end; ++iter) - { - if((*iter).second.first == inv_item_id) - { - return TRUE; - } - } - return FALSE; -} //----------------------------------------------------------------------------- // getWornAttachment() //----------------------------------------------------------------------------- @@ -6733,6 +6606,7 @@ const std::string LLVOAvatar::getAttachedPointName(const LLUUID& inv_item_id) return LLStringUtil::null; } +// virtual void LLVOAvatar::invalidateComposite( LLTexLayerSet* layerset, BOOL upload_result ) { } diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h index 10b025197..67c554cb7 100644 --- a/indra/newview/llvoavatar.h +++ b/indra/newview/llvoavatar.h @@ -336,7 +336,6 @@ public: S32 mLastRezzedStatus; - void startPhase(const std::string& phase_name); void stopPhase(const std::string& phase_name, bool err_check = true); void clearPhases(); @@ -371,6 +370,7 @@ protected: /** State ** ** *******************************************************************************/ + /******************************************************************************** ** ** ** SKELETON @@ -767,17 +767,10 @@ protected: //-------------------------------------------------------------------- public: BOOL isWearingAttachment( const LLUUID& inv_item_id ); - // testzone attachpt - BOOL isWearingUnsupportedAttachment( const LLUUID& inv_item_id ); - // LLViewerObject* getWornAttachment( const LLUUID& inv_item_id ); const std::string getAttachedPointName(const LLUUID& inv_item_id); - // - std::map > mUnsupportedAttachmentPoints; - // - /** Wearables ** ** *******************************************************************************/ diff --git a/indra/newview/skins/default/xui/en-us/strings.xml b/indra/newview/skins/default/xui/en-us/strings.xml index 84d4a47e1..22318c962 100644 --- a/indra/newview/skins/default/xui/en-us/strings.xml +++ b/indra/newview/skins/default/xui/en-us/strings.xml @@ -69,6 +69,7 @@ Shutting down... You have been disconnected from the region you were in. You were sent to an invalid region. + Testing viewer disconnect Person @@ -3101,7 +3102,6 @@ Drag folders to this area and click "Send to Marketplace" to list them for sale Right Pec Neck Root - unsupported point Invalid Attachment Point @@ -3266,6 +3266,7 @@ Drag folders to this area and click "Send to Marketplace" to list them for sale Acquired Items Cancel Uploading [NAME] costs [CURRENCY] [AMOUNT] + Buying this costs Unknown file extension .%s Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh @@ -3955,6 +3956,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. (Unnamed) Inventory item offered to + Start point set + End point set + Distance: [DIST] You are bestowed with powers beyond mortal comprehension. Use your newfound abilities wisely. Unlocked: @@ -4084,6 +4088,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. Giving [CURRENCY] This costs [CURRENCY] + This object costs Everyone Officers @@ -4130,6 +4135,15 @@ Try enclosing path to the editor with double quotes. Left Right + + Viewing particle beacons (blue) + Viewing physical object beacons (green) + Viewing scripted object beacons (red) + Viewing scripted object with touch function beacons (red) + Viewing sound beacons (yellow) + Viewing media beacons (white) + Hiding Particles + http://wiki.secondlife.com/wiki/Pathfinding_Tools_in_the_Second_Life_Viewer None diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml index 9e981b4d0..8f554753d 100644 --- a/indra/newview/skins/default/xui/es/strings.xml +++ b/indra/newview/skins/default/xui/es/strings.xml @@ -2967,7 +2967,6 @@ Arrastra carpetas a esta zona y pulsa "Enviar al Mercado" para listarlos y poner Pectoral Derecho Cuello Base - Punto no soportado Punto de anexión inválido From 16babd38e0fead3acfaabfc905d5d57a243ecd93 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Sun, 24 Mar 2013 12:44:29 -0400 Subject: [PATCH 002/180] Phantom Avatar no longer works, not on SL, not on OpenSim. Bye Phantom~ --- indra/newview/llagent.cpp | 20 ------------------- indra/newview/llagent.h | 33 ------------------------------- indra/newview/llappviewer.cpp | 5 +---- indra/newview/llviewermenu.cpp | 23 ++------------------- indra/newview/llviewermessage.cpp | 2 -- 5 files changed, 3 insertions(+), 80 deletions(-) diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 08ef9756b..5ee95da8f 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -229,8 +229,6 @@ private: // Statics // -BOOL LLAgent::exlPhantom = 0; - const F32 LLAgent::TYPING_TIMEOUT_SECS = 5.f; std::map LLAgent::sTeleportErrorMessages; @@ -651,17 +649,6 @@ BOOL LLAgent::getFlying() const return mControlFlags & AGENT_CONTROL_FLY; } -// Better Set Phantom options ~Charbl -void LLAgent::setPhantom(BOOL phantom) -{ - exlPhantom = phantom; -} - -BOOL LLAgent::getPhantom() -{ - return exlPhantom; -} - //----------------------------------------------------------------------------- // setFlying() //----------------------------------------------------------------------------- @@ -757,13 +744,6 @@ void LLAgent::standUp() // [/RLVa:KB] } -void LLAgent::togglePhantom() -{ - BOOL phan = !(exlPhantom); - - setPhantom( phan ); -} - void LLAgent::handleServerBakeRegionTransition(const LLUUID& region_id) { llinfos << "called" << llendl; diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 91b0bcb4b..d49fed1cf 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -899,39 +899,6 @@ public: ** ** *******************************************************************************/ -/******************************************************************************** - ** ** - ** Phantom mode! - **/ - -public: - static BOOL getPhantom(); - static void setPhantom(BOOL phantom); - static void togglePhantom(); -private: - static BOOL exlPhantom; -/** PHANTOM - ** ** - *******************************************************************************/ - -/******************************************************************************** - ** ** - ** Depreciated stuff. Move when ready. - **/ -public: - //What's this t-posed stuff from? - static BOOL isTPosed() { return mForceTPose; } - static void setTPosed(BOOL TPose) { mForceTPose = TPose; } - static void toggleTPosed(); - -private: - static BOOL mForceTPose; - - -/** DEPRECIATED - ** ** - *******************************************************************************/ - }; extern LLAgent gAgent; diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 1f5977a7f..ed2394392 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -3913,10 +3913,7 @@ void LLAppViewer::idle() LLFastTimer t(FTM_AGENT_UPDATE); // Send avatar and camera info last_control_flags = gAgent.getControlFlags(); - if(!gAgent.getPhantom()) - { - send_agent_update(TRUE); - } + send_agent_update(TRUE); agent_update_timer.reset(); } } diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index e17ec68cd..b6d71012b 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -409,7 +409,6 @@ BOOL handle_check_pose(void* userdata) { void handle_force_ground_sit(void*); -void handle_phantom_avatar(void*); void handle_hide_typing_notification(void*); void handle_close_all_notifications(void*); void handle_open_message_log(void*); @@ -711,7 +710,6 @@ void init_menus() menu->addSeparator(); menu->addChild(new LLMenuItemCallGL( "Fake Away Status", &handle_fake_away_status, NULL)); menu->addChild(new LLMenuItemCallGL( "Force Ground Sit", &handle_force_ground_sit, NULL)); - menu->addChild(new LLMenuItemCallGL( "Phantom Avatar", &handle_phantom_avatar, NULL, NULL, 'P', MASK_CONTROL | MASK_ALT)); menu->addSeparator(); menu->addChild(new LLMenuItemCallGL( "Animation Override...", @@ -3707,9 +3705,9 @@ void handle_fake_away_status(void*) void handle_force_ground_sit(void*) { - if (gAgentAvatarp) + if (isAgentAvatarValid()) { - if(!gAgentAvatarp->isSitting()) + if (!gAgentAvatarp->isSitting()) { gAgent.setControlFlags(AGENT_CONTROL_SIT_ON_GROUND); } @@ -3720,23 +3718,6 @@ void handle_force_ground_sit(void*) } } -void handle_phantom_avatar(void*) -{ - BOOL ph = LLAgent::getPhantom(); - - if (ph) - gAgent.setControlFlags(AGENT_CONTROL_STAND_UP); - else - gAgent.setControlFlags(AGENT_CONTROL_SIT_ON_GROUND); - - LLAgent::togglePhantom(); - ph = LLAgent::getPhantom(); - LLChat chat; - chat.mSourceType = CHAT_SOURCE_SYSTEM; - chat.mText = llformat("%s%s","Phantom ",(ph ? "On" : "Off")); - LLFloaterChat::addChat(chat); -} - // /* diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index 2c566a46c..448d54373 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -4502,8 +4502,6 @@ void send_agent_update(BOOL force_send, BOOL send_reliable) return; } - if(gAgent.getPhantom()) return; //Don't want to do this while phantom - // We have already requested to log out. Don't send agent updates. if(LLAppViewer::instance()->logoutRequestSent()) { From b80a509ae2421e8c28e9bc3c4ffaabca3e62f538 Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Tue, 26 Mar 2013 18:16:50 -0400 Subject: [PATCH 003/180] Fix Issue 702: Copy Paste Parameters glitch Also improves the related code. It seems the main problem was calling updateVolume before setting sculpt params because this call relies on the isSculpted() --- indra/newview/llpanelobject.cpp | 62 ++++++++++++++++++--------------- 1 file changed, 34 insertions(+), 28 deletions(-) diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index 821ebd4a0..90714d99f 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -2490,6 +2490,18 @@ void LLPanelObject::onCopyRot(void* user_data) gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring(stringVec)); } +namespace +{ + bool texturePermsCheck(const LLUUID& id) + { + return (id.notNull() && !gInventory.isObjectDescendentOf(id, gInventory.getLibraryRootFolderID()) + && id != LLUUID(gSavedSettings.getString("UIImgWhiteUUID")) + && id != LLUUID(gSavedSettings.getString("UIImgInvisibleUUID")) + && id != LLUUID(std::string("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903")) // alpha + && LLPanelObject::findItemID(id).isNull()); + } +} + void LLPanelObject::onCopyParams(void* user_data) { LLPanelObject* self = (LLPanelObject*) user_data; @@ -2500,36 +2512,19 @@ void LLPanelObject::onCopyParams(void* user_data) LLViewerObject* objp = self->mObject; - mClipboardFlexiParams = (LLFlexibleObjectData*)objp->getParameterEntry(LLNetworkData::PARAMS_FLEXIBLE); - mClipboardLightParams = (LLLightParams*)objp->getParameterEntry(LLNetworkData::PARAMS_LIGHT); - mClipboardSculptParams = (LLSculptParams*)objp->getParameterEntry(LLNetworkData::PARAMS_SCULPT); + mClipboardFlexiParams = objp->getParameterEntryInUse(LLNetworkData::PARAMS_FLEXIBLE) ? static_cast(objp->getParameterEntry(LLNetworkData::PARAMS_FLEXIBLE)) : NULL; + mClipboardLightParams = objp->getParameterEntryInUse(LLNetworkData::PARAMS_LIGHT) ? static_cast(objp->getParameterEntry(LLNetworkData::PARAMS_LIGHT)) : NULL; + mClipboardSculptParams = objp->getParameterEntryInUse(LLNetworkData::PARAMS_SCULPT) ? static_cast(objp->getParameterEntry(LLNetworkData::PARAMS_SCULPT)) : NULL; if (mClipboardSculptParams) { - LLUUID id = mClipboardSculptParams->getSculptTexture(); - - // Texture perms check - if (!(id.isNull() || gInventory.isObjectDescendentOf(id, gInventory.getLibraryRootFolderID()) - || id == LLUUID(gSavedSettings.getString("UIImgWhiteUUID")) - || id == LLUUID(gSavedSettings.getString("UIImgInvisibleUUID")) - || id == LLUUID(std::string("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"))) // alpha - && findItemID(id).isNull()) - { - mClipboardSculptParams->setSculptTexture(LLUUID(SCULPT_DEFAULT_TEXTURE)); - } + const LLUUID id = mClipboardSculptParams->getSculptTexture(); + if (id != LLUUID(SCULPT_DEFAULT_TEXTURE) && !texturePermsCheck(id)) + mClipboardSculptParams = NULL; } - mClipboardLightImageParams = (LLLightImageParams*)objp->getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE); - if (mClipboardLightImageParams) + mClipboardLightImageParams = objp->getParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE) ? static_cast(objp->getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE)) : NULL; + if (mClipboardLightImageParams && texturePermsCheck(mClipboardLightImageParams->getLightTexture())) { - LLUUID id = mClipboardLightImageParams->getLightTexture(); - - // Texture perms check - if (!(id.isNull() || gInventory.isObjectDescendentOf(id, gInventory.getLibraryRootFolderID()) - || id == LLUUID(gSavedSettings.getString("UIImgWhiteUUID")) - || id == LLUUID(gSavedSettings.getString("UIImgInvisibleUUID")) - || id == LLUUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"))) // alpha - { - mClipboardLightImageParams->setLightTexture(findItemID(id)); - } + mClipboardLightImageParams = NULL; } } @@ -2542,16 +2537,27 @@ void LLPanelObject::onPasteParams(void* user_data) LLViewerObject* objp = self->mObject; - objp->updateVolume(mClipboardVolumeParams); - if (mClipboardFlexiParams) objp->setParameterEntry(LLNetworkData::PARAMS_FLEXIBLE, *mClipboardFlexiParams, true); + else + objp->setParameterEntryInUse(LLNetworkData::PARAMS_FLEXIBLE, false, true); + if (mClipboardLightParams) objp->setParameterEntry(LLNetworkData::PARAMS_LIGHT, *mClipboardLightParams, true); + else + objp->setParameterEntryInUse(LLNetworkData::PARAMS_LIGHT, false, true); + if (mClipboardSculptParams) objp->setParameterEntry(LLNetworkData::PARAMS_SCULPT, *mClipboardSculptParams, true); + else + objp->setParameterEntryInUse(LLNetworkData::PARAMS_SCULPT, false, true); + if (mClipboardLightImageParams) objp->setParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE, *mClipboardLightImageParams, true); + else + objp->setParameterEntryInUse(LLNetworkData::PARAMS_LIGHT_IMAGE, false, true); + + objp->updateVolume(mClipboardVolumeParams); } void LLPanelObject::onLinkObj(void* user_data) From fa056470688fef96e9caeb3731487c357a1b49bf Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Wed, 27 Mar 2013 00:56:28 +0100 Subject: [PATCH 004/180] Compile fix --- indra/llcommon/lldarray.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/indra/llcommon/lldarray.h b/indra/llcommon/lldarray.h index 293695411..b6834796b 100644 --- a/indra/llcommon/lldarray.h +++ b/indra/llcommon/lldarray.h @@ -153,7 +153,7 @@ inline S32 LLDynamicArray::put(const Type &obj) template inline void LLDynamicArray::operator+=(const LLDynamicArray &other) { - insert(this->end(), other.begin(), other.end()); + this->insert(this->end(), other.begin(), other.end()); } //-------------------------------------------------------- From 41a0681768846517d00bbf032f9853477d2176cd Mon Sep 17 00:00:00 2001 From: Aleric Inglewood Date: Wed, 27 Mar 2013 02:18:11 +0100 Subject: [PATCH 005/180] Revert "Snapshot floater aesthetics" This reverts commit 63dcd7ba32b374b7e6480b1565df145470c1b35b. That commit is nonsense and only shows that Liru has no clue what he is doing when it comes to the snapshot stuff :/. And no, I wasn't even AWARE he made this commit, I was just happily exploring and wanted to make a few snapshots when I suddenly noticed that several things were BROKEN: the aspect that the fullscreen preview was shown with was wrong, and when I wanted to limit the aspect of my feed upload that wasn't possible anymore ?!?!?? WTF Please don't screw up the hard work of others without at LEAST first consulting them. --- indra/newview/llfloatersnapshot.cpp | 23 +-- .../default/xui/en-us/floater_snapshot.xml | 143 +++++++++--------- 2 files changed, 77 insertions(+), 89 deletions(-) diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index d4830adbf..50f7044cb 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -295,7 +295,6 @@ public: mAvatarPauseHandles.clear(); mQualityMouseUpConnection.disconnect(); } - static void onClickDiscard(void* data); static void onClickKeep(void* data); static void onCommitSave(LLUICtrl* ctrl, void* data); static void onClickNewSnapshot(void* data); @@ -1852,7 +1851,7 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater, bool de floater->childSetVisible("keep_aspect", is_advance); floater->childSetVisible("type_label3", is_advance); floater->childSetVisible("format_label", is_advance && is_local); - floater->childSetVisible("local_format_combo", is_advance && is_local); + floater->childSetVisible("local_format_combo", is_local); floater->childSetVisible("layer_types", is_advance); floater->childSetVisible("layer_type_label", is_advance); floater->childSetVisible("aspect_one_label", is_advance); @@ -1864,7 +1863,7 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater, bool de floater->childSetVisible("keep_open_check", is_advance); floater->childSetVisible("freeze_time_check", is_advance); floater->childSetVisible("auto_snapshot_check", is_advance); - floater->childSetVisible("image_quality_slider", is_advance && show_slider); + floater->childSetVisible("image_quality_slider", show_slider); floater->childSetVisible("temp_check", is_advance); BOOL got_bytes = previewp && previewp->getDataSize() > 0; @@ -1932,23 +1931,6 @@ void LLFloaterSnapshot::Impl::checkAutoSnapshot(LLSnapshotLivePreview* previewp, } } -// static -void LLFloaterSnapshot::Impl::onClickDiscard(void* data) -{ - LLFloaterSnapshot* view = static_cast(data); - if (gSavedSettings.getBOOL("FreezeTime")) - { - LLSnapshotLivePreview* previewp = view->impl.getPreviewView(); - if (previewp && previewp->getShowFreezeFrameSnapshot()) - previewp->showFreezeFrameSnapshot(false); - view->impl.freezeTime(false); - } - else - { - view->close(); - } -} - // static void LLFloaterSnapshot::Impl::onCommitFeedResolution(LLUICtrl* ctrl, void* data) { @@ -2942,7 +2924,6 @@ BOOL LLFloaterSnapshot::postBuild() childSetAction("send_btn", Impl::onClickKeep, this); childSetAction("feed_btn", Impl::onClickKeep, this); childSetCommitCallback("save_btn", Impl::onCommitSave, this); - childSetAction("discard_btn", Impl::onClickDiscard, this); childSetCommitCallback("image_quality_slider", Impl::onCommitQuality, this); childSetValue("image_quality_slider", gSavedSettings.getS32("SnapshotQuality")); diff --git a/indra/newview/skins/default/xui/en-us/floater_snapshot.xml b/indra/newview/skins/default/xui/en-us/floater_snapshot.xml index f8ecc510a..cb9d8cfda 100644 --- a/indra/newview/skins/default/xui/en-us/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/en-us/floater_snapshot.xml @@ -1,72 +1,91 @@ - + File size: [SIZE] KB - + Target - - Post to profile feed + Post to my.secondlife.com feed Send via email - Save to inventory ([UPLOADFEE]) + Save to my inventory ([UPLOADFEE]) - Save to hard drive + Save to my hard drive -