...
 
Commits (6)
......@@ -143,7 +143,7 @@ typedef std::vector<LLWearableType::EType> wearables_vec_t;
//
// This holds const data - it is initialized once and the contents never change after that.
//------------------------------------------------------------------------
class LLAvatarAppearanceDictionary : public LLSingleton<LLAvatarAppearanceDictionary>
class LLAvatarAppearanceDictionary final : public LLSingleton<LLAvatarAppearanceDictionary>
{
//--------------------------------------------------------------------
// Constructors and Destructors
......
......@@ -291,7 +291,7 @@ class LLTexLayerSetBuffer : public virtual LLRefCount
// LLTexLayerStaticImageList
//
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class LLTexLayerStaticImageList : public LLSingleton<LLTexLayerStaticImageList>
class LLTexLayerStaticImageList final : public LLSingleton<LLTexLayerStaticImageList>
{
LLSINGLETON(LLTexLayerStaticImageList);
~LLTexLayerStaticImageList();
......
......@@ -57,7 +57,7 @@ struct WearableEntry : public LLDictionaryEntry
BOOL mAllowMultiwear;
};
class LLWearableDictionary : public LLParamSingleton<LLWearableDictionary>,
class LLWearableDictionary final : public LLParamSingleton<LLWearableDictionary>,
public LLDictionary<LLWearableType::EType, WearableEntry>
{
LLSINGLETON(LLWearableDictionary, LLWearableType&);
......
......@@ -33,7 +33,7 @@
#include "llsingleton.h"
#include "llinvtranslationbrdg.h"
class LLWearableType : public LLParamSingleton<LLWearableType>
class LLWearableType final : public LLParamSingleton<LLWearableType>
{
LLSINGLETON(LLWearableType, LLTranslationBridge* trans);
~LLWearableType();
......
......@@ -60,7 +60,7 @@ struct AssetEntry : public LLDictionaryEntry
bool mCanKnow;
};
class LLAssetDictionary : public LLSingleton<LLAssetDictionary>,
class LLAssetDictionary final : public LLSingleton<LLAssetDictionary>,
public LLDictionary<LLAssetType::EType, AssetEntry>
{
LLSINGLETON(LLAssetDictionary);
......
......@@ -85,7 +85,7 @@ namespace boost {
* can provide diagnostic info: we can look up the name of the
* currently-running coroutine.
*/
class LL_COMMON_API LLCoros: public LLSingleton<LLCoros>
class LL_COMMON_API LLCoros final : public LLSingleton<LLCoros>
{
LLSINGLETON(LLCoros);
~LLCoros();
......
......@@ -439,7 +439,7 @@ namespace
typedef std::vector<LLError::RecorderPtr> Recorders;
typedef std::vector<LLError::CallSite*> CallSiteVector;
class Globals : public LLSingleton<Globals>
class Globals final : public LLSingleton<Globals>
{
LLSINGLETON(Globals);
public:
......@@ -513,7 +513,7 @@ namespace LLError
typedef LLPointer<SettingsConfig> SettingsConfigPtr;
class Settings : public LLSingleton<Settings>
class Settings final : public LLSingleton<Settings>
{
LLSINGLETON(Settings);
public:
......
......@@ -234,7 +234,7 @@ class LLEventPump;
// capable of this.) In that case, instead of calling LLEventPumps::instance()
// again -- resurrecting the deleted LLSingleton -- store an
// LLHandle<LLEventPumps> and test it before use.
class LL_COMMON_API LLEventPumps: public LLSingleton<LLEventPumps>,
class LL_COMMON_API LLEventPumps final : public LLSingleton<LLEventPumps>,
public LLHandleProvider<LLEventPumps>
{
LLSINGLETON(LLEventPumps);
......
......@@ -74,7 +74,7 @@ class LLCallbackRegistry
* (before main()), requiring LLInitClassList to be fully constructed on
* demand regardless of module initialization order.
*/
class LLInitClassList :
class LLInitClassList final :
public LLCallbackRegistry,
public LLSingleton<LLInitClassList>
{
......@@ -88,7 +88,7 @@ class LLInitClassList :
* time (before main()), requiring LLDestroyClassList to be fully constructed
* on demand regardless of module initialization order.
*/
class LLDestroyClassList :
class LLDestroyClassList final :
public LLCallbackRegistry,
public LLSingleton<LLDestroyClassList>
{
......
......@@ -73,7 +73,7 @@ class LLPounceableQueueImpl;
// because we can't count on a data member queue being initialized at the time
// we start getting callWhenReady() calls. This is that LLSingleton.
template <typename T>
class LLPounceableQueueSingleton:
class LLPounceableQueueSingleton final :
public LLSingleton<LLPounceableQueueSingleton<T> >
{
LLSINGLETON_EMPTY_CTOR(LLPounceableQueueSingleton);
......
......@@ -178,7 +178,7 @@ class LLSafeHandle
// Of course, as with any LLSingleton, the "null instance" is only
// instantiated on demand -- in this case, if you actually try to
// dereference an LLSafeHandle containing null.
class NullInstanceHolder: public LLSingleton<NullInstanceHolder>
class NullInstanceHolder final : public LLSingleton<NullInstanceHolder>
{
LLSINGLETON_EMPTY_CTOR(NullInstanceHolder);
~NullInstanceHolder() {}
......
......@@ -52,7 +52,7 @@ bool oktolog();
// list is to help track inter-LLSingleton dependencies, and since we have
// this implicit dependency from every LLSingleton to the master list, make it
// an LLSingleton.
class LLSingletonBase::MasterList:
class LLSingletonBase::MasterList final :
public LLSingleton<LLSingletonBase::MasterList>
{
private:
......
......@@ -832,10 +832,10 @@ private: \
*/
#define LLSINGLETON_EMPTY_CTOR(DERIVED_CLASS) \
/* LLSINGLETON() is carefully implemented to permit exactly this */ \
LLSINGLETON(DERIVED_CLASS) {}
LLSINGLETON(DERIVED_CLASS) = default;
#define LLSINGLETON_EMPTY_CTOR_C11(DERIVED_CLASS) \
/* LLSINGLETON() is carefully implemented to permit exactly this */ \
LLSINGLETON_C11(DERIVED_CLASS) {}
LLSINGLETON_C11(DERIVED_CLASS) = default;
#endif
......@@ -41,7 +41,7 @@
#include <iosfwd>
#include <string>
class LL_COMMON_API LLOSInfo : public LLSingleton<LLOSInfo>
class LL_COMMON_API LLOSInfo final : public LLSingleton<LLOSInfo>
{
LLSINGLETON(LLOSInfo);
public:
......
......@@ -49,7 +49,7 @@ namespace LLCore
/// its final status unchanged and *this* request will complete
/// with an HE_HANDLE_NOT_FOUND error status.
class HttpOpCancel : public HttpOperation
class HttpOpCancel final : public HttpOperation
{
public:
/// @param handle Handle of previously-issued request to
......
......@@ -217,7 +217,7 @@ class HttpOperation : private boost::noncopyable,
/// request *does* generate a reply on the response
/// queue, if requested.
class HttpOpStop : public HttpOperation
class HttpOpStop final : public HttpOperation
{
public:
HttpOpStop();
......@@ -239,7 +239,7 @@ class HttpOpStop : public HttpOperation
/// the servicing thread which bounces a reply back to the
/// caller without any further delay.
class HttpOpNull : public HttpOperation
class HttpOpNull final : public HttpOperation
{
public:
HttpOpNull();
......@@ -259,7 +259,7 @@ class HttpOpNull : public HttpOperation
/// HttpOpSpin is a test-only request that puts the worker
/// thread into a cpu spin. Used for unit tests and cleanup
/// evaluation. You do not want to use this in production.
class HttpOpSpin : public HttpOperation
class HttpOpSpin final : public HttpOperation
{
public:
// 0 does a hard spin in the operation
......
......@@ -63,7 +63,7 @@ class BufferArray;
/// the information needed to make a working request which can
/// then be enqueued to a request queue.
///
class HttpOpRequest : public HttpOperation
class HttpOpRequest final : public HttpOperation
{
public:
typedef boost::shared_ptr<HttpOpRequest> ptr_t;
......
......@@ -50,7 +50,7 @@ namespace LLCore
/// *TODO: Can't return values to caller yet. Need to do
/// something better with HttpResponse and visitNotifier().
///
class HttpOpSetGet : public HttpOperation
class HttpOpSetGet final : public HttpOperation
{
public:
typedef boost::shared_ptr<HttpOpSetGet> ptr_t;
......
......@@ -46,7 +46,7 @@ namespace LLCore
/// *NOTE: This will very likely be removed in the near future
/// when priority is removed from the library.
class HttpOpSetPriority : public HttpOperation
class HttpOpSetPriority final : public HttpOperation
{
public:
HttpOpSetPriority(HttpHandle handle, HttpRequest::priority_t priority);
......
......@@ -66,7 +66,7 @@ typedef std::priority_queue<HttpOpRequest::ptr_t,
#endif // LLCORE_HTTP_READY_QUEUE_IGNORES_PRIORITY
class HttpReadyQueue : public HttpReadyQueueBase
class HttpReadyQueue final : public HttpReadyQueueBase
{
public:
HttpReadyQueue()
......
......@@ -47,7 +47,7 @@ class HttpOperation;
/// requests from all HttpRequest instances into the
/// singleton HttpService instance.
class HttpRequestQueue : public LLCoreInt::RefCounted
class HttpRequestQueue final : public LLCoreInt::RefCounted
{
protected:
/// Caller acquires a Refcount on construction
......
......@@ -39,7 +39,7 @@
namespace LLCoreInt
{
class HttpThread : public RefCounted
class HttpThread final : public RefCounted
{
private:
HttpThread(); // Not defined
......
......@@ -64,7 +64,7 @@ class BufferArrayStreamBuf;
/// Allocation: Refcounted, heap only. Caller of the constructor
/// is given a single refcount.
///
class BufferArray : public LLCoreInt::RefCounted
class BufferArray final : public LLCoreInt::RefCounted
{
public:
// BufferArrayStreamBuf has intimate knowledge of this
......
......@@ -82,7 +82,7 @@ namespace LLCore
/// sometime.
///
class BufferArrayStreamBuf : public std::streambuf
class BufferArrayStreamBuf final : public std::streambuf
{
public:
/// Constructor increments the reference count on the
......@@ -131,7 +131,7 @@ class BufferArrayStreamBuf : public std::streambuf
/// can be applied to a BufferArray. Very convenient for LLSD
/// serialization and parsing as well.
class BufferArrayStream : public std::iostream
class BufferArrayStream final : public std::iostream
{
public:
/// Constructor increments the reference count on the
......
......@@ -57,7 +57,7 @@ class HttpHeaders;
/// Allocation: Refcounted, heap only. Caller of the constructor
/// is given a refcount.
///
class HttpResponse : public LLCoreInt::RefCounted
class HttpResponse final : public LLCoreInt::RefCounted
{
public:
HttpResponse();
......
......@@ -35,7 +35,7 @@
namespace LLCore
{
class HTTPStats : public LLSingleton<HTTPStats>
class HTTPStats final : public LLSingleton<HTTPStats>
{
LLSINGLETON(HTTPStats);
virtual ~HTTPStats();
......
......@@ -90,7 +90,7 @@ typedef enum e_image_codec
//============================================================================
// library initialization class
class LLImage : public LLParamSingleton<LLImage>
class LLImage final : public LLParamSingleton<LLImage>
{
LLSINGLETON(LLImage, bool use_new_byte_range = false, S32 minimal_reverse_byte_range_percent = 75);
~LLImage();
......@@ -180,7 +180,7 @@ class LLImageBase
};
// Raw representation of an image (used for textures, and other uncompressed formats
class LLImageRaw : public LLImageBase
class LLImageRaw final : public LLImageBase
{
protected:
/*virtual*/ ~LLImageRaw();
......
......@@ -31,7 +31,7 @@
// This class compresses and decompressed BMP files
class LLImageBMP : public LLImageFormatted
class LLImageBMP final : public LLImageFormatted
{
protected:
virtual ~LLImageBMP();
......
......@@ -31,7 +31,7 @@
// This class decodes and encodes LL DXT files (which may unclude uncompressed RGB or RGBA mipped data)
class LLImageDXT : public LLImageFormatted
class LLImageDXT final : public LLImageFormatted
{
public:
enum EFileFormat
......
......@@ -38,7 +38,7 @@ const F32 DEFAULT_COMPRESSION_RATE = 1.f/8.f;
class LLImageJ2CImpl;
class LLImageCompressionTester ;
class LLImageJ2C : public LLImageFormatted
class LLImageJ2C final : public LLImageFormatted
{
protected:
virtual ~LLImageJ2C();
......@@ -137,7 +137,7 @@ class LLImageJ2CImpl
// Tracks the image compression / decompression data,
// records and outputs them to the log file.
//
class LLImageCompressionTester : public LLMetricPerformanceTesterBasic
class LLImageCompressionTester final : public LLMetricPerformanceTesterBasic
{
public:
LLImageCompressionTester();
......
......@@ -42,7 +42,7 @@ extern "C" {
#endif
}
class LLImageJPEG : public LLImageFormatted
class LLImageJPEG final : public LLImageFormatted
{
protected:
virtual ~LLImageJPEG();
......
......@@ -29,7 +29,7 @@
#include "stdtypes.h"
#include "llimage.h"
class LLImagePNG : public LLImageFormatted
class LLImagePNG final : public LLImageFormatted
{
protected:
~LLImagePNG();
......
......@@ -31,7 +31,7 @@
// This class compresses and decompressed TGA (targa) files
class LLImageTGA : public LLImageFormatted
class LLImageTGA final : public LLImageFormatted
{
protected:
virtual ~LLImageTGA();
......
......@@ -29,7 +29,7 @@
#include "llimagej2c.h"
class LLImageJ2COJ : public LLImageJ2CImpl
class LLImageJ2COJ final : public LLImageJ2CImpl
{
public:
LLImageJ2COJ();
......
......@@ -48,7 +48,7 @@ struct FolderEntry : public LLDictionaryEntry
const bool mIsProtected;
};
class LLFolderDictionary : public LLSingleton<LLFolderDictionary>,
class LLFolderDictionary final : public LLSingleton<LLFolderDictionary>,
public LLDictionary<LLFolderType::EType, FolderEntry>
{
LLSINGLETON(LLFolderDictionary);
......
......@@ -39,7 +39,7 @@ namespace {
}
//=========================================================================
struct SettingsEntry : public LLDictionaryEntry
struct SettingsEntry final : public LLDictionaryEntry
{
SettingsEntry(const std::string &name,
const std::string& default_new_name,
......@@ -61,7 +61,7 @@ struct SettingsEntry : public LLDictionaryEntry
LLInventoryType::EIconName mIconName;
};
class LLSettingsDictionary : public LLSingleton<LLSettingsDictionary>,
class LLSettingsDictionary final : public LLSingleton<LLSettingsDictionary>,
public LLDictionary<LLSettingsType::type_e, SettingsEntry>
{
LLSINGLETON(LLSettingsDictionary);
......
......@@ -36,7 +36,7 @@ static const std::string empty_string;
///----------------------------------------------------------------------------
/// Class LLInventoryType
///----------------------------------------------------------------------------
struct InventoryEntry : public LLDictionaryEntry
struct InventoryEntry final : public LLDictionaryEntry
{
InventoryEntry(const std::string &name, // unlike asset type names, not limited to 8 characters; need not match asset type names
const std::string &human_name, // for decoding to human readable form; put any and as many printable characters you want in each one.
......@@ -61,7 +61,7 @@ struct InventoryEntry : public LLDictionaryEntry
asset_vec_t mAssetTypes;
};
class LLInventoryDictionary : public LLSingleton<LLInventoryDictionary>,
class LLInventoryDictionary final : public LLSingleton<LLInventoryDictionary>,
public LLDictionary<LLInventoryType::EType, InventoryEntry>
{
LLSINGLETON(LLInventoryDictionary);
......
......@@ -39,7 +39,7 @@
class LLSD;
class LLAvatarNameCache : public LLSingleton<LLAvatarNameCache>
class LLAvatarNameCache final : public LLSingleton<LLAvatarNameCache>
{
LLSINGLETON(LLAvatarNameCache);
~LLAvatarNameCache();
......
......@@ -36,7 +36,7 @@
class LLCoprocedurePool;
class LLCoprocedureManager : public LLSingleton < LLCoprocedureManager >
class LLCoprocedureManager final : public LLSingleton < LLCoprocedureManager >
{
LLSINGLETON(LLCoprocedureManager);
virtual ~LLCoprocedureManager();
......
......@@ -41,7 +41,7 @@ class LLSD;
class LLUUID;
class LLExperienceCache: public LLSingleton < LLExperienceCache >
class LLExperienceCache final : public LLSingleton < LLExperienceCache >
{
LLSINGLETON(LLExperienceCache);
......
......@@ -217,7 +217,7 @@ enum LLSocks5AuthType
* *TODO$: This should be moved into the LLCore::Http space.
*
*/
class LLProxy: public LLSingleton<LLProxy>
class LLProxy final : public LLSingleton<LLProxy>
{
/*###########################################################################################
METHODS THAT DO NOT LOCK mProxyMutex!
......
......@@ -69,7 +69,7 @@ const U32 MESSAGE_NUMBER_OF_HASH_BUCKETS = 8192;
const S32 MESSAGE_MAX_PER_FRAME = 400;
class LLMessageStringTable : public LLSingleton<LLMessageStringTable>
class LLMessageStringTable final : public LLSingleton<LLMessageStringTable>
{
LLSINGLETON(LLMessageStringTable);
~LLMessageStringTable();
......
......@@ -372,11 +372,11 @@ void LLPluginClassMedia::setSizeInternal(void)
if (!gHiDPISupport)
#endif
{
if (mRequestedMediaWidth > 2048)
mRequestedMediaWidth = 2048;
if (mRequestedMediaWidth > 8192)
mRequestedMediaWidth = 8192;
if (mRequestedMediaHeight > 2048)
mRequestedMediaHeight = 2048;
if (mRequestedMediaHeight > 8192)
mRequestedMediaHeight = 8192;
}
}
......
......@@ -121,7 +121,7 @@ inline void gl_rect_2d_offset_local( const LLRect& rect, S32 pixel_offset, BOOL
class LLImageProviderInterface;
class LLRender2D : public LLParamSingleton<LLRender2D>
class LLRender2D final : public LLParamSingleton<LLRender2D>
{
LLSINGLETON(LLRender2D, LLImageProviderInterface* image_provider);
LOG_CLASS(LLRender2D);
......
......@@ -46,7 +46,7 @@
// In all other cases, the text and the UUIDs are very much independent.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class LLClipboard : public LLSingleton<LLClipboard>
class LLClipboard final : public LLSingleton<LLClipboard>
{
LLSINGLETON(LLClipboard);
~LLClipboard();
......
......@@ -170,7 +170,7 @@ class LLCommand
};
class LLCommandManager
class LLCommandManager final
: public LLSingleton<LLCommandManager>
{
LLSINGLETON(LLCommandManager);
......
......@@ -51,7 +51,7 @@
*/
template <typename FUNCTOR_TYPE>
class LLFunctorRegistry : public LLSingleton<LLFunctorRegistry<FUNCTOR_TYPE> >
class LLFunctorRegistry final : public LLSingleton<LLFunctorRegistry<FUNCTOR_TYPE> >
{
LLSINGLETON(LLFunctorRegistry);
LOG_CLASS(LLFunctorRegistry);
......
......@@ -870,7 +870,7 @@ class LLNotificationsInterface
LLNotificationFunctorRegistry::ResponseFunctor functor) = 0;
};
class LLNotifications :
class LLNotifications final :
public LLNotificationsInterface,
public LLSingleton<LLNotifications>,
public LLNotificationChannelBase
......
......@@ -265,7 +265,7 @@ typedef boost::function<LLPanel* (void)> LLPanelClassCreatorFunc;
// local static instance for registering a particular panel class
class LLRegisterPanelClass
class LLRegisterPanelClass final
: public LLSingleton< LLRegisterPanelClass >
{
LLSINGLETON_EMPTY_CTOR(LLRegisterPanelClass);
......
......@@ -40,7 +40,7 @@ enum LLLOCALE_ID
LLLOCALE_COUNT // Number of values in this enum. Keep at end.
};
class LLResMgr : public LLSingleton<LLResMgr>
class LLResMgr final : public LLSingleton<LLResMgr>
{
LLSINGLETON(LLResMgr);
......
......@@ -34,7 +34,7 @@
class Hunspell;
class LLSpellChecker : public LLSingleton<LLSpellChecker>
class LLSpellChecker final : public LLSingleton<LLSpellChecker>
{
LLSINGLETON(LLSpellChecker);
~LLSpellChecker();
......
......@@ -35,7 +35,7 @@ class LLUUID;
class LLVector3d;
class LLColor4;
class LLTextParser : public LLSingleton<LLTextParser>
class LLTextParser final : public LLSingleton<LLTextParser>
{
LLSINGLETON(LLTextParser);
......
......@@ -127,7 +127,7 @@ class LLInspector : public LLToolTip
{};
};
class LLToolTipMgr : public LLSingleton<LLToolTipMgr>
class LLToolTipMgr final : public LLSingleton<LLToolTipMgr>
{
LLSINGLETON(LLToolTipMgr);
LOG_CLASS(LLToolTipMgr);
......
......@@ -108,7 +108,7 @@ class LLImageProviderInterface;
typedef void (*LLUIAudioCallback)(const LLUUID& uuid);
class LLUI : public LLParamSingleton<LLUI>
class LLUI final : public LLParamSingleton<LLUI>
{
public:
typedef std::map<std::string, LLControlGroup*> settings_map_t;
......
......@@ -36,7 +36,7 @@
class LLUIColor;
class LLUIColorTable : public LLSingleton<LLUIColorTable>
class LLUIColorTable final : public LLSingleton<LLUIColorTable>
{
LLSINGLETON_EMPTY_CTOR(LLUIColorTable);
LOG_CLASS(LLUIColorTable);
......
......@@ -258,7 +258,7 @@ class LLUICtrl
LLUICtrl* findRootMostFocusRoot();
class LLTextInputFilter : public LLQueryFilter, public LLSingleton<LLTextInputFilter>
class LLTextInputFilter final : public LLQueryFilter, public LLSingleton<LLTextInputFilter>
{
LLSINGLETON_EMPTY_CTOR(LLTextInputFilter);
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const
......@@ -270,12 +270,12 @@ class LLUICtrl
template <typename F, typename DERIVED> class CallbackRegistry : public LLRegistrySingleton<std::string, F, DERIVED >
{};
class CommitCallbackRegistry : public CallbackRegistry<commit_callback_t, CommitCallbackRegistry>
class CommitCallbackRegistry final : public CallbackRegistry<commit_callback_t, CommitCallbackRegistry>
{
LLSINGLETON_EMPTY_CTOR(CommitCallbackRegistry);
};
// the enable callback registry is also used for visiblity callbacks
class EnableCallbackRegistry : public CallbackRegistry<enable_callback_t, EnableCallbackRegistry>
class EnableCallbackRegistry final : public CallbackRegistry<enable_callback_t, EnableCallbackRegistry>
{
LLSINGLETON_EMPTY_CTOR(EnableCallbackRegistry);
};
......
......@@ -57,13 +57,13 @@ class LLChildRegistry : public LLRegistrySingleton<std::string, LLWidgetCreatorF
LLChildRegistry() {}
};
class LLDefaultChildRegistry : public LLChildRegistry<LLDefaultChildRegistry>
class LLDefaultChildRegistry final : public LLChildRegistry<LLDefaultChildRegistry>
{
LLSINGLETON_EMPTY_CTOR(LLDefaultChildRegistry);
};
// lookup widget name by type
class LLWidgetNameRegistry
class LLWidgetNameRegistry final
: public LLRegistrySingleton<const std::type_info*, std::string, LLWidgetNameRegistry>
{
LLSINGLETON_EMPTY_CTOR(LLWidgetNameRegistry);
......@@ -87,7 +87,7 @@ extern LLTrace::BlockTimerStatHandle FTM_INIT_FROM_PARAMS;
extern template class LLUICtrlFactory* LLSingleton<class LLUICtrlFactory>::getInstance();
#endif
class LLUICtrlFactory : public LLSingleton<LLUICtrlFactory>
class LLUICtrlFactory final : public LLSingleton<LLUICtrlFactory>
{
LLSINGLETON(LLUICtrlFactory);
~LLUICtrlFactory();
......
......@@ -60,7 +60,7 @@ void LLUrlRegistryNullCallback(const std::string &url,
/// As such, you can provide a callback method that will get invoked
/// when a new label is available for one of your matched Urls.
///
class LLUrlRegistry : public LLSingleton<LLUrlRegistry>
class LLUrlRegistry final : public LLSingleton<LLUrlRegistry>
{
LLSINGLETON(LLUrlRegistry);
~LLUrlRegistry();
......
......@@ -1940,7 +1940,7 @@ class CompareByTabOrder
const S32 mDefaultTabGroup;
};
class SortByTabOrder : public LLQuerySorter, public LLSingleton<SortByTabOrder>
class SortByTabOrder final : public LLQuerySorter, public LLSingleton<SortByTabOrder>
{
LLSINGLETON_EMPTY_CTOR(SortByTabOrder);
/*virtual*/ void sort(LLView * parent, LLView::child_list_t &children) const
......@@ -1964,7 +1964,7 @@ const LLViewQuery & LLView::getTabOrderQuery()
}
// This class is only used internally by getFocusRootsQuery below.
class LLFocusRootsFilter : public LLQueryFilter, public LLSingleton<LLFocusRootsFilter>
class LLFocusRootsFilter final : public LLQueryFilter, public LLSingleton<LLFocusRootsFilter>
{
LLSINGLETON_EMPTY_CTOR(LLFocusRootsFilter);
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const
......
......@@ -44,7 +44,7 @@
#include "llsingleton.h" // includes llerror which we need here so we can skip the include here
class LLViewerEventRecorder : public LLSingleton<LLViewerEventRecorder>
class LLViewerEventRecorder final : public LLSingleton<LLViewerEventRecorder>
{
LLSINGLETON(LLViewerEventRecorder);
~LLViewerEventRecorder();
......
......@@ -52,37 +52,37 @@ class LLQuerySorter
virtual void sort(LLView * parent, viewList_t &children) const;
};
class LLLeavesFilter : public LLQueryFilter, public LLSingleton<LLLeavesFilter>
class LLLeavesFilter final : public LLQueryFilter, public LLSingleton<LLLeavesFilter>
{
LLSINGLETON_EMPTY_CTOR(LLLeavesFilter);
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
};
class LLRootsFilter : public LLQueryFilter, public LLSingleton<LLRootsFilter>
class LLRootsFilter final : public LLQueryFilter, public LLSingleton<LLRootsFilter>
{
LLSINGLETON_EMPTY_CTOR(LLRootsFilter);
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
};
class LLVisibleFilter : public LLQueryFilter, public LLSingleton<LLVisibleFilter>
class LLVisibleFilter final : public LLQueryFilter, public LLSingleton<LLVisibleFilter>
{
LLSINGLETON_EMPTY_CTOR(LLVisibleFilter);
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
};
class LLEnabledFilter : public LLQueryFilter, public LLSingleton<LLEnabledFilter>
class LLEnabledFilter final : public LLQueryFilter, public LLSingleton<LLEnabledFilter>
{
LLSINGLETON_EMPTY_CTOR(LLEnabledFilter);
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
};
class LLTabStopFilter : public LLQueryFilter, public LLSingleton<LLTabStopFilter>
class LLTabStopFilter final : public LLQueryFilter, public LLSingleton<LLTabStopFilter>
{
LLSINGLETON_EMPTY_CTOR(LLTabStopFilter);
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
};
class LLCtrlFilter : public LLQueryFilter, public LLSingleton<LLCtrlFilter>
class LLCtrlFilter final : public LLQueryFilter, public LLSingleton<LLCtrlFilter>
{
LLSINGLETON_EMPTY_CTOR(LLCtrlFilter);
/*virtual*/ filterResult_t operator() (const LLView* const view, const viewList_t & children) const;
......
......@@ -39,7 +39,7 @@
class LLView;
// lookup widget type by name
class LLWidgetTypeRegistry
class LLWidgetTypeRegistry final
: public LLRegistrySingleton<std::string, const std::type_info*, LLWidgetTypeRegistry>
{
LLSINGLETON_EMPTY_CTOR(LLWidgetTypeRegistry);
......
This diff is collapsed.
......@@ -34,9 +34,49 @@
#include "llwindowcallbacks.h"
#include "lldragdropwin32.h"
// Hack for async host by name
#define LL_WM_HOST_RESOLVED (WM_APP + 1)
typedef void (*LLW32MsgCallback)(const MSG &msg);
#ifndef DPI_ENUMS_DECLARED
typedef enum PROCESS_DPI_AWARENESS {
PROCESS_DPI_UNAWARE = 0,
PROCESS_SYSTEM_DPI_AWARE = 1,
PROCESS_PER_MONITOR_DPI_AWARE = 2
} PROCESS_DPI_AWARENESS;
typedef enum MONITOR_DPI_TYPE {
MDT_EFFECTIVE_DPI = 0,
MDT_ANGULAR_DPI = 1,
MDT_RAW_DPI = 2,
MDT_DEFAULT = MDT_EFFECTIVE_DPI
} MONITOR_DPI_TYPE;
#endif
typedef HRESULT(WINAPI* SetProcessDpiAwareness_t)(_In_ PROCESS_DPI_AWARENESS value);
typedef HRESULT(WINAPI* GetProcessDpiAwareness_t)(
_In_ HANDLE hprocess,
_Out_ PROCESS_DPI_AWARENESS *value);
typedef HRESULT(WINAPI* GetDpiForMonitor_t)(
_In_ HMONITOR hmonitor,
_In_ MONITOR_DPI_TYPE dpiType,
_Out_ UINT *dpiX,
_Out_ UINT *dpiY);
typedef UINT(WINAPI* GetDpiForWindow_t)(_In_ HWND hwnd);
typedef UINT(WINAPI* GetDpiForSystem_t)(VOID);
typedef BOOL(WINAPI* AdjustWindowRectExForDpi_t)(
_Inout_ LPRECT lpRect,
_In_ DWORD dwStyle,
_In_ BOOL bMenu,
_In_ DWORD dwExStyle,
_In_ UINT dpi);
typedef int(WINAPI* GetSystemMetricsForDpi_t)(
_In_ int nIndex,
_In_ UINT dpi);
class LLWindowWin32 : public LLWindow
{
......@@ -116,7 +156,6 @@ class LLWindowWin32 : public LLWindow
LLWindowCallbacks::DragNDropResult completeDragNDropRequest( const LLCoordGL gl_coord, const MASK mask, LLWindowCallbacks::DragNDropAction action, const std::string url );
static std::vector<std::string> getDynamicFallbackFontList();
static void setDPIAwareness();
protected:
LLWindowWin32(LLWindowCallbacks* callbacks,
const std::string& title, const std::string& name, int x, int y, int width, int height, U32 flags,
......@@ -217,6 +256,18 @@ class LLWindowWin32 : public LLWindow
U32 mRawLParam;
BOOL mMouseVanish;
private:
HMODULE mOpenGL32DLL;
HMODULE mUser32DLL;
HMODULE mShellcoDLL;
SetProcessDpiAwareness_t pSetProcessDpiAwareness;
GetProcessDpiAwareness_t pGetProcessDpiAwareness;
GetDpiForMonitor_t pGetDpiForMonitor;
GetDpiForWindow_t pGetDpiForWindow;
GetDpiForSystem_t pGetDpiForSystem;
AdjustWindowRectExForDpi_t pAdjustWindowRectExForDpi;
GetSystemMetricsForDpi_t pGetSystemMetricsForDpi;
friend class LLWindowManager;
};
......@@ -242,11 +293,6 @@ class LLSplashScreenWin32 : public LLSplashScreen
#endif
};
extern LLW32MsgCallback gAsyncMsgCallback;
extern LPWSTR gIconResource;
static void handleMessage( const MSG& msg );
S32 OSMessageBoxWin32(const std::string& text, const std::string& caption, U32 type);
#endif //LL_LLWINDOWWIN32_H
......@@ -30,7 +30,7 @@
#include "llsingleton.h"
#include <windows.h>
#include <mmeapi.h>
class VolumeCatcherImpl : public LLSingleton<VolumeCatcherImpl>
class VolumeCatcherImpl final : public LLSingleton<VolumeCatcherImpl>
{
LLSINGLETON(VolumeCatcherImpl);
// This is a singleton class -- both callers and the component implementation should use getInstance() to find the instance.
......
......@@ -56,7 +56,7 @@ class LLAccountingCostObserver
LLUUID mTransactionID;
};
//===============================================================================
class LLAccountingCostManager : public LLSingleton<LLAccountingCostManager>
class LLAccountingCostManager final : public LLSingleton<LLAccountingCostManager>
{
LLSINGLETON(LLAccountingCostManager);
......
......@@ -63,7 +63,7 @@ class LLAgentBenefits
bool m_initalized;
};
class LLAgentBenefitsMgr: public LLSingleton<LLAgentBenefitsMgr>
class LLAgentBenefitsMgr final : public LLSingleton<LLAgentBenefitsMgr>
{
LLSINGLETON(LLAgentBenefitsMgr);
~LLAgentBenefitsMgr();
......
......@@ -34,7 +34,7 @@ struct LLAvatarPicks;
/**
* Class that provides information about Agent Picks
*/
class LLAgentPicksInfo : public LLSingleton<LLAgentPicksInfo>
class LLAgentPicksInfo final : public LLSingleton<LLAgentPicksInfo>
{
LLSINGLETON(LLAgentPicksInfo);
virtual ~LLAgentPicksInfo();
......
......@@ -40,7 +40,7 @@ class LLWearableHoldingPattern;
class LLInventoryCallback;
class LLOutfitUnLockTimer;
class LLAppearanceMgr: public LLSingleton<LLAppearanceMgr>
class LLAppearanceMgr final : public LLSingleton<LLAppearanceMgr>
{
LLSINGLETON(LLAppearanceMgr);
~LLAppearanceMgr();
......
......@@ -396,7 +396,7 @@ const char* const VIEWER_WINDOW_CLASSNAME = "Alchemy";
* Tasks added to this list will be executed in the next LLAppViewer::idle() iteration.
* All tasks are executed only once.
*/
class LLDeferredTaskList: public LLSingleton<LLDeferredTaskList>
class LLDeferredTaskList final : public LLSingleton<LLDeferredTaskList>
{
LLSINGLETON_EMPTY_CTOR(LLDeferredTaskList);
LOG_CLASS(LLDeferredTaskList);
......
......@@ -324,8 +324,6 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
DWORD heap_enable_lfh_error[MAX_HEAPS];
S32 num_heaps = 0;
LLWindowWin32::setDPIAwareness();
#if WINDOWS_CRT_MEM_CHECKS && !INCLUDE_VLD
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); // dump memory leaks on exit
#elif 0
......@@ -353,9 +351,6 @@ int APIENTRY WINMAIN(HINSTANCE hInstance,
#endif
#endif
// *FIX: global
gIconResource = MAKEINTRESOURCE(IDI_LL_ICON);
LLAppViewerWin32* viewer_app_ptr = new LLAppViewerWin32(ll_convert_wide_to_string(pCmdLine).c_str());
gOldTerminateHandler = std::set_terminate(exceptionTerminateHandler);
......
......@@ -60,7 +60,7 @@ class LLViewerInventoryItem;
// To handle attachments that never arrive, we forget about requests
// that exceed a timeout value.
//--------------------------------------------------------------------------------
class LLAttachmentsMgr: public LLSingleton<LLAttachmentsMgr>
class LLAttachmentsMgr final : public LLSingleton<LLAttachmentsMgr>
{
LLSINGLETON(LLAttachmentsMgr);
virtual ~LLAttachmentsMgr();
......
......@@ -189,7 +189,7 @@ class LLAutoReplaceSettings
* See the autoreplaceCallback method for how to add autoreplace functionality
* to a text entry tool.
*/
class LLAutoReplace : public LLSingleton<LLAutoReplace>
class LLAutoReplace final : public LLSingleton<LLAutoReplace>
{
LLSINGLETON(LLAutoReplace);
public:
......
......@@ -814,7 +814,7 @@ namespace action_give_inventory
}
}
struct LLShareInfo : public LLSingleton<LLShareInfo>
struct LLShareInfo final : public LLSingleton<LLShareInfo>
{
LLSINGLETON_EMPTY_CTOR(LLShareInfo);
public:
......
......@@ -35,7 +35,7 @@
class LLAvatarName;
class LLAvatarIconIDCache: public LLSingleton<LLAvatarIconIDCache>
class LLAvatarIconIDCache final : public LLSingleton<LLAvatarIconIDCache>
{
LLSINGLETON(LLAvatarIconIDCache);
......
......@@ -196,7 +196,7 @@ class LLAvatarPropertiesObserver
virtual void processProperties(void* data, EAvatarProcessorType type) = 0;
};
class LLAvatarPropertiesProcessor
class LLAvatarPropertiesProcessor final
: public LLSingleton<LLAvatarPropertiesProcessor>
{
LLSINGLETON(LLAvatarPropertiesProcessor);
......
......@@ -36,7 +36,7 @@ class LLViewerRegion;
// Class to gather avatar rendering information
// that is sent to or fetched from regions.
class LLAvatarRenderInfoAccountant : public LLSingleton<LLAvatarRenderInfoAccountant>
class LLAvatarRenderInfoAccountant final : public LLSingleton<LLAvatarRenderInfoAccountant>
{
LLSINGLETON(LLAvatarRenderInfoAccountant);
~LLAvatarRenderInfoAccountant();
......
......@@ -65,7 +65,7 @@ typedef std::list<LLHUDComplexity> hud_complexity_list_t;
// Class to notify user about drastic changes in agent's render weights or if other agents
// reported that user's agent is too 'heavy' for their settings
class LLAvatarRenderNotifier : public LLSingleton<LLAvatarRenderNotifier>
class LLAvatarRenderNotifier final : public LLSingleton<LLAvatarRenderNotifier>
{
LLSINGLETON(LLAvatarRenderNotifier);
......@@ -112,7 +112,7 @@ class LLAvatarRenderNotifier : public LLSingleton<LLAvatarRenderNotifier>
};
// Class to notify user about heavy set of HUD
class LLHUDRenderNotifier : public LLSingleton<LLHUDRenderNotifier>
class LLHUDRenderNotifier final : public LLSingleton<LLHUDRenderNotifier>
{
LLSINGLETON(LLHUDRenderNotifier);
~LLHUDRenderNotifier();
......
......@@ -41,7 +41,7 @@ namespace LLNotificationsUI
* Manager for screen channels.
* Responsible for instantiating and retrieving screen channels.
*/
class LLChannelManager : public LLSingleton<LLChannelManager>
class LLChannelManager final : public LLSingleton<LLChannelManager>
{
LLSINGLETON(LLChannelManager);
virtual ~LLChannelManager();
......
......@@ -34,7 +34,7 @@ class LLIMChiclet;
class LLLayoutPanel;
class LLLayoutStack;
class LLChicletBar
class LLChicletBar final
: public LLSingleton<LLChicletBar>
, public LLPanel
{
......
......@@ -100,7 +100,7 @@ typedef std::map<LLUUID, S32> signaled_animation_map_t;
typedef std::map<LLUUID, signaled_animation_map_t> object_signaled_animation_map_t;
// Stores information about previously requested animations, by object id.
class LLObjectSignaledAnimationMap: public LLSingleton<LLObjectSignaledAnimationMap>
class LLObjectSignaledAnimationMap final : public LLSingleton<LLObjectSignaledAnimationMap>
{
LLSINGLETON_EMPTY_CTOR(LLObjectSignaledAnimationMap);
......
......@@ -107,7 +107,7 @@ class LLConversation
* To distinguish two conversations with the same sessionID it's also needed to compare their creation date.
*/
class LLConversationLog : public LLSingleton<LLConversationLog>, LLIMSessionObserver
class LLConversationLog final : public LLSingleton<LLConversationLog>, LLIMSessionObserver
{
LLSINGLETON(LLConversationLog);
public:
......
......@@ -52,7 +52,7 @@ typedef enum e_debug_var_type
VAR_TYPE_COUNT
} EDebugVarType;
class LLDebugVarMessageBox : public LLFloater
class LLDebugVarMessageBox final : public LLFloater
{
protected:
LLDebugVarMessageBox(const std::string& title, EDebugVarType var_type, void *var);
......
......@@ -31,7 +31,7 @@
struct SoundData;
class LLDeferredSounds : public LLSingleton<LLDeferredSounds>
class LLDeferredSounds final : public LLSingleton<LLDeferredSounds>
{
LLSINGLETON_EMPTY_CTOR(LLDeferredSounds);
std::vector<SoundData> soundVector;
......
......@@ -35,7 +35,7 @@
class LLSD;
class LLDoNotDisturbNotificationStorageTimer : public LLEventTimer
class LLDoNotDisturbNotificationStorageTimer final : public LLEventTimer
{
public:
LLDoNotDisturbNotificationStorageTimer();
......@@ -45,7 +45,7 @@ class LLDoNotDisturbNotificationStorageTimer : public LLEventTimer
BOOL tick();
};
class LLDoNotDisturbNotificationStorage : public LLParamSingleton<LLDoNotDisturbNotificationStorage>, public LLNotificationStorage
class LLDoNotDisturbNotificationStorage final : public LLParamSingleton<LLDoNotDisturbNotificationStorage>, public LLNotificationStorage
{
LLSINGLETON(LLDoNotDisturbNotificationStorage);
~LLDoNotDisturbNotificationStorage();
......
......@@ -36,7 +36,7 @@ class LLMessageSystem;
/**
* Contains estate info, notifies interested parties of its changes.