This changes the flow of actions (yet again.. sorry) to standardise what
is shown on the beatmap options button in the footer and the context
menus.
This is something I wanted from the start – for devices where right
click is not available, it's always preferable to have a second method
of accessing actions which isn't the context menu.
Collection actions are missing for now, as they will come in a second
pass which includes tidying things up further.
Fix formatting
Duplicate menu items between implementations
This isn't used visually for context menus, but is handy to have when
using this class to convey more general information about actions,
including usages outside of context menus where an icon is relevant to
have.
I can't count the number of times where someone backed up just the file
store without the realm database and lost data. As such this moves the
"IMPORTANT READ ME" disclaimer a directory higher and attempts to
describe the "proper" backup procedure in detail.
People don't read, but maybe this will at least partially lower the
volume.
Closes https://github.com/ppy/osu/issues/33231.
I'm not sure how to reproduce the instances of this reported to sentry
with `Drawable{Slider,Spinner}`, but this bug is about to be made worse
by `DrawableHoldNote` in mania getting its own `JudgementResult` subtype
in https://github.com/ppy/osu/pull/33194 - for that one to reproduce
just start gameplay test while editor is seeked to a time instant where
a hold note is mid-hold.
There's possibly an argument here that `CreateResult()` should live on
`HitObject` and not `DrawableHitObject`, and I'd even be partial to such
an argument, but doing that would be a rather hard ruleset API break
(albeit trivial one to resolve), and also may dredge up past
conversations about `Judgement` and `JudgementResult` (cf.
https://github.com/ppy/osu/pull/26563) that I would rather not get into
again.
Notably this is not source-breaking for rulesets. It may be
binary-breaking, I haven't tested.
Probably closes https://github.com/ppy/osu/issues/33230.
I say "probably" because I couldn't reproduce this myself using the
scenario provided in the issue but looking at the code involved I can
see why it would happen. Long and short of it is that the speed
adjustment cleanup code was much too reliant on disposal executing
quickly, which as we've learned on several occasions before, cannot be
relied upon.