Commit Graph

36 Commits

Author SHA1 Message Date
Liru Færs
c3428c6d57 When chat scrolls, IDBearer URL menus shouldn't lead to the wrong place
Optimizes away multiple iterations over scroll lists and
multiple parsings of urls to determine the target(s)
At the cost of the last selection being stored statically in a vector

Removes virtual LFIDBearer::getNumSelected
2020-01-10 14:46:54 -05:00
Liru Færs
f73fb6424b Const qualify copy 2020-01-06 12:14:13 -05:00
Liru Færs
841bd0e515 Add Group menus to group search, profiles, and groups floater
Also expand Group SLURL menu items for links in chat
Calculate ID Type from mPopupMenu's presence in sMenus, if possible.
2019-11-24 07:53:36 -05:00
Liru Færs
1b913443ad Add in menus for groups, and rework LFIDBearer to handle its menus
Also allow List.StartIM for multiselect
Add IsInGroup, NotInGroup, Leave, Join, and Activate "List." menu options
2019-11-24 00:27:19 -05:00
Liru Færs
8f3b10875e Introduce LFIDBearer, a Class for menu bearing UI that offers IDs to menus
Move menu code from scroll list into there
Separate out interface for getting IDs

No longer bother with the focus manager, for menus where not necessary,
this ensures that if focus suddenly changes, it won't break menu UX flow.

Clean up all the static functions by using new static class functions
2019-10-07 23:46:09 -04:00
Liru Færs
ba9e7d8056 Fix filtering scrolllist scrollies
filterItem now returns a bool whether or not the item was filtered.
2019-08-18 01:13:26 -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
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
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
abb4b1ac7c Fix for scrolllist columns not resizing when header width is adjusted. 2016-05-01 19:41:19 -05:00
Shyotl
09f4528bfb Removed LLDynamicArray, LLDynamicArrayIndexed, LLDynamicArrayPtr, LLDLinked, LLDynamicQueuePtr, LLEnum, and LLIndexedQueue. Added new LLPointer variants. 2015-06-19 18:27:21 -05:00
Inusaito Sayori
a7d3d08057 Linux compile fix, thanks for pointing this out, Ratany. 2015-03-21 05:36:00 -04:00
Inusaito Sayori
d7c8b00d90 In the Region Tracker Floater, save all selected items when refreshing. 2015-03-21 03:47:21 -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
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
c261eb7433 Remove final parameter from LLScrollListCtrl::addStringUUIDItem, it was unused. 2013-07-16 00:56:40 -04:00
Lirusaito
cee9e976b1 Remove unused function LLScrollListCtrl::setDisplayHeading 2013-07-15 22:31:38 -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
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
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
a4591a5eaa Fix for friends list not resorting upon avatar online status change. Also did some minor cleanup 2012-12-09 17:05:54 -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
Lirusaito
0846f8a963 Fixeds and ToDones
-Color Fixies-
Fixed Gemini skin not looking as it originally did.
We now use DefaultListText to color all otherwise uncolored text in scroll list cells.
All of our dark skins have been updated to use white here, as dark skins are intended to have white text...
This includes the Dark we ship with.

LLFloaterActiveSpeakers no longer uses hard coded font colors, it uses SpeakersInactive, DefaultListText, and SpeakersGhost.

LLFloaterAvatarList no longer uses hard coded font colors, it uses DefaultListText, RadarTextChatRange, RadarTextShoutRange, and RadarTextDrawDist, in place of previously hard coded font colors
Since the tooltip defines color meaning, these new colors should only be skinned to change shade.

DefaultListText defaults to black; SpeaksInactive, gray(grey4); SpeakersGhost, Red; RadarTextChatRange, Red; RadarTextShoutRange, Yellow(yellow1); RadarTextDrawDist, Green(green2).


-Translation update and fixies-
Partial credit to viewer-development, thanks for hanging onto old strings!  Also, updated to look more like v-d in translated areas.
Punctuation strings can be used quite a lot.  Brought them all in, just in case.

AscentPrefs*:
Drag and Drop points now use CurrentlySetTo, CurrentlyNotSet, AnItemNotOnThisAccount, and NotLoggedIn. (applies, as well, to FloaterAO)
Power User message is now built from PowerUser1, PowerUser2, Unlocked:, PowerUser3, RightClick, PowerUser4 and PowerUser5; this should give translators enough space to explain any tough to translate, and make the message easier to alter in the future, if necessary.

LLCompileQueue:
Now uses translation strings from upstream
Starting, Done, Resetting, Running, and NotRunning in its xml.
CompileQueueTitle, CompileQueueStart, CompileQueueDownloadedCompiling, CompileQueueScriptNotFound, CompileQueueProblemDownloading, CompileQueueInsufficientPermDownload, CompileQueueInsufficientPermFor, CompileQueueUnknownFailure, ResetQueueTitle, ResetQueueStart, NotRunQueueTitle, and NotRunQueueStart from strings.

