Commit Graph

65 Commits

Author SHA1 Message Date
Liru Færs
1ffa9f7c0c Fix and optimize redundant scroll list drawing logic 2019-08-17 23:52:43 -04:00
Lirusaito
37c6636788 A function to set scroll list sort order
Renames getSortColumns to getSortOrder
2019-08-02 20:05:58 -04:00
Lirusaito
0f24c79ce9 Restore storage of list maximum column width
Fixes thin lists in comboboxes and flyout buttons
2019-07-23 02:07:40 -04:00
Lirusaito
d66c730c30 Back down on overzealous list filter checking and explicitly default filter
For clarity to others in the future: getFiltered() checks are meant for
functions where the user is interacting the scroll list in some way
or we're displaying the scroll list.
2019-07-22 23:38:45 -04:00
Lirusaito
3654ff5f5c Fix up EAM to work (Part 2)
Did you know you could type into a list to search it by prefix?!
The Lindens didn't!!
Let's make this search bar an ACTUAL FILTER!
To do this, we add support for filtering to all scroll lists,
so that's cool. Also filtered items will be selected.

Also optimized item selection loop to perform better when selecting in
massive lists (like group members)

Changed the text on the Copy Button to reflect that it copies everything,
not just the applied filter... if you wanted that, you could just
ctrl-a, ctrl-c... I mean, reallly
2019-07-22 08:39:06 -04:00
Lirusaito
3f921251ee Add getAllIDs to LLScrollListCtrl, and make getSelectedIDs a little better 2019-07-18 20:09:47 -04:00
Lirusaito
b8c9d9c0f3 Clean up LLScrollListCtrl and add ability to getSortColumns() 2019-04-27 03:02:47 -04:00
Shyotl
14e7b4aefe scrolllists were incredibly slow to render. This included the friends and groups lists. Should be much faster now due to not thrashing the bound texture quite as much. Also ui elements are culled on the cpu side if they are out of the current scissor region. list cells also had no clip logic, so added to that as well. 2018-11-19 00:43:00 -06:00
Lirusaito
14fd78a5af Do the scroll list menu thing more cleanly. 2018-07-15 11:54:23 -04:00
Shyotl
c77699dcd5 Speakerlist was taking a ridiculous amount of frame time when displaying large groups. 2018-02-13 23:06:41 -06:00
Shyotl
30df7dacde Add bulk speaker updates. Sped up speaker fetching by disabling list sorting during bulk updates. 2018-02-07 21:18:35 -06:00
Shyotl
f4a713a500 Merge. 2017-03-14 04:02:53 -05:00
Shyotl
abb4b1ac7c Fix for scrolllist columns not resizing when header width is adjusted. 2016-05-01 19:41:19 -05:00
Shyotl
1c627317ec No longer include llerrorlegacy.h. Updated llstl to include deletion utilites. 2015-06-19 03:54:20 -05:00
Inusaito Sayori
27e69cab1e Support upstream's xui pattern of scroll_list.columns and such. 2015-03-21 00:36:47 -04:00
Inusaito Sayori
72080e79e9 Sync llcommon with Alchemy a bit.
llmath::llround->ll_round
LL_ICC->LL_INTELC
Add llpredicate
Add LL_CPP11 macro
Remove llhash
Update llinitparam, llsd and all relatives of it.
2015-03-20 22:04:04 -04:00
Shyotl
b7454f5f43 Cleanup in llfontgl, as well as more aggressive bounds checking. 2015-02-15 21:45:33 -06:00
Drake Arconis
948ebe5213 All your codebase are belong to us. 2014-08-22 00:15:09 -04:00
Inusaito Sayori
bbe7f6adfb Enable Multiselect in groups, and enable EditMenuHandler when a scrollable list is focused!
Allows Ctrl-A to select all in a list (Like for selecting all groups and unticking chat with a single click)
Ctrl-E to deselect
Ctrl-X/Ctrl-C to copy a list (useful for saving ban lists and such!)
2014-05-23 19:37:32 -04:00
Inusaito Sayori
2450b435a7 Combine commonly created scroll list menus into single menus identified by menu_num instead of their menu_file
sScrollListMenus is an array such that it will hold more menus in the future, such as groups.
fmenu_file still exists and will still exhibit its old behavior if used.
2014-01-24 21:41:56 -05:00
Inusaito Sayori
be7c33e3c7 [LLScrollColumnHeader] Fix the ImageOverlay icons being overwritten every draw and thus destroying our image_overlay parameter!
Seriously, whose idea was that?
Ignore space changes and this will be a lot easier for all of us.
2013-11-10 02:49:10 -05:00
Inusaito Sayori
a510af9480 [LLScrollColumnHeader] Fix icons disappearing in certain states, such as click. 2013-11-10 02:46:23 -05:00
Inusaito Sayori
c4610214fc Prevent that annoying issue where new scroll list menu flashes in the bottom left corner briefly when created.\ 2013-07-31 01:36:29 -04:00
Inusaito Sayori
2b2a6d5ea6 Touchups to scroll list building
Moved handling of mouse_wheel_opaque and menu_file to setScrollListParameters
Removed setToolTip block from LLScrollListCtrl::fromXML since setToolTip lives inside of LLView::initFromXML which is called by LLUICtrl::initFromXML which was already called at this point
Added support for building columns from xml with relative_width which is synonymous with relwidth
Fixed namelist columns not supporting dynamic_width in xml (dynamicwidth is only acceptable in older xmls)
2013-07-27 16:40:26 -04:00
Lirusaito
d82a2d0392 Add support for generic list menu listeners
This adds enablers/visiblers: "List.EnableAnySelected" "List.EnableMultipleSelected" "List.EnableSingleSelected" "List.EnableCall" "List.EnableIsFriend" "List.EnableIsNotFriend" "List.EnableMute" "List.EnableOfferTeleport"
This adds click callbacks: "List.CopyUUIDs" "List.OfferTeleport" "List.Pay" "List.RemoveFriend" "List.RequestFriendship" "List.ShowProfile" "List.StartAdhocCall" "List.StartCall" "List.StartConference" "List.StartIM" "List.AbuseReport" "List.ParcelEject" "List.Freeze" "List.EstateBan" "List.EstateEject" "List.ToggleMute"

