summaryrefslogtreecommitdiff
path: root/indra/llui/llpanel.cpp
AgeCommit message (Collapse)Author
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.
2011-11-08LLHandle<Derived> is now implicitly convertable to LLHandle<Base> and ↵Richard Linden
LLHandle<Base> can be downcast to LLHandle<Derived> using the LLHandleProvider mixin
2011-09-06EXP-1196 FIX Fix param block template orderingRichard Linden
changed ordering of template loading relative to constructor setting of params moved a lot of constructor-set params to template files reviewed by Leslie
2011-07-26EXP-1021 FIX Position of web content browser dictates position of profile ↵Richard Nelson
panel - profile panel position changes do not persist EXP-1030 FIX Search button toggle can get out of synch in bottom bar made llinstancetracker::iterator do own nested level management (removing need for separate guard) added support for filename= to floaters can pass in arbitrary window_class to floaters
2011-07-11EXP-995 FIX -- New icon scrolls into Received Items panel headingLeslie Linden
EXP-903 FIX -- Newness/Freshness number does not decrease as items are opened in Inbox * Brought back freshness with the freshness * New badge and label color from Gibson * Inventory Panel now allows display of badges with proper clipping Reviewed by Richard.
2011-06-07EXP-865 PROGRESS -- Modify LLBadge to allow it to hang off of non-buttonsLeslie Linden
Added the following for increased LLBadge functionality: * Panels now choose whether or not they accept buttons as children, which they do by default. * UI controls now shuffle controls with "requests_front" to the front of their children list at postBuild time. * Badges are set to "requests_front" by default * Badges now accept border image and color attributes Reviewed by Callum
2010-12-08merge with viewer-devRichard Linden
2010-11-24STORM-593 FIXED Make transparent texteditor and lineeditorPaul Guslisty
Reason: If some child of transparent LLFloater has a visible non-transparent background then this part of floater is non-transparent. As a result floater became partially transparent. Solution: When transparent floater changes focus, iterate through its children and set corresponding (corresponding to whether control in active or in inactive floater see STORM-535) transparency value. - Added method LLUICtrl::getCurrentTransparency. This method calculates transparency level of a control. Calculated value should be used as an alpha chennel value in case we want this control to be transparent. For now this method is used by LLFloater to adjust transparency of its children. - Added calculating of transparecny level for: LLLineEditor, LLTextBase, LLinventoryListItem, LLScrollContainer, LLScrollListCtrl, LLAccrodionCtrlTab. - Added method LLFlaoter::updateChildrenTransparency which updates transparency value of its children
2010-11-15mergeRichard Linden
2010-11-04STORM-450 FIXED Incorrect help contexts for Sidebar People tabPaul Guslisty
- Added checking whether panel is in visible chain instead of just visibility checking
2010-09-28made mIsFocusRoot a XUI paramRichard Linden
2010-09-22instead of exposing mutable container in LLInitParam::Multiple, just expose ↵Richard Linden
access functions, begin(), end(), etc. this allows mutation of param block contents, without being able to change number of elements
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-20changed buildPanel/buildFloater to member functions buildFromFileRichard Nelson
streamlined LLUICtrlFactory's interface
2010-08-16fixed EOLRichard Nelson
2010-08-16cleaned up LLUICtrlFactory...Richard Nelson
removed redundant functionality moved buildPanel to LLPanel
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-30added LLPanel::childSetAction() that does not take a void* argumentRichard Nelson
implemented childGetVisibleTab/PanelWithHelp using breadth-first-search iterator moved tentative state from llview to lluictrl changes llcallbackmap to use boost::function
2010-06-22EXT-7729 WIP LLWARNS: Tons of "Making dummy class..." warnings on startupRichard Linden
improved filename output for XUI parser errors
2010-02-18Fixed low bug EXT-5225 - Local chat doesn't go translucent when loses focus.Dmitry Zaporozhan
Added customizable background image overlay color to control background transparency. Default overlay color is White, as before. --HG-- branch : product-engine
2010-02-13CID-205Tofu Linden
Checker: REVERSE_INULL Function: LLPanel::fromXML(LLPointer<LLXMLNode>, LLView *, LLPointer<LLXMLNode>) File: /indra/llui/llpanel.cpp
2010-02-05EXT-5025 - Tooltips block mouse clicksrichard
EXT-4547 [BSI] it is possible to highlight multiple layers of chat EXT-3844 Mouse wheel camera zoom is not reflected on View popup slider EXT-3103 Add an option to restrict entering non-ascii symbols in text editor. reviewed by Leyla
2010-01-13EXT-4197: Search in sub-panels for help IDs too.Lynx Linden
In order to support unique help IDs for the Landmark and Place Profile panels off the Places sidetray, we need to also search within any embedded (and visible) sub-panels.
2010-01-11EXT-3929: Also look in accordion tabs for help topic.Lynx Linden
When the user clicks on the help "?" button, we try to find the currently active tab and see if there is a help topic for that tab. In addition, we now also look for a currently-visible accordion tab.
2009-12-18ext-3307 - nearby chat stays scrolled at bottomrichard
2009-12-17made setupParams do coordinate flipping and negative coordinate magic only ↵richard
for XUI-based params
2009-12-11implemented EXT-2323 “Get rid from obsolete notification widgets”;Alexei Arabadji
--HG-- branch : product-engine
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-29Revert extern template link optimization until I can build/test on PCJames Cook
2009-11-25Linker optimization, use extern template for LLView::getChild<>James Cook
2009-11-23convert signals to allocate on demand in order to speed up widget constructionrichard
reviewed by James
2009-11-10added filenames to xui names output when using filename="" in XUIrichard
reviewed by Richard
2009-10-30mergerichard
2009-10-30EXT-1980 - Bottom bar buttons retain highlightrichard
EXT-1936 - [BSI] Reversion - clicking on avatar name in group chat should bring up profile also fixed buttons not working on avatar list in IM window reviewed by Leyla
2009-10-27Revert change: Floater constructor CANNOT call LLPanel(p) with params, must ↵James Cook
set bg images in initFromParams, because we have too many LLPanels to retrofit them all to call LLPanel() with params. Discussed with Richard.
2009-10-27EXT-1352 First pass background images for floaters and panels, including ↵James Cook
pretty header. Reviewed with Leyla.
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-15DEV-41253: Updated the help context calculation code so that it willMartin Reddy
now search through a panel's children to see if there are any visible tabs that have a help topic string defined. If so, we use this string. Updated all of the XUI files that include a tab_container to define help topic strings for their child panels. I named all of these strings with the floater name as the prefix and "tab" at the end. For example, "preferences_display_tab" or "people_nearby_tab".
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-30DEV-35039 Viewer 2.0 Help System - Viewer DevelopmentAdam Moss
svn merge -r134800:134805 svn+ssh://svn.lindenlab.com/svn/linden/branches/viewer2help-3
2009-09-09merge -r132032-132812 ↵Richard Nelson
svn+ssh://svn.lindenlab.com/svn/linden/branches/gooey/gooey-1
2009-08-28skinning-22 -> viewer-2 trunk to pick up bug fixes, including crash on ↵James Cook
script compile when cursor is at the end of the script editor window. Replaced panel_pick_info.xml and panel_profile_view.xml with our versions, which stomped some PE changes. Panels still work, however, and Kurt is still working on layout. CHANGES: minor layout change: "start location" and "remember password" weren't on the same horizontal line. DEV-35120 image_unselected art was "transparent.j2c" - switched it out for PushButton_Off I18N: more things are missing a.. you guessed it, a name= parameter. Breaks localization. forgot to check this in earlier...fixes off-by-one crash when editing a script DEV-36740 change the displayed string per Erica's request re 'You can only set your Home Location...' VIEWER-SIDE text change. This does not change the actual message coming from the server EXT-689 Odd spinner behaviour - For Sale Price -- reviewed by james DEV-26973 Internationalize the server msg Youcan'tset this place as home -- reviewed by james EXT-618 Low/Mid/High response is broken in Preferences > Graphics -- reviewed by james EXT-618 Low/Mid/High response is broken in Preferences > Graphics -- to be reviewed EXT-655 Cannot choose Both logging options in Preferences -- to be reviewed Changes to notifications.xml text to fit Style Guide and some renamed menu items EXT-147 Ongoing revisions to new gestures layout. DEV-35097 catch more instances of 'SLURL' and make them 'SLurl' Removed Info Displays and Buy Currency Test from top menus. Clean up code to use proper childGetFoo and childSetFoo calls, as well as setCommitCallback using slots. De-inlined LLAvatarIconCtrl paramblock constructor because I was doing a full rebuild anyhow. Commented about use of childSetCommitCallback(). De-inlined LocalizedString paramblock constructor. eliminated memory leak I18N: more things are missing a name= parameter, breaks localization. EXT-714 Updated panels in sidetray that were not using the scroll_container element to adjust for viewer heights. fix for llmessage_test crash in Windows Release builds DEV-11254 I18N: replace all string instances of "Second Life" - do this in the foreign languages too DEV-11254 I18N: replace all string instances of "Second Life" - found new instances from merged code potential fix for unit test crash on parabuild, moved statics into singleton member variables to get around potential dual instantation of statics on different modules DEV-36809 Click target for slider handles is too small -- reviewed by steve EXT-403 change getChild<LLSpiner> to LLUICtrl to make it generic -- reviewed by richard DEV-35938 Horizontal scroll thumb too high -- to be reviewed EXT-386 clean up warnings - initCommitCallback... Rename Product Engine's LLFloaterMiniInspector to LLInspectAvatar, clean up XUI XML, clean up construction code, move refresh method to postBuild() so widgets are constructed before refresh, fixed a member variable in llavatarlistitem.cpp. Reviewed with Leyla. Login menu > Debug > Avatar Inspector shows test avatar inspector. Also added to main menu > Debug > XUI > Avatar Inspector. Changed text/layout of dummy inspector. Not reviewed. Merging revisions 131558-131975 of svn+ssh://svn.lindenlab.com/svn/linden/branches/skinning/skinning-22 into D:\viewer-2.0.0-3, respecting ancestry
2009-08-27svn merge -r 129841:129910 ↵Monroe Williams
svn+ssh://svn.lindenlab.com/svn/linden/branches/moss/pluginapi_05-merge@129910 svn merge -r 129913:131718 svn+ssh://svn.lindenlab.com/svn/linden/branches/pluginapi/pluginapi_05 Some branch shenannigans in the pluginapi_05 branch caused this to become a two-part merge.
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)
2009-08-20EXT-580 Add Friend button in the IM floater not disabled if already friendsLeyla Farazha
EXT-579 Add Friend from the Im floater opens multiple invitation dialogs sidebar should be up above bottom tray reviewed by richard