summaryrefslogtreecommitdiff
path: root/indra/newview/llimview.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.
2016-08-30Automated merge with ssh://bitbucket.org/lindenlab/viewer-releaseNat Goodspeed
2016-04-04merge with 4.0.3-releaseOz Linden
2015-11-10remove execute permission from many files that should not have itOz Linden
2015-05-27MAINT-5232: Extract LLInitClass, LLDestroyClass from llui/llui.hNat Goodspeed
to a new llcommon/llinitdestroyclass.h. This mechanism is so general -- but has so many related moving parts -- that (a) it deserves to be in a header file all its own, instead of conflated with llui.h, and (b) it should be in llcommon where anyone can use it. It has no dependencies whatsoever on llui or anything viewer-specific. In this very changeset we changed one #include "llui.h" whose comment admits that it was only dragged in for LLDestroyClass.
2015-04-29Convert IM invitation to coroutines.Rider Linden
2014-05-07Merge downstream version 3.7.8 codesimon
2014-03-14MAINT-3822 FIXED Show busy mode message only once for each im session.maxim@mnikolenko
2014-02-26fixed mispelling of generateOutgoingAdHocHashRichard Linden
2013-07-30Summer cleaning - removed a lot of llcommon dependencies to speed up build timesRichard Linden
consolidated most indra-specific constants in llcommon under indra_constants.h fixed issues with operations on mixed unit types (implicit and explicit) made LL_INFOS() style macros variadic in order to subsume other logging methods such as ll_infos added optional tag output to error recorders
2013-06-05merge with viewer-releaseRichard Linden
2013-05-05Spring cleaning: removed unused .cpp and.h files, and cleaned up header ↵Richard Linden
dependencies
2013-03-29Update Mac and Windows breakpad builds to latestGraham Madarasz
2013-01-24CHUI-578 FIXED Move preferences for conversation logs/transcripts to chat tabmaksymsproductengine
2012-12-17Merge with viewer-chuiMerov Linden
2012-12-17CHUI-580 : WIP : Protect callback connections passed to ↵Merov Linden
LLAvatarNameCache::get() where necessary
2012-12-13Fixed path for correct assembly of the projectAlexanderP ProductEngine
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-10-22CHUI-433: Implemented an alternate solution to the problem. The original ↵Gilbert Gonzales
solution was ambiguous and incomplete and also preserved an existing hack. The new solution removes a hack/deprecated code (setActiveSession/getActiveSession functions). Basically, a toast message is not displayed if the user already has the conversation in focus. When the conversation floater loses focus toasts message will be displayed for that conversation.
2012-10-15CHUI-380: Final commit for this issue. After code review changed some method ↵Gilbert Gonzales
names to be more accurate. Also using dynamic_cast instead of static_cast for safety.
2012-10-12CHUI-380: (In progress) Refactoring needed to fix focusing issues when ↵Gilbert Gonzales
selecting an existing conversation item. This commit resolves re-introducing bug CHUI-289. Will code review and cleanup code in next commit.
2012-09-18CHUI-339 FIXED (2 entries shown in conversation log for ad hoc conference ↵Paul ProductEngine
for user that starts the conference)
2012-07-27CHUI-151 FIXED (Implement conversation log)Paul ProductEngine
A brief explanation of what have been implemented. More information can be found in comments. 1. Created conversation history viewer (llfloaterconversationpreview) 2. Created LLConversation and LLConversationLog classes which represent and hold data of conversations (llconversationlog) 3. Created LLConversationLogList and LLConversationLogListItem which are the visual representation of LLConversationLog and LLConversation respectively 4. Created LLFloaterConversationLog - which holds and displays LLConversationLogList
2012-06-20CHUI-125 FIXED if a call is accept then open im-session's floaterAlexanderP ProductEngine
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-05-17CHUI-105 ADD. FIX Implement changes to all open conversations and nearby chatAlexanderP ProductEngine
2012-04-12MAINT-891 FIXED Disabled focus return from modal dialog after viewer logoff.Seth ProductEngine
Fixed boost trackable objects usage.
2012-01-20EXP-901 FIXED (Can see "typing" messages from users who are not allowed to ↵Paul ProductEngine
IM you) - If "Only friends and groups can IM me" option is ON but the user got message from non-friend, show notification one time per session.
2011-10-25EXP-1398 FIX -- Viewer Crash when moving Speak button from bottom toolbar to ↵Leslie Linden
side toolbar with call request dialog active on Mac * Added "on button removed" callback for toolbars. * Changed docking on incoming and outgoing call floaters to be undocked when "speak" button removed. Reviewed by Leyla.
2011-10-24EXP-1400 FIXED (Call request docking icon overlays other toolbar buttons ↵Paul ProductEngine
when speak button in side toolbar) - LLDockableFloater::getDockTongue to init dock tongue with proper image depending on floater dock side, also added images for left and right tongues. - Added proper call floater positioning relatively to the speak button
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.
2011-04-13STORM-941 FIXED IM history to use the resident's user name for the log file ↵Seth ProductEngine
name. Added conversions from legacy names or SLURLs with avatar id to the user names in cases of logging P2P sessions and inventory offers. Removed asynchronous writes to temporary IM log file depending on name cache responses.
2011-01-06STORM-826 (workaround): correct mixed and dos-style line endingsOz Linden
2010-11-15mergeRichard Linden
2010-11-10DN-203 [crashhunters] LLIMModel::LLIMSession::onAvatarNameCachLeyla Farazha
2010-10-27DN-190 Last name resident shown in title of IM Conference Window with no ↵Leyla Farazha
Display name
2010-10-07Made VoiceCallsRejectAll apply to group voice invites as well as p2p and ↵Monroe Linden
ad-hoc invites. Fixed some code in LLIMMgr that had the incoming call dialog confused with a notification. Reviewed by Richard.
2010-09-29MergeLeyla Farazha
2010-09-27MergeLeyla Farazha
2010-09-27STORM-210 FIXED Implemented adding of ad-hoc call participans in Recent.Andrew Productengine
Both offline and online users are added. It is done in LLVoiceChannelGroup::activate(), where TODO for it was placed earlier. To avoid code duplication when adding users from speakers list to Recent, a new method was added to LLIMModel.
2010-09-08Fixing chat logs to use usernameLeyla Farazha
2010-09-03Post-convert merge by convert_monolith.py from ↵Aimee Linden
/Users/Aimee/Documents/Work/Linden-Lab/Development/viewer/convert/viewer-identity-evolution
2010-09-03Merge between james/viewer-identity-evolution and dessie/viewer-publicAimee Linden
2010-09-17STORM-153 FIXED Localized Conference and non-existent IM session name strings.Andrew Dyukov
- Moved the "no session" string to XML and used it in code instead of hardcode. - Conference string turned out to be already translated, but the way translation was happening ad-hoc chat log files on disk would get localized names, and thus be inconsistent (and that would create problems with browsing them later). It didn't happen already just because this string wasn't translated in other locales somewhy. So moved localization of session name after the the creation of log file. Also changed value of string according to Eli's comment in ticket.
2010-08-24Backed out changeset c3d41f18ce2bTofu Linden
back-out the back-out for this branch. yay.
2010-08-24Backed out changeset a62bf7c0af21Tofu Linden
Backing out this merge that I pushed (prematurely) to the wrong place.
2010-08-24merge heads. whew.Tofu Linden
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-07-29EXT-8429 FIXED Added a workaround to localize server hardcoded "Conference" ↵Mike Antipov
string for incoming ad-hoc chats. Added a new string "conference-title-incoming" to strings.xml For now the "Conference" word is localized wherever this session name is shown: * IM window title * Voice notifications Further Localization is out of scope of this ticket and will be done in a separate localization cycle. Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/816/ --HG-- branch : product-engine
2010-05-17DEV-50013 Display name for inbound voice callsJames Cook
(Last commit was actually for outbound). Reviewed with Leyla