Dean Herbert
d1fd14e287
Add missing nullable
2022-03-18 13:57:36 +09:00
Bartłomiej Dach
b21fa78cbf
Move dependencies out of fields to BDL args where possible
2022-03-16 21:55:36 +01:00
Dean Herbert
603527d72d
Fix potential crash when highlighting chat messages
...
Test failed locally in `TestPublicChannelMention`. This test seems to
specify that the same message may arrive twice with the same ID, so
rather than overthinking this one I propose we just use `FirstOrDefault`.
```csharp
TearDown : System.AggregateException : One or more errors occurred.
(Sequence contains more than one matching element)
----> System.InvalidOperationException : Sequence contains more than
one matching element
--TearDown
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean
includeTaskCanceledExceptions)
at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout,
CancellationToken cancellationToken)
at osu.Framework.Extensions.TaskExtensions.WaitSafely(Task task)
at osu.Framework.Testing.TestScene.checkForErrors()
--InvalidOperationException
at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 source,
Func`2 predicate, Boolean& found)
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1
source, Func`2 predicate)
at
osu.Game.Overlays.Chat.DrawableChannel.<processMessageHighlighting>b__14_0()
in
/Users/dean/Projects/osu/osu.Game/Overlays/Chat/DrawableChannel.cs:line
102
at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
```
2022-03-16 18:38:06 +09:00
Jai Sharma
e38d9eafa0
Use BindTarget
instead of caching for ControlItem
unread flow
2022-03-15 22:37:15 +00:00
Jai Sharma
49b74d7867
Use BindTarget
instead of caching for ControlItem
mentions bindable flow
2022-03-15 22:33:36 +00:00
Jai Sharma
481b8fe80b
Use Orange1
for ControlItemMention
background colour
2022-03-15 22:22:32 +00:00
Jai Sharma
7621e779fa
Move ControlItem
Action assignments into BDL
2022-03-15 22:19:58 +00:00
Jai Sharma
73a0373b4e
Code quality fixes
2022-03-14 21:56:56 +00:00
Jai Sharma
ec61b88ec2
Adjust ControlItem padding
2022-03-14 21:39:57 +00:00
Jai Sharma
75958bf270
Refactor ControlItemText to use bindable flow for unread state
2022-03-14 21:32:30 +00:00
Jai Sharma
b01a809d55
Refactor ControlItemMention to use bindable flow
2022-03-14 21:26:33 +00:00
Jai Sharma
1f0f6990f0
Use ColourProvider.Content1 for ControlItemText colour
2022-03-14 21:16:28 +00:00
Jai Sharma
3aa343b987
Use OsuColour.YellowLight for ControlItemMention background
2022-03-14 21:14:33 +00:00
Jai Sharma
9621ef9437
Use OsuColour.Red1 for ControlItemClose hover colour
2022-03-14 21:10:39 +00:00
Jai Sharma
e91af664ef
Adjust ControlItemAvatar placeholder animation and colour
2022-03-14 20:37:54 +00:00
Jai Sharma
12472593cc
Mark required dependencies as non-nullable
2022-03-14 20:14:04 +00:00
Jai Sharma
c0d82dfb41
Code quality fixes
2022-03-14 19:42:55 +00:00
Jai Sharma
39c30516d0
Implement ChannelControlItem
for new chat design
...
Adds new component `ChannelControlItem` and it's child components to be
used as the clickable control in the new chat sidebar for joined
channels.
Has public properties `HasUnread` and `MentionCount` to control the
display of the channel having unread messages or mentions of the user.
Channel select/join requests are exposed via `OnRequestSelect` and
`OnRequestLeave` events respectively which should be handled by a parent
component.
Requires a cached `Bindable<Channel>` instance to be managed by a parent
component.
Requires a cached `OveralayColourScheme` instance to be provided by a
parent component.
2022-03-14 18:55:27 +00:00
Salman Ahmed
53c57661c7
Move implementtaion detail to inline comment
2022-03-11 18:34:22 +03:00
Salman Ahmed
5b70139b33
Avoid running message highlight processing more than once
2022-03-11 18:32:49 +03:00
Salman Ahmed
cc87563d57
Merge branch 'master' into chat-mention-highlight
2022-03-11 17:51:22 +03:00
Salman Ahmed
d07e3101ea
Improve message highlight handling in DrawableChannel
2022-03-10 23:07:15 +03:00
Dean Herbert
46f2db1712
Move ChannelListingItem
spacing into item so input is always handled by an item in the list
...
Without this change, there would be a couple of pixels between each list
item where nothing would be hovered. This is a pretty annoying UX which
we should be avoiding we possible.
2022-03-10 15:58:57 +09:00
Dean Herbert
1a187d4dec
Add animation to checkbox when joning/leaving a channel
2022-03-10 15:54:42 +09:00
Salman Ahmed
b25c37ce62
Instantiate highlight background container on animation
...
Also removes the necessity of scheduling as it actually never worked as
intended, `Scheduler` will still update even when the chat line is
masked away, and the animation will never be held anyways.
The new duration of the animation should be enough for long scrolls
either way.
2022-03-10 03:49:42 +03:00
Salman Ahmed
cf9671cafb
Increase highlight delay to 1500ms
2022-03-10 02:50:15 +03:00
Salman Ahmed
80c0df6af5
Scroll chat line to channel center
...
We may eventually want that encapsulated within `ScrollIntoView`, as it
would also come in handy for `GameplayLeaderboard`.
2022-03-10 02:50:15 +03:00
Salman Ahmed
93cf93943f
Schedule chat line highlight after children to handle non-loaded lines
2022-03-10 02:48:33 +03:00
Salman Ahmed
2d8983383a
Revert newMessagesArrived
changes and always schedule highlight
...
In the case a message arrives and the chat overlay is hidden, clicking
on the mention notification will not work as the `HighlightedMessage`
bindable callback will execute before the scheduled `newMessagesArrived`
logic (which was hanging since the message arrived until the chat
overlay became open because of the notification).
Simplify things by always scheduling the `HighlightedMessage` bindable
callback.
2022-03-10 01:11:27 +03:00
Jai Sharma
b67f9269f9
Remove NewChat
namespace
2022-03-09 18:13:56 +00:00
Salman Ahmed
5e0882df8d
Simplify message highlighting transforms
2022-03-08 04:00:11 +03:00
Salman Ahmed
d74064b94b
Use Equals
instead of reference equality operator
2022-03-08 03:56:27 +03:00
Salman Ahmed
7f47be4680
Refactor message highlighting logic to rely on a Channel
data bindable
2022-03-08 03:19:37 +03:00
Salman Ahmed
30b38345aa
Add ability to highlight chat lines
2022-03-07 05:08:36 +03:00
Salman Ahmed
a13a087f5d
Add xmldoc to trackNewContent
to explain its purpose
2022-03-06 23:51:27 +03:00
Salman Ahmed
9ec0e74813
Move scrolling to UpdateAfterChildren
to avoid scheduling
...
At least that's what I believe "let FillFlow update to new size" means.
2022-03-06 23:50:58 +03:00
Salman Ahmed
9bc1f3f014
Further refactor and simplify ChannelScrollContainer
2022-03-06 23:34:12 +03:00
Salman Ahmed
5b3ffb12b7
Refactor channel scrolling container to handle manual scrolls resiliently
2022-03-05 23:27:07 +03:00
Dean Herbert
6b6dd93e9e
Fix LinkFlowContainer
not creating user links supporting full IUser
specification
2021-11-08 14:17:47 +09:00
Dean Herbert
b9983add15
Rename User
to APIUser
and move to correct namespace
2021-11-04 18:21:31 +09:00
Dean Herbert
36352d1de4
Improve highlighted chat username shadow effect
2021-08-21 14:34:35 +09:00
Dean Herbert
9b9dacf3fe
Update usages of Drawable.Click()
2021-08-04 17:30:33 +09:00
Jamie Taylor
9b7bb37244
Add hover+select sounds to some components that are missing them
2021-07-30 21:35:28 +09:00
Nathan Alo
812624a502
use .Equals()
instead
2021-06-24 10:45:20 +08:00
Nathan Alo
564c72bf74
compare directly instead of comparing IDs
2021-06-24 10:10:57 +08:00
Nathan Alo
73590bfca1
Return an empty array when the sender is from system.
2021-06-24 07:20:31 +08:00
Dean Herbert
d9cc1c227b
Allow UpdateableAvatar to handle displaying username as tooltip
2021-06-17 16:31:12 +09:00
Craftplacer
b97f31f314
Revert deletion of xmldoc summary line
2021-06-05 19:03:11 +02:00
Craftplacer
39c3b08fc7
Merge remote-tracking branch 'upstream/master' into chat-mention
2021-06-05 11:18:06 +02:00
Dean Herbert
a91015302e
Replace second usage of new function
2021-06-03 14:56:29 +09:00
Dean Herbert
aa23c4a4b9
Merge branch 'master' into keyboard_shortcuts
2021-05-27 16:30:34 +09:00
Dean Herbert
52ca2f4797
Merge branch 'master' into chat-mention
2021-05-26 16:00:26 +09:00
Dean Herbert
699a317b44
Fix chat scroll sticking visually when scrolling beyond bottom extent
2021-03-29 18:07:47 +09:00
Dean Herbert
4cdde42228
Remove unnecessary backing field
2021-02-25 14:08:01 +09:00
Dean Herbert
1fd76ea3fb
Apply changes to UI components overriding functions with changing signatures
2021-02-22 19:01:42 +09:00
Dean Herbert
a76314a876
Use Update instead of UpdateAfterChildren (no need for the latter)
2021-02-02 15:57:17 +09:00
Dean Herbert
bb0753f68d
Use a better method of cancelling user scroll
2021-02-02 15:44:03 +09:00
Dean Herbert
398ab9c2c2
Use UserTrackingScrollContainer instead
2021-02-02 15:29:38 +09:00
Salman Ahmed
5c28c030c8
Unconditionally set "autoscroll" state
2021-02-01 22:08:57 +03:00
Salman Ahmed
15fcabb128
Add documentation to auto-scroll leniency
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-02-01 22:04:44 +03:00
Salman Ahmed
49e62c3a4b
Apply documentation changes
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-02-01 11:02:08 +03:00
Salman Ahmed
e806e5bcd1
Improve robustness of chat auto-scrolling logic
...
Fix auto-scrolling state changing by old messages removal logic
2021-01-31 23:45:49 +03:00
Dean Herbert
fca6b15d2f
Fix local echo messages remaining permanently dimmed when chatting via multiplayer
2021-01-22 16:05:45 +09:00
Bartłomiej Dach
0b42b4b955
Rename {Drawable -> Clickable}Avatar
2020-12-26 14:35:11 +01:00
Dean Herbert
d096f2f8f6
Fix potential cross-thread operation during chat channel load
...
The callbacks are scheduled to the API thread, but hooked up in BDL
load. This causes a potential case of cross-thread collection
enumeration.
I've tested and it seems like the schedule logic should be fine for
short term. Longer term, we probably want to re-think how this works so
background operations aren't performed on the `DrawableChannel` in the
first place (chat shouldn't have an overhead like this when not
visible).
Closes #11231 .
2020-12-21 16:39:50 +09:00
Angela Zhang
4c1e75f101
Small whitespace fix
2020-12-12 18:02:08 -06:00
Jess Meng
3dd6589d6e
Fixed style changes and cleaned up ctrl + t implementation
2020-12-12 15:53:08 -08:00
Joehu
2ad7e6ca88
Fix hovered channel tabs color when unselected
2020-09-17 19:10:58 -07:00
Dean Herbert
942276d88f
Remove outdated SearchableList classes
2020-09-03 16:34:58 +09:00
smoogipoo
96724bde32
Fix chat name backgrounds not dimming
2020-07-16 15:05:01 +09:00
Dean Herbert
c79d8a4251
Update ChannelTabControl in line with TabControl changes
2020-06-16 00:18:09 +09:00
smoogipoo
f3b5149648
Move some suggestions to warnings, resolve issues
2020-06-03 16:48:44 +09:00
Dean Herbert
c73d45bc01
Reduce initial channel load overhead by only loading history on active channel
2020-04-29 15:23:28 +09:00
Dean Herbert
1b6342438f
Hide scrollbars in tournament chat display
2020-03-23 12:05:16 +09:00
TheWildTree
acd280c855
Add System channel type and use it for the ChannelSelectorTab
2020-03-15 22:13:26 +01:00
TheWildTree
8991e88039
Fix active tab closing behaviour
2020-03-13 18:34:51 +01:00
TheWildTree
097bd37e37
Fix SelectorTab crashing tests after a reload
...
For some reason, the default channel type (Public) caused the channel manager to attempt to connect to an API, which was null at that time, after hot reloading the test environment (via dynamic compilation). Changing the channel type seems to fix that.
2020-03-13 18:34:51 +01:00
Dean Herbert
ed837d3115
Use framework extension method for FromHex
2020-03-11 10:18:41 +09:00
smoogipoo
2fb640f57f
Change to until step + fix CI error
2020-01-30 15:00:39 +09:00
smoogipoo
ce36e5458f
Fix possible crash with no channel topic
2020-01-30 14:35:03 +09:00
TheWildTree
d2a032ca8d
Move reverse-order comparer to ChannelTabControl
2020-01-25 22:16:21 +01:00
smoogipoo
bfb056c612
Apply input method signature refactorings
2020-01-20 18:17:21 +09:00
Craftplacer
1681e16738
Rework ChannelTabControl's AddChannel method to not auto select and let ChatOverlay handle this
2020-01-19 18:20:42 +01:00
Craftplacer
5f96940b7d
Remove unused injection
2020-01-19 17:56:01 +01:00
Craftplacer
32c2023517
Remove refactor in DrawableChannel
2020-01-19 17:20:54 +01:00
Craftplacer
8a9c90c5e6
Resolve CA errors #2
2020-01-18 16:18:17 +01:00
Craftplacer
8ddd36596e
Revert useless changes varying from properties, naming changes etc.
2020-01-18 15:40:55 +01:00
Craftplacer
bc6f71fe97
Preserve current channel if ChatOverlay is being loaded in
2020-01-18 15:27:55 +01:00
Craftplacer
1b53c0ff74
Remove populated property, and other changes
2020-01-16 23:15:30 +01:00
smoogipoo
d01cc37968
Fix channel tab control test scene
2020-01-16 18:36:27 +09:00
Craftplacer
0d812bce9f
WIP changes for code review
2019-12-26 03:32:40 +01:00
Craftplacer
02f9fc89f6
Merge branch 'master' into chat-mention
2019-12-17 06:59:49 +01:00
Craftplacer
b6c31e7764
Remove ignore list, move code to MessageNotifier and add it to DI
...
This also adds countable private message notifications.
2019-12-17 06:59:27 +01:00
Craftplacer
1a1253a4aa
Add null check to ScrollToAndHighlightMessage
2019-12-16 03:27:19 +01:00
Craftplacer
997b51b1f8
Make messageRemoved use helper method
2019-12-16 03:26:30 +01:00
Craftplacer
0225372e83
Rename method to ScrollToAndHighlightMessage
2019-12-16 03:24:07 +01:00
Craftplacer
eb3f851ce2
Split Notification class into three separate ones
2019-12-16 03:22:55 +01:00
Craftplacer
8b14090c95
Remove unused field
2019-12-16 02:13:26 +01:00
Craftplacer
20670730b9
Resolve code formatting
2019-12-16 01:57:07 +01:00
Craftplacer
15c25c571d
Merge remote-tracking branch 'upstream/master' into chat-mention
2019-12-16 00:59:06 +01:00
Craftplacer
8dfc8929f1
Add chat and notification logic to DrawableChannel
...
with alongside multiple helper methods
2019-12-16 00:48:22 +01:00
Joehu
5af363c920
Use default placeholder text on chat channel search box
2019-12-14 12:58:13 -08:00
Huo Yaoyuan
c0fe91a84c
Merge branch 'master' into sharpen
2019-11-26 18:21:50 +08:00
Dean Herbert
45514ff660
Apply fixes
2019-11-25 11:30:55 +09:00
Huo Yaoyuan
818553027b
Merge branch 'master' into sharpen
2019-11-21 23:42:46 +08:00
Berkan Diler
6cab517b2d
.NET Standard 2.1 implements Math.Clamp , use it instead of MathHelper.Clamp from osuTK.
2019-11-20 13:37:47 +01:00
Huo Yaoyuan
42a98c5d87
Use constants.
2019-11-12 20:07:01 +08:00
Huo Yaoyuan
bbeab6fa76
Use auto property.
2019-11-12 19:53:25 +08:00
Dean Herbert
54befb6f8f
Remove adjacent day separators
2019-10-29 15:45:41 +09:00
Dean Herbert
b06e70e546
Add failing test showing issue with day separator logic
2019-10-29 15:27:08 +09:00
Dean Herbert
09a6d1184a
Tidy up order of scroll changes
2019-10-29 14:33:05 +09:00
Dean Herbert
d1c6e3f620
Add test for scroll to end when max history is exceeded
2019-10-29 14:32:52 +09:00
Dean Herbert
e9aa7f3218
Subclass and use yellow for stand-alone chat display
2019-10-23 00:24:19 +09:00
Dean Herbert
3b4823abe7
Use foreach
2019-10-23 00:17:37 +09:00
Dean Herbert
0ba287a7fd
Rename variable
2019-10-23 00:14:22 +09:00
Andrei Zavatski
09b2f11bd5
Remove unused variable
2019-10-22 03:14:20 +03:00
Andrei Zavatski
b1eac6b400
Apply suggested changes
2019-10-22 03:11:19 +03:00
Andrei Zavatski
e9ae838f46
CI fixes
2019-10-22 02:16:52 +03:00
Andrei Zavatski
2896ed90e2
Fix incorrect date comparison
2019-10-22 01:55:26 +03:00
Andrei Zavatski
bb7af1e39c
Fix some margin/padding issues
2019-10-22 01:45:04 +03:00
Andrei Zavatski
d19041fa53
Implement DaySeparator class
2019-10-22 01:30:37 +03:00
Andrei Zavatski
75f444e431
Basic implementation
2019-10-22 00:44:58 +03:00
Joehu
38c1cee5fd
Fix tab controls overflowing
2019-10-06 10:22:55 -07:00
Dan Balasescu
b161aa22c3
Merge branch 'master' into simplify-exit-logic-of-screens
2019-10-02 18:13:57 +09:00
Ganendra Afrasya
b6dd610af8
Apply reviews
2019-10-01 23:18:03 +07:00
Joehu
5f700f2ae9
Simplify exit logic of screens with textboxes using back button receptor
2019-10-01 08:26:34 -07:00
Ganendra Afrasya
208b9a4eba
Add new virtual float for username to timestamp padding
2019-10-01 20:47:53 +07:00
smoogipoo
717a287d69
Use real ellipsis character
2019-09-10 17:11:26 +09:00
smoogipoo
01fd08cba9
Fix broken positioning of effected usernames
2019-09-10 17:11:16 +09:00
Dean Herbert
eeebd517f3
Use MaxWidth specification
2019-09-09 12:08:59 +09:00
Dean Herbert
c6b8f2db77
Update historic licence header
2019-09-06 19:05:50 +09:00
Dean Herbert
374479f837
Add truncatino of long usernames in chat
2019-09-06 19:00:57 +09:00
Joehu
6ca17bdfd5
Center icon and text using anchor and origin instead of margin
2019-09-02 10:42:21 -07:00
Dean Herbert
d1eafafa51
Allow searching channels by topics
...
Closes #5939
2019-09-01 19:57:12 +09:00
Dean Herbert
52f42ddade
Use child instead of children
2019-08-14 10:53:47 +09:00
Dean Herbert
b6bc84af2c
Fix chat context menus displaying out-of-bounds
2019-08-14 10:52:26 +09:00
Max Hübner
316b11d08b
use single line if-statement
2019-07-28 20:36:21 +02:00
Dean Herbert
663f34d3d8
Remove width specifications
2019-07-29 02:47:26 +09:00
Max Hübner
f7b9ddb48c
combine Text and TextBold
2019-07-28 12:40:21 +02:00
Max Hübner
df8d4d8966
add truncation to base class
2019-07-28 12:16:32 +02:00
Max Hübner
c6d4ce0f8a
revert truncation in derived class
2019-07-28 12:14:06 +02:00
Max Hübner
edf6453e04
truncate long usernames in private chat
2019-07-27 18:56:37 +02:00
Dean Herbert
56b27db7a4
Use "Click" instead of "Action"
2019-07-26 13:17:33 +09:00
Dean Herbert
7ec6ac7b0e
Remove unnecessary override
2019-07-26 13:15:36 +09:00
Max Hübner
78a8a6490e
close chat tabs with middle mouse button
2019-07-24 17:17:29 +02:00
Dean Herbert
704fe2d655
Remove text shadow in chat
2019-07-23 16:04:50 +09:00
Dean Herbert
e6c1b059bc
Disable dimming main content
2019-07-01 18:49:36 +09:00
David Zhao
e92c1ca009
Fix styling, private tabClosed, remove type check
2019-06-26 19:25:54 +09:00
David Zhao
6c8cc9728f
fix channel selector not being closed
2019-06-26 12:00:58 +09:00
Dan Balasescu
c79c4641f3
Merge branch 'master' into use-modelbackeddrawable
2019-06-21 14:26:07 +09:00