Exposes LLRegionInfoModel::sendEstateOwnerMessage to the public to avoid further duplicated code
2013-07-26 16:29:28 -04:00
Lirusaito
d64c9a343c Fix issue of columns not sorting in ascending order by default 2013-07-22 20:02:45 -04:00
Lirusaito
ceb9c99736 Allow right clicking anywhere on a scroll list for a menu, except the header buttons 2013-07-18 15:51:28 -04:00
Lirusaito
d631ae8072 Add support for scrolllists with menus
In xml menu_file attribute can point to the file
In code, setContextMenu can take a prebuilt menu
2013-07-18 06:04:17 -04:00
Lirusaito
8d87d3410e When the mouse leaves a scroll list, don't leave the mouse-over highlight shown 2013-07-18 04:58:29 -04:00
Lirusaito
824bec5d69 Two scrolllist update scraps find a home in this commit 2013-07-16 09:45:00 -04:00
Lirusaito
599704cf40 Display tooltip for scrolllist when not over headers or cells 2013-07-16 09:42:54 -04:00
Lirusaito
1b734e190c Scroll List Classes Params
Params for LLScrollListCell, LLScrollListItem, and LLScrollListColumn
Moves code block for creating a LLScrollListCell out of LLScrollListCtrl::fromXML and into LLScrollListCell::create
Removes mDefaultListTextColor from LLScrollListCtrl, it is now used only in LLScrollListCell::create
Adds LLScrollListCtrl::addRow and LLScrollListCtrl::addColumn functions that take these Params
Separators are now built from an icon.. we may want to tweak it in the future, looks alright though

