summaryrefslogtreecommitdiff
path: root/indra/newview/llchicletbar.cpp
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
2015-05-18merge changes for MAINT-4734pavelkproductengine
2015-03-17MAINT-4734 (Separate transaction notices from group notice/invites)pavelk_productengine
1) stripped off attachment field; 2) made logos (group's, sender's, etc) in expanded view the same size as in condensed view; 3) turned on notification showing upon click; 4) fixed cropped right border of Invite and Transactions notifications; 5) enabled "Collapse All" button; 6) stripped off unnecessary icons.
2015-01-09MAINT-4734 (Separate transaction notices from group notice/invites) - ↵pavelk_productengine
initial version Works: 1) All new notices shown on "Invites" tab of new floater "NOTIFICATIONS TABBED" in condensed view To be done: 1) Show other types of notices, like transactions and system 2) Separate notices between tabs "Invites", "System", "Transactions" 3) Design full notice view (in addition to condensed view)
2014-10-18Update to build on Xcode 6.0: remove unused variables and functionscallum_linden
2013-08-09second phase summer cleaningRichard Linden
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2012-12-19CHUI-592 FIXED Unread notifications are not being saved in notification chicletmaksymsproductengine
2012-12-04CHUI-573 FIXED Notification chiclet shown when object chiclets are shownmaksymsproductengine
2012-11-29CHUI-553 FIXED Remove the conversation chicletmaksymsproductengine
2012-11-14CHUI-389 FIXED Added parameter for sessionAdded to get access to ↵maxim_productengine
has_offline_msg value. Set UnreadIMs icon to visible if messages were sent while offline.
2012-11-09CHUI-337 FIXED: To avoid confusion with a classes "...conversation..." and ↵AlexanderP ProductEngine
in accordance with the naming convention in the project, some classes and corresponding files should be renamed: LLIMConversation -> LLFloaterIMSessionTab LLIMFloater -> LLFloaterIMSession LLNearbyChat -> LLFloaterIMNearbyChat LLIMFloaterContainer -> LLFloaterIMContainer LLNearbyChatBarListener -> LLFloaterIMNearbyChatListener LLNearbyChatHandler -> LLFloaterIMNearbyChatHandler
2012-10-31CHUI-374 ADD. FIX, CHUI-442 FIXED (Nearby chat is torn off and cannot be ↵AlexanderP ProductEngine
docked if nearby chat is received while conversation floater is closed) - implement. lazy creating of container
2012-06-27CHUI-125 FIXED Supressed of a commented out codeAlexanderP ProductEngine
2012-06-21MergeAlexanderP ProductEngine
2012-06-20CHUI-125 FIXED if a call is accept then open im-session's floaterAlexanderP ProductEngine
2012-06-19CHUI-138 : Suppress chiclets for conversations when using tabbed UI; Make ↵Merov Linden
sure list is cleaned up on close
2012-06-07CHUI-120 WIP Added starting ad hoc conference in the same floater as P2P ↵Seth ProductEngine
chat, after adding more participants. - Added a parameter to LLAvatarActions::startConference() and LLIMMgr::addSession() to pass the uuid of a P2P IM floater which should be used to start a new conference in it. - In LLChicletBar::sessionRemoved() we don't close the IM floater if it is going to be re-used for a new conference.
2012-01-19made layoutPanels have constant user_resize and auto_resize attributesRichard Linden
2012-01-16EXP-1758 WIP Progress spinner not shown during merketplace synch if Merchant ↵Richard Linden
Outbox floater was previously minimized rewrote layout_stack resizing logic to be symmetrical
2011-12-02EXP-1463 ADDITIONAL FIX (IM chiclets overlay Mini-Location bar)Paul ProductEngine
- Don't let chiclet list left side to be out of chiclet_container
2011-11-25EXP-1463 FIXED (IM chiclets overlay Mini-Location bar)Paul ProductEngine
- Now chiclet bar adjusts its width with Mini-Location bar
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.