summaryrefslogtreecommitdiff
path: root/indra/llui/lluictrlfactory.cpp
AgeCommit message (Collapse)Author
2021-10-28SL-16148 SL-16244 SL-16270 SL-16253 Remove most BlockTimers, remove ↵Dave Parks
LLMemTracked, introduce alignas, hook most/all reamining allocs, disable synchronous occlusion, and convert frequently accessed LLSingletons to LLSimpleton
2016-11-28MAINT-5456 Button tooltips in Appearance floater should now be localisableandreykproductengine
2015-11-10remove execute permission from many files that should not have itOz Linden
2013-10-15renamed TimeBlock to BlockTimerStatHandleRichard Linden
2013-09-05changed fast timer over to using macroRichard Linden
another attempt to move mem stat into base class
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-11-20Pull and merge from ssh://hg@bitbucket.org/lindenlab/viewer-beta.William Todd Stinson
2012-10-15Remove LLUICtrlFactory::findSkinnedFilename(): cf. LLDir method.Nat Goodspeed
Richard points out that LLUICtrlFactory::findSkinnedFilename() adds little value. It was called from exactly one place, and that one place could easily obtain the information another way. The concern is that it could confuse a reader of the code with regard to the other findSkinnedFilename[s]() methods in LLDir. Clarifying the code base is a Good Thing. Removing.
2012-10-12LLUICtrlFactory::getLayeredXMLNode() gets LLDir::ESkinConstraint.Nat Goodspeed
At this point, LLUICtrlFactory::getLayeredXMLNode() is a pretty thin wrapper around LLDir::findSkinnedFilenames() and LLXMLNode::getLayeredXMLNode(). Until now, LLUICtrlFactory::getLayeredXMLNode() passed (by default) LLDir::CURRENT_SKIN to LLDir::findSkinnedFilenames(). But that meant that a caller such as LLTransUtil::parseStrings() that wants almost the same functionality, but with LLDir::ALL_SKINS instead, had to clone the logic from LLUICtrlFactory::getLayeredXMLNode(). Allowing its caller to pass the desired LLDir::ESkinConstraint enum value eliminates the need to clone its logic. Remove cloned logic from LLTransUtil::parseStrings().
2012-10-10Introduce new LLDir::findSkinnedFilenames() method. Use as needed.Nat Goodspeed
In a number of different places, for different reasons, the viewer wants to load a UI-related file that might be overridden by a non-default skin; and within that skin, might further be overridden by a non-default language. Apparently, for each of those use cases, every individual developer approached it as an entirely new problem, solving it idiosyncratically for that one case. Not only is this a maintenance problem, but it rubs one's nose in the fact that most such solutions consider only a subset of the relevant skin directories. Richard and I evolved an API intended to address all such cases: a central LLDir method returning a list of relevant pathnames, from most general to most localized, filtered to present only existing files; plus a couple of convenience methods to specifically obtain the most general and most localized available file. There were several load-skinned-file methods (LLFloater::buildFromFile(), LLPanel::buildFromFile() and LLUICtrlFactory::createFromFile() -- apparently cloned-and-modified from each other) that contained funky bolted-on logic to output the loaded data to an optional passed LLXMLNodePtr param. The trouble is that passing that param forced each of these methods to subvert its normal search: specifically for that case, it needed to find the baseline XML file instead of the localized one. Richard agreed that for the intended usage (reformatting XML files) we should use XML schema instead, and that the hacky functionality should be removed. Remove it. Also remove LLUICtrlFactory::getLocalizedXMLNode(), only used for those three special cases. Some callers explicitly passed the optional LLXMLNodePtr param as NULL. Remove that. Remove LLFloaterUIPreview::displayFloater(save) param, which relied on the optional output LLXMLNodePtr param. Make onClickSaveFloater() and onClickSaveAll() emit popupAndPrintWarning() about discontinued functionality. Recast LLFloater::buildFromFile(), LLPanel::buildFromFile(), LLUICtrlFactory::createFromFile(), LLNotifications::loadTemplates(), LLUI::locateSkin(), LLFontRegistry::parseFontInfo(), LLUIColorTable::loadFromSettings(), LLUICtrlFactory::loadWidgetTemplate(), LLUICtrlFactory::getLayeredXMLNode(), LLUIImageList::initFromFile(), LLAppViewer::launchUpdater() and LLMediaCtrl::navigateToLocalPage() to use findSkinnedFilenames(). (Is LLAppViewer::launchUpdater() ever called any more? Apparently so -- though the linux-updater.bin logic to process the relevant command-line switch has been disabled. Shrug.) (Is LLMediaCtrl::navigateToLocalPage() ever used?? If so, why?) Remove LLUI::setupPaths(), getXUIPaths(), getSkinPath() and getLocalizedSkinPath(). Remove the skins/paths.xml file read by setupPaths(). The only configuration it contained was the pair of partial paths "xui/en" and "xui/[LANGUAGE]" -- hardly likely to change. getSkinPath() specifically returned the first of these, while getLocalizedSkinPath() specifically returned the second. This knowledge is now embedded in findSkinnedFilenames(). Also remove paths.xml from viewer_manifest.py. Remove injected xui_paths from LLFontGL::initClass() and LLFontRegistry::LLFontRegistry(). These are no longer needed since LLFontRegistry can now directly consult LLDir for its path search. Stop passing LLUI::getXUIPaths() to LLFontGL::initClass() in LLViewerWindow's constructor and initFonts() method. Add LLDir::append() and add() methods for the simple task of combining two path components separated by getDirDelimiter() -- but only if they're both non-empty. Amazing how often that logic is replicated. Replace some existing concatenations with add() or append(). New LLDir::findSkinnedFilenames() method must know current language. Allow injecting current language by adding an LLDir::setSkinFolder(language) param, and pass it where LLAppViewer::init() and initConfiguration() currently call setSkinFolder(). Also add LLDir::getSkinFolder() and getLanguage() methods. Change LLFLoaterUIPreview's LLLocalizationResetForcer helper to "forcibly reset language" using LLDir::setSkinFolder() instead of LLUI::setupPaths(). Update LLDir stubs in lldir_stub.cpp and llupdaterservice_test.cpp. Add LLDir::getUserDefaultSkinDir() to obtain often-overlooked possible skin directory -- like getUserSkinDir() but with "default" in place of the current skin name as the last path component. (However, we hope findSkinnedFilenames() obviates most explicit use of such individual skin directory pathnames.) Add LLDir unit tests for new findSkinnedFilenames() and add() methods -- the latter exercises append() as well. Tweak indra/integration_tests/llui_libtest/llui_libtest.cpp for all the above. Notably, comment out its export_test_floaters() function, since the essential LLFloater::buildFromFile(optional LLXMLNodePtr) functionality has been removed. This may mean that llui_libtest.cpp has little remaining value, not sure.
2012-07-30CHUI-217 FIX Items are not visible in Merchant OutboxRichard Linden
cleaned up a lot custom code for folder view item creation in inbox and outbox proper initialization of views from inventory panel starting folder
2012-06-22CHUI-101 WIP Make LLFolderView general purposeRichard Linden
build fix for gcc added detection of duplicate widget registration
2011-03-09SOCIAL-654 WIP Items purchased on Marketplace.secondlife.com while logged ↵Richard Linden
into Minimal skin are declined and not present in inventory made notification text skinnable
2011-02-23fixed filename output on XUI parse errorsRichard Linden
2010-08-27Post-convert merge by convert_monolith.py from ./viewer-experienceMonroe Linden
2010-08-23made Params parsers not act as singletonsRichard Nelson
2010-08-16moved buildFloater out of lluictrlfactory to llfloater.cppRichard Nelson
2010-08-16cleaned up LLUICtrlFactory...Richard Nelson
removed redundant functionality moved buildPanel to LLPanel
2010-08-13Change license from GPL to LGPL (version 2.1)Oz Linden
2010-08-06renamed LLFastXUIParser to LLSimpleXUIParser and added support for parsing ↵Richard Nelson
xml node text contents
2010-08-04first pass at faster XUI parsing (no recursion support yet)Richard Nelson
also made LLSD->param block parsing faster
2010-07-01eliminated a bunch of silent warnings on startup about multiple widget ↵Richard Linden
registration
2010-06-22EXT-7729 WIP LLWARNS: Tons of "Making dummy class..." warnings on startupRichard Linden
improved filename output for XUI parser errors
2010-06-22EXT-7729 WIP LLWARNS: Tons of "Making dummy class..." warnings on startupRichard Linden
reviewed by Leyla
2010-04-27added empty param blocks to registered widgets that didn't have themRichard Linden
made LLDefaultChildRegistry::Register errors actually crash the client...llerrs doesn't work in static initializers
2009-12-17add newline to unbreak linux build. probably.Tofu Linden
2009-12-17mergerichard
2009-12-17Backed out changeset: 4d482c1ed041richard
2009-12-17mergerichard
2009-12-16MergeJames Cook
2009-12-16Backed out changeset: cfa60aef8061, added setBlockFromValue so setting a ↵James Cook
LLRect param in code will set the individua
2009-12-16eof newlineLeyla Farazha
2009-12-15mergerichard
2009-12-15fix for gcc buildRick Pasetto
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-12-15added "value" attribute to radio_items to better support arbitrary data ↵richard
selection moved LLRadioCtrl to internal implementation of LLRadioGroup reviewed by Leyla
2009-11-30Linker optimization - use "extern template" for commonly regenerated templatesJames Cook
Also replaced many duplicate calls to LLViewerCamera::getInstance() with local pointer. Reviewed with Ambroff
2009-11-28Use extern template for common singletons to reduce code bloat/link time.James Cook
2009-11-12don't use LLWidgetTypeRegistry for now (useful only for schema generation)richard
reverted ui_ctrl registration for creation of dummy LLUICtrls
2009-11-10Add newline at end of fileJames Cook
2009-11-10fix for gccRick Pasetto
2009-10-21fix for chat history layout bugsRichard Nelson
EXT-1728 - there is no new line in the text copied on junction of 2 panels EXT-1670 - fix chat history use of widgets reviewed by James
2009-10-20removed unnecessary static variable instantiations to improve compile timesRichard Nelson
moved a bunch of template class statics to cpp files also added filename parameter to LLXUIParser::readXUI for better debugging of XUI errors reviewed by James
2009-10-08Fixed a problem where floaters that failed to load their XML would still be ↵Steven Bennetts
opened. This was particularly a problem with Modal Dialogs since the UI would loose focus with no floater to respond to. Reviewed by Leyla
2009-10-06fix for gccRichard Nelson
2009-10-06EXT-1013 - tab ordering is inconsistent in the preferences windowRichard Nelson
reviewed by James
2009-10-03Merge inspectors UI project, gooey-4, into viewer-2 trunk. Added new ↵James Cook
tooltips to 3D avatars, 2D avatar names, and 3D objects. Refactors tooltips and text boxes, line editors, and text editors. Breaks LLExpandableTextBox, but a fix is coming. Resolved conflicts in lltexteditor.cpp, llchatitemscontainerctrl.cpp, llchatmsgbox.cpp, llfloaterbuycurrency.cpp, llnearbychat.cpp, floater_buy_currency.xml, and ru/strings.xml Merging revisions 134925-135157 of svn+ssh://svn.lindenlab.com/svn/linden/branches/gooey/gooey-4 into C:\source\viewer-2.0.0-3, respecting ancestry
2009-09-09merge -r132032-132812 ↵Richard Nelson
svn+ssh://svn.lindenlab.com/svn/linden/branches/gooey/gooey-1
2009-08-24merge -r 130399-131510 skinning-21 -> viewer-2.0.0-3Richard Nelson
DEV-11254 DEV-11254 DEV-2003: DEV-21567 DEV-37301 EXT-104 EXT-138 EXT-217 EXT-256 EXT-259 EXT-259 EXT-328 EXT-348 EXT-386 EXT-399 EXT-403 EXT-460 EXT-492 EXT-492 EXT-531 EXT-537 EXT-684 improved text editor (handles multiple fonts simultaneously as well as inline widgets)