Commit Graph

76 Commits (1d94fc7ce60ff37fcef4e22e6db73b4532377e9c)

Author SHA1 Message Date
Ansariel c182741596 Merge viewer-lynx 2016-11-16 09:55:54 +01:00
Nat Goodspeed d2c3c2f9fe MAINT-5232: Normalize LLSingleton subclasses.
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-09-15 20:18:12 -04:00
Ansariel 3192fe832f Merge viewer-quickgraphics 2016-03-08 01:41:31 +01:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Ansariel e130d1d133 FIRE-15575: Change persisted LLLayoutStack layout settings into a per-account setting 2015-02-17 14:04:06 +01:00
Ansariel b24b884122 FIRE-15101: Fix bottom toolbar buttons show in mouselook;
This fix reverts the initial fix for FIRE-5141 (e756e5e01e11) and replaces it
with a more specific one: The panel for the bottom toolbar buttons will always
stay visible regardless if it contains buttons or not, unless the whole toolbar
itself will be hidden (which happens for mouselook in case the UI should not be
shown). This means the nearby chat bar can be resized unless being in mouselook
and having UI in mouselook disabled.
2014-12-11 11:05:24 +01:00
Ansariel a6c1e7cd8b FIRE-5141: Nearby chat floater can no longer be resized when all buttons are removed from bottom FUI panel 2014-09-11 15:16:06 +02:00
Tank_Master 6babf8abd2 Merge LL 3.7.7 2014-06-09 11:29:57 -07:00
Ansariel 4f4b87013d Rename reshape-related members in LLLayoutPanel to avoid collision with members in LLCenterLayoutPanel 2014-02-21 19:42:36 +01:00
Ansariel d37f0033e5 Make preventing floaters being dragged underneath the main chat bar actually work, even for Vintage and Latency skin 2014-01-24 22:03:50 +01:00
Richard Linden 52da9f5f49 merge with viewer-release 2013-09-09 18:58:41 -07:00
Richard Linden 8d3daa141e SH-4374 FIX Interesting: Statistics Object cache hit rate is always 100%
moved object cache sampling code so that it actually gets executed
default values for stats are NaN instead of 0 in many cases
2013-08-09 16:14:19 -07:00
Richard Linden 0a96b47663 merge with viewer-release 2013-06-05 19:05:43 -07:00
Merov Linden 2113bb8159 Pull merge from viewer-release 2013-05-22 11:23:51 -07:00
maksymsproductengine 0193a7b74c CHUI-808 FIXED Draggable separator between conversations and message pane is not discoverable:
- final solution;
2013-04-16 04:55:09 +03:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07:00
Richard Linden 7b4d27ecbc SH-3931 WIP Interesting: Add graphs to visualize scene load metrics
collapsed Orientation enums to all use LLView::EOrientation
added ability to display stat bar horizontally
2013-03-14 19:36:50 -07:00
Tank_Master 52d9b07503 Merge viewer-bear 2013-09-12 21:15:34 -07:00
Tank_Master 5a8d94c50f Merge LL 3.6.4 pass 1 2013-08-28 00:10:39 -07:00
simon 27d637d0f1 Merge downstream code from CHUIStorm release 2013-08-26 14:43:23 -07:00
simon ee2fce8790 Merge downstream code and viewer-beta 2013-05-09 14:10:45 -07:00
simon 87ba85eaab diff -r 59c7bed66dfd indra/llcommon/lleventapi.h 2013-04-24 09:35:38 -07:00
Simon Linden d5561a1ada Merge in viewer-beta to get CHUI code 2013-03-19 16:20:53 -07:00
Graham Madarasz (Graham) 93eaccae6f Modify LLInstanceTracker to avoid using a map of strings to find a map of foo to find some pointers 2013-02-28 15:35:14 -08:00
Tank_Master d4640277d0 Merge LL 3.5.3 release. 2013-07-09 16:24:58 -07:00
Tank_Master 14001c54df Gastly CHUI merge pass 1, don't count on anything to work. 2013-06-26 12:14:54 -07:00
maksymsproductengine 01bdfb3ecb CHUI-591 FIXED Issues with resizing conversations floater 2012-12-15 21:28:38 +02:00
Merov Linden bc54f1bb89 Merge : pull from lindenlab/viewer-release 2012-06-07 22:30:54 -07:00
Seth ProductEngine f59aa88039 CHUI-105 WIP Implemented collapsed/expanded state transitions for messages and conversation panes.
The states and dimensions of Conversations floater panes are saved in per account settings.
2012-05-17 02:51:18 +03:00
Tank_Master 1c55d5cbb6 Merge LL 3.3.2 release 2012-05-28 17:02:11 -07:00
Richard Linden bea2dfbc22 EXP-1767 WIP Received Items panel state does not persist between sessions
added get/setTargetDim() for managing layout_panel size even if its collapsed/invisible/etc
2012-03-06 16:59:11 -08:00
Tank_Master e61c20d499 Merge LL 3.3.1 Viewer Release 2012-04-26 17:31:35 -07:00
Richard Linden e482e677b2 EXP-1767 WIP Received Items panel state does not persist between sessions
fixed layout stack so programmatic size updates will work correctly
2012-02-08 16:51:19 -08:00
Richard Linden 20b46ef6f6 EXP-1851 FIX Crash when trying to resize the bottom sections
more layout logic fixes and added renormalization to fractional sizes to eliminate drift
2012-01-31 15:34:32 -08:00
Richard Linden f3ddb75b03 EXP-1851 WIP Crash when trying to resize the bottom sections
fixed layout logic when dealing with invisibile layout_panels
2012-01-30 18:32:35 -08:00
ziree c568c87779 Added save_sizes parameter to layout_stack controls, so you can save the layout to preferences. Fixes FIRE-5030 for the main chat bar size. 2012-02-18 00:12:25 +01:00
Richard Linden 29ad432c8b made layoutPanels have constant user_resize and auto_resize attributes 2012-01-19 19:52:49 -08:00
Richard Linden a662b888ed EXP-1824 FIX Received Items panel does not collapse correct when Height of panel is maximized in Inventory window 2012-01-19 19:40:46 -08:00
Richard Linden 40687a930c EXP-1812 FIX Cannot resize location bar / favorites in top navigation bar in viewer 2012-01-18 12:59:44 -08:00
Richard Linden cd4204b273 EXP-1758 WIP Progress spinner not shown during merketplace synch if Merchant Outbox floater was previously minimized
rewrote layout_stack resizing logic to be symmetrical
2012-01-16 11:03:33 -08:00
Richard Linden 40a74eb5b7 EXP-1711 FIX LLWindowShade doesn't stack multiple notifications 2011-12-12 12:32:22 -08:00
Richard Linden b1016782a2 EXP-1367 FIX Moving in and out of mouselook causes location bar to move down 2011-10-18 16:43:43 -07:00
Richard Linden 68d5141fb3 EXP-1258 WIP toggle buttons between icons and icons+text modes
fixed button layout for icon+text
layout stack now uses floating point precision to avoid clamping panels to 0
2011-09-27 19:06:02 -07:00
Richard Linden 64f30a302d EXP-1228 FIX Create toolbar widget class that displays list of buttons horizontally or vertically
buttons are now centered and sized according to content
created floater_test_toolbar.xml to test
2011-09-20 16:37:21 -07:00
Leslie Linden 4267014b14 EXP-890 FIX -- Resizing inbox or outbox to minimum size while open does not 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-06-22 17:35:25 -04:00
Leslie Linden 33e4a2c7b1 Updated Marketplace Inbox & Outbox panel to maintain size when one is expanded vs the other 2011-05-25 10:39:34 -07:00
Monroe Linden dee57bea25 Merge from viewer-development. 2010-12-20 11:21:17 -08:00
Richard Linden 8044661bd5 WIP XUI HTTP Auth dialog
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-12-10 10:11:03 -08:00
Richard Linden f8d08af9f1 SOCIAL-266 WIP HTTP AUTH dialogs no longer work in LLQtWebKit 4.7.1
converted LLLayoutStack orientation param to use named enums
2010-11-23 16:25:10 -08:00
Richard Linden f241e2327c made layout stack open/close time configurable 2010-10-21 17:13:09 -07:00