summaryrefslogtreecommitdiff
path: root/indra/newview/llselectmgr.h
AgeCommit message (Collapse)Author
2017-04-21Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2017-03-30DRTVWR-418: Xcode 8.3 complains about LLSafeHandle<T> implementation.Nat Goodspeed
The previous LLSafeHandle<T> implementation declares a static data member of the template class but provides no (generic) definition, relying on particular specializations to provide the definition. The data member is a function pointer, which is called in one of the methods to produce a pointer to a "null" T instance: that is, a dummy instance to be dereferenced in case the wrapped T* is null. Xcode 8.3's version of clang is bothered by the call, in a generic method, through this (usually) uninitialized pointer. It happens that the only specializations of LLSafeHandle do both provide definitions. I don't know whether that's formally valid C++03 or not; but I agree with the compiler: I don't like it. Instead of declaring a public static function pointer which each specialization is required to define, add a protected static method to the template class. This protected static method simply returns a pointer to a function-static T instance. This is functionally similar to a static LLPointer<T> set on demand (as in the two specializations), including lazy instantiation. Unlike the previous implementation, this approach prohibits a given specialization from customizing the "null" instance function. Although there exist reasonable ways to support that (e.g. a related traits template), I decided not to complicate the LLSafeHandle implementation to make it more generally useful. I don't really approve of LLSafeHandle, and don't want to see it proliferate. It's not clear that unconditionally dereferencing LLSafeHandle<T> is in any way better than conditionally dereferencing LLPointer<T>. It doesn't even skip the runtime conditional test; it simply obscures it. (There exist hints in the code that at one time it might have immediately replaced any wrapped null pointer value with the pointer to the "null" instance, obviating the test at dereference time, but this is not the current functionality. Perhaps it was only ever wishful thinking.) Remove the corresponding functions and static LLPointers from the two classes that use LLSafeHandle.
2017-03-13MAINT-1324 Warning should appear that objects in different regions can't be ↵andreykproductengine
linked
2016-11-30MAINT-6803 Account for deselectionandreykproductengine
2016-09-15MAINT-5232: Normalize LLSingleton subclasses.Nat Goodspeed
A shocking number of LLSingleton subclasses had public constructors -- and in several instances, were being explicitly instantiated independently of the LLSingleton machinery. This breaks the new LLSingleton dependency-tracking machinery. It seems only fair that if you say you want an LLSingleton, there should only be ONE INSTANCE! Introduce LLSINGLETON() and LLSINGLETON_EMPTY_CTOR() macros. These handle the friend class LLSingleton<whatevah>; and explicitly declare a private nullary constructor. To try to enforce the LLSINGLETON() convention, introduce a new pure virtual LLSingleton method you_must_use_LLSINGLETON_macro() which is, as you might suspect, defined by the macro. If you declare an LLSingleton subclass without using LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() in the class body, you can't instantiate the subclass for lack of a you_must_use_LLSINGLETON_macro() implementation -- which will hopefully remind the coder. Trawl through ALL LLSingleton subclass definitions, sprinkling in LLSINGLETON() or LLSINGLETON_EMPTY_CTOR() as appropriate. Remove all explicit constructor declarations, public or private, along with relevant 'friend class LLSingleton<myself>' declarations. Where destructors are declared, move them into private section as well. Where the constructor was inline but nontrivial, move out of class body. Fix several LLSingleton abuses revealed by making ctors/dtors private: LLGlobalEconomy was both an LLSingleton and the base class for LLRegionEconomy, a non-LLSingleton. (Therefore every LLRegionEconomy instance contained another instance of the LLGlobalEconomy "singleton.") Extract LLBaseEconomy; LLGlobalEconomy is now a trivial subclass of that. LLRegionEconomy, as you might suspect, now derives from LLBaseEconomy. LLToolGrab, an LLSingleton, was also explicitly instantiated by LLToolCompGun's constructor. Extract LLToolGrabBase, explicitly instantiated, with trivial subclass LLToolGrab, the LLSingleton instance. (WARNING: LLToolGrabBase methods have an unnerving tendency to go after LLToolGrab::getInstance(). I DO NOT KNOW what should be the relationship between the instance in LLToolCompGun and the LLToolGrab singleton instance.) LLGridManager declared a variant constructor accepting (const std::string&), with the comment: // initialize with an explicity grid file for testing. As there is no evidence of this being called from anywhere, delete it. LLChicletBar's constructor accepted an optional (const LLSD&). As the LLSD parameter wasn't used, and as there is no evidence of it being passed from anywhere, delete the parameter. LLViewerWindow::shutdownViews() was checking LLNavigationBar:: instanceExists(), then deleting its getInstance() pointer -- leaving a dangling LLSingleton instance pointer, a land mine if any subsequent code should attempt to reference it. Use deleteSingleton() instead. ~LLAppViewer() was calling LLViewerEventRecorder::instance() and then explicitly calling ~LLViewerEventRecorder() on that instance -- leaving the LLSingleton instance pointer pointing to an allocated-but-destroyed instance. Use deleteSingleton() instead.
2016-03-16merge changes for DRTVWR-417Oz Linden
2016-01-15merge changes for 4.0.1-releaseOz Linden
2016-01-11MAINT-6025 FIXED "ctrl + z" not working on non-mod objectsandreykproductengine
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-10-19MAINT-5268 FIXED Rotating an object that's used as grid reference goes crazyruslantproductengine
2015-07-15Merge from viewer-relese and become version 3.8.2andreykproductengine
2015-04-13mergeBrad Payne (Vir Linden)
2015-04-09MAINT-5069 WIP, MAINT-5071 WIP - handle dropping objects and attaching from ↵Brad Payne (Vir Linden)
ground. WIP on better tracking of attachment requests via various message in LLSelectMgr.
2015-02-26MAINT-4904 FIXED Show confirmation pop-up before unlinking an object.Mnikolenko ProductEngine
2014-11-18MAINT-1789 FIXED Object inspector doesn't show any information about object ↵Mnikolenko ProductEngine
if user uses Select Only My Objects option
2014-10-10MAINT-3202 FIXED Cancel of selected colour in "Colour picker" floater does ↵andreykproductengine
not return colour icon to previous condition
2013-07-30Summer cleaning - removed a lot of llcommon dependencies to speed up build timesRichard Linden
consolidated most indra-specific constants in llcommon under indra_constants.h fixed issues with operations on mixed unit types (implicit and explicit) made LL_INFOS() style macros variadic in order to subsume other logging methods such as ll_infos added optional tag output to error recorders
2013-06-07NORSPEC-233 WIP for individual material param edits across hetero object ↵Graham Madarasz
selections
2013-05-29NORSPEC-96 diff/norm/spec tex scale ratio rodeo, yoGraham Madarasz
2013-05-24NORSPEC-96 NORSPEC-189 another attempt at planar stretch across all 3 ↵Graham Madarasz
channels and make the materials CB use a UUID instead of this pointer for safety
2013-05-14NORSPEC-103 reflect normal/spec UVs in face edit overlay displayGraham Madarasz
2013-04-25Merge 3.5.1 into MaterialsGraham Madarasz
2013-04-10NORSPEC-92 More UI fixesGraham Madarasz (Graham Linden)
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-02-27Wire up LLMaterialMgr::remove() to edit panel.Tonya Souther
2013-02-12merge up to 3.4.5-releaseOz Linden
2013-02-06Tell the renderer to use the updated material immediately on editing it.Tonya Souther
2013-01-29Editing interface for normal and specular maps and other parameters.Tonya Souther
2012-10-25MAINT-1743 "Use Selection for Grid" does not change the grid ruler to ↵Kelly Washington
"Reference" in the tools floater Reviewed with Simon.
2012-10-15MAINT-1598 Edit Linked Parts isn't returning creator/ownerKelly Washington
* Show creator, owner and group information when only selecting a single prim in a linkset. reviewed with Simon
2012-07-23Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-release.Todd Stinson
2012-07-12PATH-807: Ensuring that the "Show in linksets..." and "Show in ↵Todd Stinson
characters..." right-click menu option does not show for objects outside the current region.
2012-07-10PATH-807: BUGFIX Filtering which objects will contain the right-click ↵Todd Stinson
context-sensitive menu option of "Show in linksets...".
2012-06-22PATH-760: Adding another pathfinding test method to the selection manager.Todd Stinson
2012-06-21PATH-760: Ensuring that the pathfinding attribute field works correctly with ↵Todd Stinson
multiple objects selected.
2012-06-21PATH-760: Renaming some methods of LLSelectMgr.Todd Stinson
2012-05-22MAINT-119 FIXED (PUBLIC]no-transfer textures not searchable via texture picker)Paul ProductEngine
- Implemented Richard's and Leo's spec - Also fixed an issue when applying no-transfer texture for an object using texture picker, creates redundant copies of the texture in the object's content
2012-03-29PATH-450: BUGFIX Ensuring that permanent objects cannot be linked in frozen ↵Todd Stinson
mode. Displaying a modal notification if user attempts.
2012-03-16Removing unreachable code from the viewer. Corresponding changes made on ↵Todd Stinson
the server to remove the message handling.
2012-02-28PATH-199: Cleaning up code related to object flags so that I can better use ↵Todd Stinson
the flags to managed pathfinding flags such as permanent and character.
2011-11-10SH-2644 Fix debug display that shows selection triangle count and streaming costDave Parks
2011-03-30SH-477 Better mesh streaming cost estimation.Dave Parks
2011-03-09Automated merge up from viewer-development into mesh-developmentLoren Shih
2011-02-22STORM-889 FIXED Put Link/Unlink in Edit PanelPaul ProductEngine
- Moved callbacks for Link/Unlink to the LLSelectMgr - Binded Link/Unlink callbacks with buttons in Build Floater - Replaced view_listener_t usage for Link, Unlink, EnableLink, EnableUnlink with boost::bind
2011-02-08SH-523 Fix for non-finite values in silhouette rendering resulting in ↵Dave Parks
silhouette segments pointing at center of screen.
2011-01-21Automated merge up from viewer-developmentLoren Shih
2011-01-20SH-635 Fix for changing one physics parameter changing all physics parameters.Dave Parks
2011-01-20VWR-13040 - clean up LLObjectSelection iteratorAleric Inglewood
2010-11-18SH-350 SH-351 SH-355 FIX Several fixes for ARCNyx (Neal Orman)
Fixed the texture resolution calculation against the rounding errors we had before. Fixed the bug where linking prims changed the combined cost Fixed the bug where twisting was not computed properly Code reviewed by davep.
2010-10-13correct licenses (fix problem with license change merge)Oz Linden