LLFloaterAvatarList(floater_radar) now uses has_entered, has_left, the_sim, draw_distance, shout_range, and chat_range in its xml for translatable alerts.

LLFloaterLand(floater_about_land) now uses minutes, 1_minute, 1_second, seconds, and remaining from its xml.
LLFloaterLand, LLFolderView, LLPanelDirBrowser now make use of InventoryNoMatchingItems, NoneFound, and Searching in their searches.
LLFolderView was brought closer to v-d in translation.

LLGroupNotify now uses GroupNotifyGroupNotice, GroupNotifySentBy, GroupNotifyAttached, next (also now used by LLNotify), ok, GroupNotifyGroupNotices, GroupNotifyViewPastNotices, GroupNotifyOpenAttachment, and GroupNotifySaveAttachment.

LLInventoryFilter synced with V-D for translation:
Now uses Animations, Calling Cards, Clothing, Gestures, Landmarks, Notecards, Objects, Scripts, Sounds, Textures, Snapshots, No Filters, Since Logoff, and Worn.

LLManipRotate now uses Direction_Forward, Direction_Left, Direction_Right, Direction_Back, Direction_North, Direction_South, Direction_West, Direction_East, Direction_Up, and Direction_Down, like upstream v-d.

LLPanelAvatar(panel_avatar) now uses None string in its xml for when there are no groups, also removed cruft. Though the None has not been showing up for quite some time, anyway...

LLPanelObjectInventory now uses Buy, LoadingContents and NoContents,
however the last two strings did not seem to show up anyway...
thanks to Latif Khalifa, Jean Horten, theGenius Indigo and Cubbi Bearcat for confirming this happens across many different versions and on both Windows and linux(32 and 64).

LLPreviewScript now uses CompileSuccessful, SaveComplete, ObjectOutOfRange, and CompileSuccessfulSaving.

LLScrollingPanelParam now translates Less and More.
Avatar Shape Information strings now used for customize appearance panels.

LLTextureCtrl now uses multiple_textures.

LLToolpie has been updated to use v-d include order and now uses UnmuteAvatar, MuteAvatar, UnmuteObject, and MuteObject2 strings.
LLVOAvatarSelf now uses BodyParts* strings for translation of toolpie entries pertaining to bodyparts.

LLViewerMenuFile now uses UnknownFileExtension, and UploadingCosts.

LLViewerMessage now uses Cancel(also used by LLViewerDisplay), AcquiredItems, Saved_message, IM_autoresponse_sent_item, IM_autoresponded_to, IM_announce_incoming, InvOfferDecline, InvOfferGaveYou, InvOfferOwnedByUnknownUser, InvOfferAnObjectNamed, InvOfferOwnedBy, InvOfferOwnedByUnknownGroup, and InvOfferOwnedByGroup.


-AvatarRadar Update-
AvatarRadar enhanced with code from both Cool VL Viewer and some avian corpse.
e_radar_alert_type has been reworked to allow bitwise usage in the future.

Cool stuff:
gSavedSettings for radar are now CachedControls,
entering boolean is now checked before going into the switchcase,
Style changes, yay C++ style.

Avian Flu:
Distance for shout range corrected to be 96.
handleKeyHere: If the user hits enter with an avatar on the radar selected, focus camera on selected avatar; ctrl-enter, teleport to selected avatar.

Otherwise:
Tiny spelling fixies, and a suggestive comment.
2012-08-05 20:40:02 -04:00
Shyotl
2d75e8fda6 Added mouse_wheel_opaque attribute for scroll_list. Made several advanced submenus tear-off-able. Updated menu hover logic (removed MAX_MOUSE_SLOPE_SUB_MENU check) to make menus behave more predictably to cursor movement. Improved menu handling when it runs off of screen (and only uses vertical flip if menu item is in lower half of screen) 2012-03-03 22:11:53 -06:00
Shyotl
3e9c23e43b Setting through LLView::userSetShape now done through LLView::setShape. LLView::snappedTo renamed to LLView::setSnappedTo. virtual overriding of LLView::userSetShape now done through LLView::handleReshape which LLView::setShape calls. 2011-07-17 19:59:30 -05:00
Shyotl
0663a3f028 Added checkboxes to groups list for visibility, groupchat, and notices...
-Required addition of an extra texture overlay for list headers, as normal button overlay is used for sort arrows.
-Added padding to italic text in scroll list, as the text clipped outside of the element.
-Groups list is now sortable and has header visible.
-'none' entry always be first in the list, regardless of sort order.
-LLGroupMgrGroupData::mListInProfile removed. Was unreferenced and always false. LLGroupMgrGroupData doesn't handle show/chat/notify properties
2011-06-23 03:56:09 -05:00
Hazim Gazov
25fe391f07 added message logger / builder floaters 2010-05-05 17:08:05 -03:00
Hazim Gazov
7a86d01598 Imported existing code 2010-04-02 02:48:44 -03:00