summaryrefslogtreecommitdiff
path: root/indra/llvfs
AgeCommit message (Collapse)Author
2012-11-06Automated merge with http://hg.secondlife.com/viewer-developmentNat Goodspeed
2012-10-23Allow user to override either English, or localized, skinned file.Nat Goodspeed
Original LLDir::findSkinnedFilenames() implementation used a tricky rule: a given skin directory was only considered if it provided a default-language override for the sought filename, regardless of whether it also provided localizations for that filename. Discussion with Richard clarifies that we want to allow the user to override neither, either or both. Change findSkinnedFilenames() accordingly; update unit tests to verify new semantics.
2012-10-12Fix LLUI::locateSkin() failure case; clarify lldir.cpp static init.Nat Goodspeed
Per code review: Previous refactoring of LLUI::locateSkin() preserved odd failure behavior: it would return last-considered pathname, whether or not it exists. Changed to emit LL_WARNS log message and return empty string. Use Boost.Assign to simplify initialization of a couple static containers in lldir.cpp.
2012-10-11Change LLDir::findSkinnedFilenames() to use enum instead of bool.Nat Goodspeed
At Richard's suggestion, changed the bool merge parameter to new enum ESkinConstraint with values CURRENT_SKIN and ALL_SKINS. This clarifies what we're requesting at the point of the call.
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-25Reverted boost/cocoa changes to purely Mountain Lion fixes.Aura Linden
2012-07-25Some cocoa that doesn't workAura Linden
2012-07-24Eliminated countFilesInDir boostified getCurPath for OSXAura Linden
2012-04-26Automated merge with http://hg.secondlife.com/viewer-releaseNat Goodspeed
2012-03-19MAINT-141, MAINT-95, MAINT-62 FIXED Don't delete files using masks starting ↵Vadim ProductEngine
with "/". Encountering such a mask will show a warning message and throw a debug assertion.
2012-02-01converted a bunch of narrowing implicit conversions to explicitRichard Linden
2011-08-17convert tabs to spaces where they are forbiddenOz Linden
2011-07-07STORM-1476 FIXED Replaced non-fatal errors in LLDirIterator constructor with ↵seth_productengine
warnings to avoid viewer crashes. Added exception handling case.
2011-06-21CHOP-662 cleanup in response to code review.Squire
2011-06-20CHOP-662 Coupl of fixes to extended unit-testSquire
2011-06-20Added more tests to cover the common examples in the crash logsSquire
2011-06-17CHOP-662 Added booost library to unittest for lldiriterator.cppSquire
2011-06-17COP-662 Added newline at end of file for Linux buildSquire
2011-06-17CHOP-662 - initial fix to problems with regex characters in Group namesSquire
causing the LLDirIterator to crash the viewer when opening chat logs
2011-05-27VWR-25861 VWR-25862 Removed LLDir_Mac::deleteFilesInDir() virtual method.Logan Dethrow
The LLDir base class method will now be used instead. The handling of the mask parameter was inconsistent between the two implementations, and the failure to remove the old method was probably just an oversight.
2011-05-17pull back fix for STORM-1260 from beta branchOz Linden
2011-05-17STORM-1260 FIXED Replaced llerrs messages with llwarns in directory iterator ↵seth_productengine
code to avoid viewer halt when a cache dir is not found.
2011-05-16mergeDave Parks
2011-05-12mergeDave Parks
2011-05-11STORM-477 Restored the backed out changeset: b62b260aa04dSeth ProductEngine
2011-05-11STORM-477 Restored the backed out changeset: c9cc202293b7Seth ProductEngine
2011-05-03Merge.brad kittenbrink
2011-05-02mergeDave Parks
2011-04-27Fix for mac compile error in VWR-25608 fix.brad kittenbrink
2011-04-26FIX VWR-25608 error on shutdow due to buffer overflow in LLVFS::auditbrad kittenbrink
2011-04-26STORM-1182 Use string::rfind instead of string::findBoroondas Gupte
... so the last occurance of the build prefix in the executable path will be matched. This should avoid cuttung too much subdirs away if someone checks out the source to a path already containing "/build-darwin-" or "/build-linux-".
2011-04-25STORM-1182 FIX Fixed XUI Preview tool not loading XML files from a dev ↵Boroondas Gupte
checkout on Mac. Ported Vadim's STORM-1182 fix for Linux (3d30b2bc1369) to the corresponding Mac file.
2011-04-22mergeDave Parks
2011-04-19STORM-1182 FIX Fixed XUI Preview tool not loading XML files from a dev ↵Vadim ProductEngine
checkout on Linux. The bug seems to be caused by recent switch to Autobuild, which affected the build directory path.
2011-03-18merge out 2.6.0 changes from viewer-developmentOz Linden
2011-03-09Merge with tip of http://hg.secondlife.com/viewer-development (rev 14798)callum
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-04-04Automated merge up from viewer-development into mesh-developmentLoren Shih
2011-03-16Automated merge up from viewer-development into mesh-developmentLoren Shih
2011-03-09Automated merge up from viewer-development into mesh-developmentLoren Shih
2011-03-03merge up from viewer-development and viewer-autobuildOz Linden
2011-02-17merge changes from jenn_linden/viewer-vs2010Oz Linden
2011-02-17Ported over mani's patch for handling finding of the RO appdata dir when ↵brad kittenbrink
running from the debugger. ported from changeset https://hg.lindenlab.com/alain/indra-common/changeset/99a9d1876e83/ reviewed by Richard.
2011-02-16Automated merge with ssh://bitbucket.org/jenn_linden/viewer-vs2010Oz Linden
2011-02-15fix test failure caused by dubious method for testing an empty string.Alain Linden
2011-02-11OPEN-29 Cleanup: strip trailing whitespaceBoroondas Gupte
As people will have to rebuild half the tree anyway, because these headers changed, we might as well prettify them a bit.
2011-02-11OPEN-29 Cleanup: removed superflous "public:"Boroondas Gupte
Not related, just a while-I'm-at-it thing.
2011-02-11OPEN-29 Cleanup: removed extra qualification ‘LLDir_Win32::’ on member ↵Boroondas Gupte
‘getNextFileInDir’ Before OPEN-29, when lldir_win32.h would have been included when building for Linux, GCC would error out with indra/llvfs/lldir_win32.h:50: error: extra qualification ‘LLDir_Win32::’ on member ‘getNextFileInDir’ which, although unintended, probably was a Good Thing (TM), as this would have aborted the build, so that the wrong include would be noticed. Now that we explicitly error out with a (hopefully) useful error message, this isn't needed anymore.
2011-02-11OPEN-29 Error out if lldir_<platform>.h is included when building for a ↵Boroondas Gupte
different platform As far as I know, there is no good reason to include e.g. indra/llvfs/lldir_win32.h while not building for a windows target, so be better prevent this to avoid hard to find errors.
2011-02-10Fix for linux build breakageBrad Payne (Vir Linden)