Adds a dropdown option to gesture preview button to preview locally.
Note that any chat commands in gestures will still work as they normally would!
Translators: do your thing or hold your peace. (floater_preview_gesture.xml)
These code changes will look nicer viewer without space changes~
On the removal of permYouOwner():
Calling permYouOwner() to determine if an attachment is yours is
not correct: grid gods (and that includes BEFORE requesting admin
status) are marked as owner of everything in their sim.
The reason for that is that otherwise,
<Melanie_T> if they only had it when actually godding u, the viewer
would have to have an option to either show the proper menus (it
doesn't) or allow the sim to refresh the object flags without full
object updates (it hasn't).
<Melanie_T> gods often have to act fast, for instance with griefers.
Having transition to god mode take as long as a full rez just isn't an
option, apart from the sim load caused by resending all objects.
<Melanie_T> Then i tried resending only the object that was selected
but there the arriving object update would close the pie menu.
So you right-click a prim and the pie menu would close again.
The result has always been that if you are on your own sim, in opensim,
and select an attachment on another avatar, then YOU would freeze, not
the selected avatar. This patch fixes that "opensim related" bug as
well.
This is needed for synchronization: motions will have to start
(with a specific start time offset) from a point in the code where
only the motion object is available.
I added/used LLMotionController& in a previous commit, this was
now changed into a pointer. There is (obviously) not much reason
for that, but also no disadvantage: the diff relative to LLs code
doesn't get larger since the references where already added, too.
Conflicts:
indra/llcharacter/llkeyframemotion.cpp
indra/llcharacter/llkeyframemotion.h
For these standard motions, the viewer likes to very frequently
flood-call startMotion/stopMotion sometimes, which at the very
least needs a LLUUID lookup in a std::map. In particular, this
is done for two of them for every avatar in the sim every frame.
This code makes it possible to test if that makes sense by
merely doing a bit test.
Conflicts:
indra/llcharacter/llkeyframemotion.h
These changes were the result of my Motion leak audit.
However, there is a serious problem with LLKeyframeMotionParam
in that it stores plain pointers to objects that can and will be deleted
by other objects. Its the classicial LL example of coding
non-Object-Oriented badly maintainable and instable code.
I cannot make sure this won't go wrong for the simple fact
that LLKeyframeMotionParam is not used at ALL in our code.
Hence, the next commit will rather delete this file.
This commit is merely to have a record of this finding.
In order to remove code duplication, and as prove of concept,
I redid the linden_genepool archetype export and import (from the Edit
Appearance Floater), using AIXML and AIAlert.
The import/export code did shrink significantly, and became a lot
simpler. Although a new file pair (aixmllindengenepool.{cpp,h}) is
added to define the (de)serialization of the linden_genepool XML format,
that code is now centralized in one place, and still a lot simpler.
As a bonus however, every possible error is now semi-automatically
reported to the user with all details that might help to overcome
the problem, like file names and system errors.
Merged cleanly:
indra/llkeyframewalkmotion.cpp - 36e6946c96 - worked around a bug in Aurora walking motion
indra/llrender/llimagegl.cpp - fa8e1f033b - An llerrs here becomes an llwarns, to avoid bothering the user with non power of two dimensioned images
indra/newview/llmanip.cpp, indra/newview/llmanipscale.cpp - "Changed hardcoded 256 constants and such to width functions" - a50f0008b2
indra/newview/llpatchvertexarray.cpp - fa8e1f033b - Support patches of non power of two width
indra/newview/llworldmap.h - conflict
Conflicts:
indra/llmessage/patch_code.cpp - My version cleaned up a bit of code duplication, so this was applied, within the new tags
indra/llmessage/patch_code.h - b_large_patch in decode_patch_header defaults to false, indra/newview/llcloud.cpp patch removed.
indra/llmessage/patch_dct.h - false positive
indra/newview/llagent.cpp - false positive
indra/newview/llfloaterregioninfo.cpp - nonsl wacky textures support meets the refactor.
indra/newview/llfloaterworldmap.cpp - false positive
indra/newview/llglsandbox.cpp - false positive
indra/newview/llnetmap.cpp - small changes for type consistency brought into FS' patch, nothing important; also adds change to LLNetMap:draw removing getRegionWidthInMeters to keep using the constant REGION_WIDTH
indra/newview/llpanelobject.cpp - Get the region width of the object we're editing for maximum pasted x/y coords
indra/newview/llstartup.cpp - [Fixes old issues] My old patch did not fully use first_sim_size_x here, this has been fixed. The unused first_sim_size_y has been removed.
indra/newview/llsurface.cpp - rebuildWater isn't used, removed for now. Styling conflicts otherwise.
indra/newview/llsurfacepatch.cpp - remove FS patch that comments out code that isn't even in the modern source; cleaned up a mess of tags with more clear explanation, perhaps it can be expanded upon though. Some styling conflicts.
indra/newview/llviewermessage.cpp - Fix the problem? setRegionWidth by number.
indra/newview/llviewerobject.cpp - false positive
indra/newview/llviewerparcelmgr.cpp - just styling conflicts
indra/newview/llviewerparcelmgr.h - false positive
indra/newview/llviewerparceloverlay.cpp - false positive
indra/newview/llviewerparceloverlay.h - false positive
indra/newview/llviewerregion.cpp - cleaned up LLViewerRegion::getCompositionXY patches, they're more in the way than they're worth; removed DispatchOpenRegionSettings capability mention for now, it's not related to variable regions. Also remove rebuildWater, it's not used right now.
indra/newview/llvowater.cpp - false positive
indra/newview/llwind.cpp - remove decode_patch_header patches for false, since we have a default; otherwise false positive.
indra/newview/llworld.*
- [Fixes old issues] Remove setRegionWidth by LLMessageSystem as the messages used are not always the same, the by number one remains of course.
- Retained separation of connecting neighbors through the old method when the width is 256
- updateLimits() would never have been merged in, we have an entirely different grid manager, therefore it's removed.
- Fix the stupidity passed on over the years wherein a static constant variable would hold the same value as the first call to setLandFarClip..
indra/newview/llworldmap.cpp - 36e6946c96 Aurora map workaround stuffs, parts removed; rework of LLWorldMap::simInfoFromHandle
indra/newview/llworldmap.h - Cleaned up organization, avoid making members public, and fixed tagging
Conflicts:
indra/llappearance/llwearable.h
indra/llui/llcombobox.h
indra/newview/jcfloaterareasearch.cpp
indra/newview/jcfloaterareasearch.h
indra/newview/llpanelgrouproles.cpp
indra/newview/llpanelgrouproles.h
indra/newview/llviewermenu.cpp - Plugged in new MenuFloaterDict for AssetBlacklist and SoundExplorer in menu_viewer.xml and removed the old listeners for them.
indra/newview/skins/default/xui/es/floater_inventory.xml
Compile Fixes:
indra/llcommon/llstl.h - error: expected nested-name-specifier before ‘const’
indra/llui/llmultisliderctrl.cpp:283:12: error: ‘caller’ was not declared in this scope
indra/llui/lltexteditor.cpp
- error: operands to ?: have different types ‘const LLPointer<LLTextSegment>’ and ‘long int’
- error: passing ‘const LLPointer<LLTextSegment>’ as ‘this’ argument of ‘LLPointer<Type>& LLPointer<Type>::operator=(const LLPointer<Type>&) [with Type = LLTextSegment]’ discards qualifiers
indra/newview/llfloaterpermissionsmgr.cpp - Silly Shyotl, boost bind, not std bind.
indra/newview/llfloaterproperties.* - error: ‘LLInstanceTracker<LLFloaterProperties, LLUUID>’ is an inaccessible base of ‘LLFloaterProperties’
indra/newview/llgivemoney.cpp - Again, boost::ref, not std::ref
indra/newview/llpreviewscript.cpp - no known conversion for argument 1 from ‘std::vector<const LLPointer<LLTextSegment> >’ to ‘std::vector<LLPointer<LLTextSegment> >&