1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-24 14:07:27 +08:00
Commit Graph

7350 Commits

Author SHA1 Message Date
Salman Ahmed
ced5be33e6 Display pass/play count in success rate percentage tooltip 2022-04-02 18:08:57 +03:00
Dean Herbert
6afed5e865 Fix new SettingsItem attribute not playing well with non-Drawables 2022-04-01 16:01:33 +09:00
Dean Herbert
66f5eae530 Hook up a dropdown to show all available sprites for the current skin 2022-04-01 15:01:43 +09:00
CenTdemeern1
86d262a355
Merge branch 'ppy:master' into clock-button 2022-03-31 23:08:30 +02:00
CenTdemeern1
bdb21b17f7 Fix my code according to the changes @bdach requested 2022-03-31 20:39:26 +02:00
CenTdemeern1
c64a90b39e Remove a newline to comply with codefactor 2022-03-31 17:21:50 +02:00
CenTdemeern1
f1aa60c0f1 Make the clock feel more like a button 2022-03-31 16:26:53 +02:00
Dean Herbert
0a34ce2509 Increase font weight for runtime clock
Fonts this small are required to be `SemiBold` by design guidelines.
Somehow missed this.
2022-03-31 19:07:30 +09:00
Dean Herbert
e8a295a61b Add test coverage of textbox focus in settings panels when switching between nested panels 2022-03-31 15:24:21 +09:00
Jai Sharma
fff30e8a6e Simplify show/hide of text and search in ChatTextBar 2022-03-30 21:02:12 +01:00
Bartłomiej Dach
9621a7f9cb
Merge branch 'master' into fix-autoplay-mod-user-id 2022-03-30 21:41:45 +02:00
Jai Sharma
eec3fef7a6 Remove the enter box in ChatTextBar 2022-03-30 20:25:23 +01:00
Dean Herbert
975883da5c Move all usages of client.realm filename to a single const 2022-03-30 13:34:48 +09:00
Jai Sharma
e7d2d94eee Fix code quality issues in ChatTextBar 2022-03-30 02:16:50 +01:00
Jai Sharma
f049d7cb67 Implement ChatTextBox for new chat design
Reference design: https://www.figma.com/file/f8b2dHp9LJCMOqYP4mdrPZ/Client%2FChat?node-id=1%3A297

Adds new component `ChatTextBox`.
Exposes `BindableBool` `ShowSearch` to change text input behaviour
between normal and search behaviour.

Adds new component `ChatTextBar`.
Exposes `BindableBool` `ShowSearch` which toggles between showing current
chat channel or search icon.
Additionally binds to child `ChatTextBox` components.
Requires a cached `Bindable<Channel>` instance to be managed by a parent
component.
2022-03-29 22:33:38 +01:00
Dean Herbert
4741679a94
Change confirmation message to be more clear about intentions
Co-authored-by: Henry Lin <henry.ys.lin@gmail.com>
2022-03-29 19:03:50 +09:00
Dean Herbert
1fb3d11591 Add ability to "migrate" data to another folder which has an existing install
Until now, migrating would always attempt to move files.

There's a chance that a user is reinstalling osu! but has their data at
a custom location. We want to allow the chance for them to continue
using the external data. This seems like the easiest way to make it
work.

Would be nice if we had a `Game.Restart()` method, but maybe this is
enough for now?

