Skip to content
Snippets Groups Projects
  1. Oct 10, 2012
    • Nat Goodspeed's avatar
      Introduce new LLDir::findSkinnedFilenames() method. Use as needed. · 3653727e
      Nat Goodspeed authored
      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.
      3653727e
  2. May 03, 2012
    • Nat Goodspeed's avatar
      IQA-490: Dummy out calls to LLTrans::getString() in linux_updater.cpp. · ca1ecb92
      Nat Goodspeed authored
      It appears that the LLTrans machinery, or at least the way it's used in this
      program, is buggy: linux-updater.bin has been crashing. Tracebacks and
      experimentation identify LLTrans as the culprit, so replace it with baked-in
      string constants copied from strings.xml. (linux-updater.bin was already
      producing English-only messages because the update_install shell script that
      calls it was specifically passing the English version of strings.xml.)
      ca1ecb92
  3. Mar 19, 2012
  4. May 11, 2011
  5. Mar 10, 2011
  6. Jan 13, 2011
  7. Jan 11, 2011
  8. Nov 18, 2010
  9. Nov 17, 2010
  10. Nov 16, 2010
  11. Nov 15, 2010
  12. Oct 28, 2010
  13. Oct 13, 2010
  14. Sep 21, 2010
  15. Aug 13, 2010
  16. Oct 01, 2009
  17. Sep 04, 2009
    • Martin Reddy's avatar
      Fixed the Linux build of viewer-2.0.0-3. · f929ec2d
      Martin Reddy authored
      - Updated linux_updater for new LLStringUtil::getTokens() signature
      - Ignore compiler warning for string constants not being referred to
        as const in fmod_error.h
      
      Fix for DEV-39457. Reviewed by moss.
      f929ec2d
  18. Aug 24, 2009
  19. Aug 21, 2009
Loading