summaryrefslogtreecommitdiff
path: root/indra/newview/llscriptfloater.h
AgeCommit message (Collapse)Author
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.
2015-11-10remove execute permission from many files that should not have itOz Linden
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2011-10-10EXP-1285 FIXED Chiclets moved to the upper right of the viewer window.Seth ProductEngine
- Floaters dock to chiclets at the bottom. - Floaters docking region limited to non-toolbar view. - Chiclet bar is positioned between the right toolbar and the minimized floaters stacked at the top left corner by default.
2010-12-14STORM-713 FIXED XML/UI issues in llTextBoxPaul Guslisty
- As the class LLToastNotifyPanel is deprecated, made the class LLToastScriptTextbox derived directly from LLToastPanel. - Added callback for ignore button. Now LLToastScriptTextbox has its own XML, therefore it's not needed to dynamically create toast panel. Since LLToastNotifyPanel is deprecated all new notification toasts should be created this way.
2010-09-28restore switching logic between textbox/nontextbox, after the refactor.Tofu Linden
2010-09-28iterate iterate.Tofu Linden
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-07-27Backed out changeset: 58571b4e704bRichard Linden
2010-07-15Reverted changeset 2bb10eae42bfDessie Linden
2010-07-12EXT-8124 FIXED Avoided saving processed notifications that spawns script ↵Alexei Arabadji
floater. Details: 1 Avoided memory leak in LLScriptFloaterManager caused not destroying processed notifications. 2 Provided destroying notification if user initiate closing script floater and not destroying if viewer exit. reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/721/ --HG-- branch : product-engine
2010-04-21Implemented EXT-6783(normal sub task) - Implement saving of unread ↵Dmitry Zaporozhan
notifications. Utilized old save and load notification code. Main concern was with notifications that have complex responder - UserGiveItem, ObjectGiveItem. Those responders are object with own fields that need to persist through sessions. Notifications that should be saved are marked with persist="true" in notifications.xml Notifications using functor responders are saved automatically. Notifications using object responders need additional tuning. Responder object should be a) serializable(implement LLNotificationResponderInterface), b) registered with LLResponderRegistry. At this point following notifications persist through sessions: UserGiveItem, ObjectGiveItem, TeleportOffered, FrienshipOffered. Reviewed by Mike Antipov - https://codereview.productengine.com/secondlife/r/211/ --HG-- branch : notifications
2010-02-12Removed old function declaration.Dmitry Zaporozhan
--HG-- branch : product-engine
2010-02-12Fixed low bug EXT-5166 - Undocked lldialogs respawn in chiclet tray.Dmitry Zaporozhan
LLDialog floater position is saved per originating object. --HG-- branch : product-engine
2010-02-08Fixed critical bug EXT-4970 - Inventory offers by scripted objects are ↵Dmitry Zaporozhan
discarded when offered objects got the same name. Had to do minor refactoring of LLScripFloaterManager in order to fix this issue. --HG-- branch : product-engine
2010-01-19Fixed major bug EXT-4206 - Bottom bar spec calls for button background art ↵Dmitry Zaporozhan
on IM Chiclets. --HG-- branch : product-engine
2009-12-11Additional commit for normal sub-task EXT-3142("new message" indicator for ↵Eugene Mutavchi
object chiclets) --HG-- branch : product-engine
2009-12-09Implemented normal task EXT-3194 - Object chiclets should be accessible in ↵Dmitry Zaporozhan
the IM well. --HG-- branch : product-engine
2009-12-07Implemented normal sub-task EXT-3142("new message" indicator for object ↵Eugene Mutavchi
chiclets) --HG-- branch : product-engine
2009-12-03Fixed normal bug EXT-3021 - Viewer crashes on receiving notification for ↵Dmitry Zaporozhan
creating script(offer) chiclet for same object in second time. --HG-- branch : product-engine
2009-12-02Update for normal task EXT-2081 - Object IM chiclets art needs to be hooked ↵Dmitry Zaporozhan
up to LLDialog chiclets. Disabled notification toast. --HG-- branch : product-engine
2009-11-23Update for task EXT-2081 - Object IM chiclets art needs to be hooked up to ↵Dmitry Zaporozhan
LLDialog chiclets. Cleaned code, added comments. --HG-- branch : product-engine
2009-11-20Implemented normal task EXT-2081 - Object IM chiclets art needs to be hooked ↵Dmitry Zaporozhan
up to LLDialog chiclets. Implemented LLDialog(LLScriptFloater) and Script Chiclets. --HG-- branch : product-engine