Note that further down the road we will probably prompt the user to
potentially select a custom install path (including one with existing
data) before osu! gets to writing anything.
2022-03-29 18:04:31 +09:00
Dean Herbert
dc7dc7f65a Update UserProfileOverlay and ClickableAvatar to treat system users more correctly 2022-03-28 22:57:16 +09:00
Salman Ahmed
b6822f8190 Remove redundant/outdated Origin line 2022-03-26 14:55:19 +03:00
Dean Herbert
9b7b897b3c Adjust padding to fit better 2022-03-26 20:34:50 +09:00
Dean Herbert
ab8db3b7dc Move nested classes to own files 2022-03-26 20:34:17 +09:00
Dean Herbert
4ddf3cb1d9 Add ability to cycle between clock display modes 2022-03-26 19:18:41 +09:00
Dean Herbert
97e9049a2c Adjust metrics and colours to better match the actual toolbar 2022-03-26 18:56:40 +09:00
Dean Herbert
252d1924e7 Adjust metrics for better legibility at small sizes 2022-03-26 18:13:33 +09:00
Dean Herbert
999ae88af2 Show game time display in clock 2022-03-26 18:13:20 +09:00
Dean Herbert
e8f5a8e3d6 Refactor hands for legibility (visual and code) 2022-03-26 18:13:13 +09:00
Dean Herbert
0d8a7246dd Add basic implementation of clock 2022-03-26 18:13:13 +09:00
Dean Herbert
1acfbf490b
Merge branch 'master' into mod-overlay/settings-area 2022-03-25 17:37:39 +09:00
Dean Herbert
2938f44e6c Update PresentExternally usages in line with framework changes 2022-03-24 23:41:07 +09:00
Bartłomiej Dach
8647bebdca
Merge branch 'master' into hold-to-discard-changes 2022-03-22 20:37:43 +01:00
Bartłomiej Dach
8192fb47fe
Merge branch 'master' into skin-editor-eat-input 2022-03-22 19:22:48 +01:00
Dean Herbert
f95bd89166 Revert editor exit behaviour to exit without changes for now 2022-03-22 14:46:57 +09:00
Dan Balasescu
aea03ca21d
Merge pull request #17359 from frenzibyte/fix-score-panel-max-combo
Improve method of retrieving beatmap maximum combo for results score panels
2022-03-22 06:28:30 +09:00
Dean Herbert
2f18c512cd Convert SkinEditorOverlay to an OverlayContainer to allow it to block input 2022-03-21 17:33:56 +09:00
Dean Herbert
b42081dd9b Add DangerousButton for use in popup dialogs 2022-03-21 16:06:45 +09:00
Dean Herbert
3bb01fd595 Fix close button animation not being applied correct on mouse down due to conflicting scales 2022-03-21 14:41:57 +09:00
Dean Herbert
7ca3beb7cc Also add fade to ChannelItem selected box 2022-03-21 14:41:42 +09:00
Dean Herbert
428e439f40 Remove space between '#' and channel name
This was in flyte's design (he was following discord) but doesn't feel
too correct when it's not aligned with anything else. We can revisit
this if/when we have better glyphs to represent channel types.
2022-03-21 14:36:56 +09:00
Dean Herbert
16caf2d30b Add slight animation when highlighting an unread channel 2022-03-21 14:34:54 +09:00
Dean Herbert
692362131e Add animation when mention pill appears (or a new message arrives) 2022-03-21 14:31:51 +09:00
Dean Herbert
11b050b66b Add slight fade when hovering ChannelListItems 2022-03-21 14:28:14 +09:00
Dean Herbert
9eda2f2df1 Remove box surrounding close button 2022-03-21 14:25:29 +09:00
Dean Herbert
f922a6b556 Rename renaming button/pill classes 2022-03-21 14:15:22 +09:00
Dean Herbert
812343b410 Merge branch 'master' into new-chat-channel-control 2022-03-21 14:14:02 +09:00
Salman Ahmed
b9859f9f21 Obsolete BeatmapInfo.MaxCombo and suppress in usages 2022-03-20 16:30:29 +03:00
Jai Sharma
f3702fbefb Pass correct params to UpdateableAvatar ctor in ChannelListItem 2022-03-19 22:20:17 +00:00
Jai Sharma
ba5a43b526 Rename ControlItem -> ChannelListItem and associated classes 2022-03-19 21:49:14 +00:00
Jai Sharma
653bb47dd5 Use UpdateableAvatar and remove redundant ControlItemAvatar class 2022-03-19 21:36:11 +00:00
Jai Sharma
5373c3066f Use OsuAnimatedButton as base for ControlItemClose 2022-03-19 21:23:32 +00:00
Jai Sharma
a293e0c766 Remove redundant ControlItemText class 2022-03-19 16:44:58 +00:00
Dean Herbert
dfda093f4b Rename icon creation method 2022-03-18 14:03:52 +09:00
Dean Herbert
5d940ded09 Fix incorrect usage of nullable in ControlItemMention 2022-03-18 13:59:03 +09:00
Dean Herbert
d1fd14e287 Add missing nullable 2022-03-18 13:57:36 +09:00
Salman Ahmed
7aae9bbd1b Improve channel bindable logic in ChatOverlay to avoid potential nullrefs 2022-03-17 08:31:38 +03:00
Bartłomiej Dach
624f9fc774
Implement mod settings area component 2022-03-16 23:13:11 +01: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
Salman Ahmed
a31611bdec Improve channel switching flow in HighlightMessage 2022-03-10 23:07:15 +03:00
Salman Ahmed
5315ff794a Handle non-existing channels on message highlighting gracefully 2022-03-10 21:29:32 +03:00
Salman Ahmed
717ddbba4e Fix skin components toolbox not autosizing properly 2022-03-10 16:30:20 +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
Dean Herbert
0155519343 Merge branch 'master' into new-chat-channel-listing 2022-03-10 15:49:06 +09:00
Dean Herbert
022dd88aef
Merge branch 'master' into chat-mention-highlight 2022-03-10 14:23:23 +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
Dean Herbert
affcf5180b
Merge pull request #17161 from smoogipoo/fix-listing-score-conversion
Fix scores not being recalculated in beatmap overlay
2022-03-09 13:32:45 +09:00
Dean Herbert
58aef25ad5
Merge pull request #17152 from bdach/mod-overlay/difficulty-multiplier
Implement difficulty multiplier display for new mod select design
2022-03-09 12:11:16 +09:00
Jai Sharma
7daa2d0ea4 Use correct fonts and colours in ChannelListingItem 2022-03-09 00:36:19 +00:00
Jai Sharma
7dd51a9c4a Reorder class attributes 2022-03-09 00:12:44 +00:00
Jai Sharma
a3477c3841 Implement ChannelListing for new chat design
Adds components `ChannelListing` and `ChannelListing` item with visual
test. Essentially a more simplified version of the existing
`ChannelSelectionOverlay` component.