LLFloaterAvatarList::refreshAvatarList now builds elements with these Params instead of by LLSD
2013-07-16 09:33:26 -04:00
Lirusaito
67970ab2db Allow tooltips for any scrolllist cell
Finally the radar activity icons have working tooltips to explain their meanings
This probably won't do anything until Params are plugged in, though.
2013-07-16 06:58:17 -04:00
Lirusaito
c261eb7433 Remove final parameter from LLScrollListCtrl::addStringUUIDItem, it was unused. 2013-07-16 00:56:40 -04:00
Lirusaito
9b92b51b2c Fix internal issue of column headers not displaying tooltips 2013-07-16 00:52:59 -04:00
Lirusaito
cee9e976b1 Remove unused function LLScrollListCtrl::setDisplayHeading 2013-07-15 22:31:38 -04:00
Lirusaito
cb01bbb8ef Move tooltip hosting from llscrolllistitem to llscrolllistcell 2013-07-15 22:24:34 -04:00
Lirusaito
75c4503a46 Derive LLScrollColumnHeader from a button
Fixes the issue with single-click sorting not working
Fixes internal issue with initial column header names being used as their labels
2013-07-14 17:27:51 -04:00
Lirusaito
c77f0de9cf Refactor LLScrollList* and relatives
Breaks out llscrolllistcolumn, llscrolllistcell, and llscrolllistitem from llscrolllistctrl and llflyoutbutton from llcombobox
2013-07-12 17:47:01 -04:00
Lirusaito
1398d8afbc Remove two unused LLScrollListItem::addColumn and LLScrollListIcon constructor via LLUIImagePtr. 2013-07-10 21:12:58 -04:00
Lirusaito
6d32a39544 Remove unused LLScrollListLineEditor class 2013-07-10 19:54:13 -04:00
Lirusaito
3739639295 Merge branch 'Moap' of git://github.com/Shyotl/SingularityViewer into VoiceUpdate
Conflicts:
	indra/newview/llfloateractivespeakers.h - llparticipantlist.h got changed from a panel to a layoutpanel
	indra/newview/lloverlaybar.cpp - Silly conflict, I change one line, Shyotl changes the next two.

Compile fixies:
	indra/newview/llavataractions.cpp needed to include llnotifications.h
	indra/newview/llvoicechannel.cpp needed to include llnotifications.h
2013-06-23 22:36:04 -04:00
Lirusaito
7303bfcb78 Eliminated most instances of the legacy setCallbackUserData (and modernized up a bunch of callbacks)
Also cleaned up slfloatermediafilter to act as a proper singleton.
Removes childSetUserData entirely.
2013-06-16 20:00:00 -04:00
Shyotl
c5fc945f33 Updated LLResizeBar and LLResizeHandle to use LLView::Param based ctors.
Cleaned up LLKeyWords
Cleaned up LLStatBar
Added per-account setting access to ui library
Added LLUICachedControl
Updated LLUIString
2013-05-20 00:36:34 -05:00
Shyotl
a5dad6be5c UI cleanup.
-Added ui-local transformation matrix.
-Gutted legacy commitcallbacks throughout ui widget ctors.
-Created filter_editor ui widget which issues commit on keypress
   -search_editor commits on focus loss/enter press
   -search_editor and filter_editor now have a built in 'x' button to clear text.
-LLComboBox::setPrearrangeCallback now uses boost::function
-LLComboBox::setTextEntryCallback now uses boost::function
-LLLineEditor::setKeystrokeCallback now uses boost::function
-LLLineEditor::setPrevalidate now uses boost::function
-LLPanel::childSetKeystrokeCallback removed
-LLPanel::childSetPrevalidate removed
-LLPanel::childSetActionTextbox now uses boost::function
-LLTextBox::setClickedCallback now uses boost::function
-LLTextEditor::setKeystrokeCallback added.
-Cleaned up JCFloaterAreaSearch
2013-04-16 00:25:59 -05:00
Shyotl
2a8f55e99e Updated gesture floater to use more modern (and actual working) method of adding list elements via xml. 2013-01-14 18:41:48 -06:00
Shyotl
db8225a078 Fixup LLScrollListCtrl::setCommentText, and incorrect behaviors with script editor and bulk perm editor pertaining to setCommentText inherited from V3. 2013-01-14 03:36:04 -06:00
Shyotl
d3939c785d Fixup scroll list column header resizing. 2012-12-18 18:27:59 -06:00
Shyotl
9fb4e677a6 Updates to LLScrollListCtrl and related inter-dependencies. Also added ability to set face texture to 'None' (LLUUID::null). 2012-12-08 00:56:58 -06:00
Shyotl
ef6f411b70 Removed LLUICtrl::setDoubleClickCallback and LLPanel::childSetDoubleClickCallback as they aren't used/needed and complicate things. Added LLPanel::childSetAction overload that accepts boost::singal2::signal (for boost::bind). Now using boost::function for various callbacks in LLScrollListCtrl (for boost::bind). 2012-12-04 21:54:01 -06:00