summaryrefslogtreecommitdiff
path: root/indra/llui/lllayoutstack.h
AgeCommit message (Collapse)Author
2023-05-18SL-19649 Adjust other classes for new deleteAllChildren mechanicsAndrey Kleshchev
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-09-09merge with viewer-releaseRichard Linden
2013-08-09SH-4374 FIX Interesting: Statistics Object cache hit rate is always 100%Richard Linden
moved object cache sampling code so that it actually gets executed default values for stats are NaN instead of 0 in many cases
2013-06-05merge with viewer-releaseRichard Linden
2013-05-22Pull merge from viewer-releaseMerov Linden
2013-04-16CHUI-808 FIXED Draggable separator between conversations and message pane is ↵maksymsproductengine
not discoverable: - final solution;
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-03-14SH-3931 WIP Interesting: Add graphs to visualize scene load metricsRichard Linden
collapsed Orientation enums to all use LLView::EOrientation added ability to display stat bar horizontally
2012-12-15CHUI-591 FIXED Issues with resizing conversations floatermaksymsproductengine
2012-06-07Merge : pull from lindenlab/viewer-releaseMerov Linden
2012-05-17CHUI-105 WIP Implemented collapsed/expanded state transitions for messages ↵Seth ProductEngine
and conversation panes. The states and dimensions of Conversations floater panes are saved in per account settings.
2012-03-06EXP-1767 WIP Received Items panel state does not persist between sessionsRichard Linden
added get/setTargetDim() for managing layout_panel size even if its collapsed/invisible/etc
2012-02-08EXP-1767 WIP Received Items panel state does not persist between sessionsRichard Linden
fixed layout stack so programmatic size updates will work correctly
2012-01-31 EXP-1851 FIX Crash when trying to resize the bottom sectionsRichard Linden
more layout logic fixes and added renormalization to fractional sizes to eliminate drift
2012-01-30 EXP-1851 WIP Crash when trying to resize the bottom sectionsRichard Linden
fixed layout logic when dealing with invisibile layout_panels
2012-01-19made layoutPanels have constant user_resize and auto_resize attributesRichard Linden
2012-01-19EXP-1824 FIX Received Items panel does not collapse correct when Height of ↵Richard Linden
panel is maximized in Inventory window
2012-01-18EXP-1812 FIX Cannot resize location bar / favorites in top navigation bar in ↵Richard Linden
viewer
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-12EXP-1711 FIX LLWindowShade doesn't stack multiple notificationsRichard Linden
2011-10-18EXP-1367 FIX Moving in and out of mouselook causes location bar to move downRichard Linden
2011-09-27EXP-1258 WIP toggle buttons between icons and icons+text modesRichard Linden
fixed button layout for icon+text layout stack now uses floating point precision to avoid clamping panels to 0
2011-09-20EXP-1228 FIX Create toolbar widget class that displays list of buttons ↵Richard Linden
horizontally or vertically buttons are now centered and sized according to content created floater_test_toolbar.xml to test
2011-06-22EXP-890 FIX -- Resizing inbox or outbox to minimum size while open does not ↵Leslie Linden
show present items when hte box is next opened EXP-897 FIX -- Black box shown in UI when shrinking Inbox down in size * Layout panel now supports "expanded_min_dim" parameter which allows a different min size to be specified when the layout panel is collapsed vs expanded. * Inbox and Outbox expanded_min_dim attributes are now set to be larger than min dim so they can not be collapsed all the way when they are expanded.
2011-05-25Updated Marketplace Inbox & Outbox panel to maintain size when one is ↵Leslie Linden
expanded vs the other
2010-12-20Merge from viewer-development.Monroe Linden
2010-12-10WIP XUI HTTP Auth dialogRichard Linden
refactored LLWindowShade into seperate file improved layout of dialog improved dialog resizing logic Tab and Enter keys now work as expected in windowshade form added "modal" capability to window shade added HTTP Auth notifications to MOAP
2010-11-23SOCIAL-266 WIP HTTP AUTH dialogs no longer work in LLQtWebKit 4.7.1Richard Linden
converted LLLayoutStack orientation param to use named enums
2010-10-21made layout stack open/close time configurableRichard Linden
2010-09-16mergeRichard Linden
2010-09-06VWR-22690 FIXED Implemented save/load of bottomtray button order.Andrew Dyukov
- Added methods responsible for saving and loading order of buttons to bottomtray. Order is saved after each drag'n'drop to ensure user's customization of bottomtray is not lost because of crash. - Added additional argument to layoutstack movePanel() method which tells it to move panel to the beginning of mPanels vector without requiring a pointer to panel before which it should be inserted. Reviewed by Vadim Savchuk.
2010-09-06VWR-20705 VWR-20706 FIXED Implemented drag'n'drop of buttons in bottomtray.Andrew Dyukov
- Though visually user drags buttons, layout panels are really moved. To move one panel before other, new method movePanelBeforeOther() was added to layout stack. - When drag'n'drop is finished, order of panels in layout stack mToolbarStack is changed, and also order vectors are updated in bottomtray.These are vectors mButtonsProcessOrder and mButtonsOrder. mButtonsOrder was introduced in this changeset to store order of all bottomtray buttons that may change place via drag'n'drop and should save and load it between sessions. mButtonsProcessOrder is not enough for it because it contains only buttons that may be hidden(and for example Speak button is not included in it). - To pass mouse events from buttons to bottomtray, new class LLBottomtrayButton was added (and new widget bottomtray_button for it). Reviewed by Vadim Savchuk.
2010-08-27Post-convert merge by convert_monolith.py from ./viewer-experienceMonroe Linden
2010-08-26Automated merge with ssh://richard@hg.lindenlab.com/richard/viewer-experienceRichard Linden
2010-08-26made layoutstack orientation mandatoryRichard Linden
2010-08-26Fix for a mac build error.Monroe Linden
2010-08-25fixed regressions from changing layout panel to be a derived widget classRichard Linden
2010-08-24removed LLLayoutStack::fromXML custom xml parsingRichard Nelson
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-02-24Work on major bug EXT-5589 (Notifications button falls under side panel)Mike Antipov
-- updated LLLayoutStack to process "max_width" & "max_height" attributes for layout_panel. --HG-- branch : product-engine
2010-01-15Fixed normal bug EXT-4309 (Gesture button is too wide in the mouse look ↵Eugene Mutavchi
mode): added hack that avoid usage of the LLLayoutStack resizing logic on mouse look mode switching. --HG-- branch : product-engine
2010-01-05EXT-3649 EXT-3662 : Move media controls to above media faceRick Pasetto
Review #69 This changes where and how the media controls are laid out, and ensures that all of the media region (the face) is clickable. Also moved the volume slider to below the controls (this took WAY too long to do ​:( ​), and adjusted the window region in which the media controls are allowed to be displayed.
2009-12-22Made the control panel in P2P IM sessions non-resizable (EXT-3470).Vadim Savchuk
--HG-- branch : product-engine
2009-12-17Backed out changeset: 4d482c1ed041richard
2009-12-16Backed out changeset: cfa60aef8061, added setBlockFromValue so setting a ↵James Cook
LLRect param in code will set the individua
2009-12-15added setBlockFromValue so setting a LLRect param in code will set the ↵richard
individual left, right, top, bottom values, for example don't call setupParams when creating widgets from code moved Multiple param constraints into BaseBlock to remove extra scoping
2009-11-17Completed major sub-task EXT-991 (Update bottom bar behavior on resize)Mike Antipov
- added possibility to shrink/extend buttons (gestures, move, view) while resizing - I had to add LLLayoutStack::getPanelMinSize interface to validate width of Layout panels with these buttons --HG-- branch : product-engine
2009-11-13Add background to media controlsRick Pasetto
This actually required some help from James and Richard. Thanks, guys! This adds custom-drawing of a background image underneath the icons that make up the media controls in the layout stack. In order to have this work, we had to publicize API in lllayoutstack to force relayout to calculate the size. I also did another cleanup pass ("Boy Scout Rule") that squirreled away all pertinent controls into membed variables, instead of doing a getChild() every time updateShape() is called. Readjusted a bunch of components as well.