Correctly implements `IFilterable` behaviour to filter child channel
items. Channel joined state is based on the underlying `Joined` bindable
of the `Channel` class.

Channel join/leave events are exposed via `OnRequestJoin` and
`OnRequestLeave` events which should be handled by parent component.

Requires a cached `OverlayColourScheme` instance to be provided by the
parent overlay component when added.
2022-03-08 22:30:58 +00:00
Dean Herbert
a2ef086c1f Fix potential crash on rare incorrect firing of skin dropdown update methods
As brought to light by https://gist.github.com/smoogipoo/56eda7ab56b9d1966556f2ca7a80a847.

There's a chance that the dropdown is not populated by the time
`updateSelectedSkinFromConfig` is fired via an external means (config
changes).
2022-03-09 01:08:13 +09:00
Dan Balasescu
f5cd967635 Fix scores not being recalculated in beatmap listing 2022-03-08 19:07:39 +09: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
f645869958 Update ChannelManager.CurrentChannel directly to handle non-loaded chat scenario
`currentChannel` gets instantiated once the chat overlay is open, while
`HighlightMessage` could be called while the chat overlay has never been
open.

This will all be rewritten with the new chat overlay design anyways, so
should be fine for now.
2022-03-08 03:42:18 +03:00
Salman Ahmed
7f47be4680 Refactor message highlighting logic to rely on a Channel data bindable 2022-03-08 03:19:37 +03:00