Skip to content

Extract "discrete adjustment control" for editor re-use#38140

Merged
peppy merged 4 commits into
ppy:masterfrom
bdach:discrete-adjustment-control
Jun 29, 2026
Merged

Extract "discrete adjustment control" for editor re-use#38140
peppy merged 4 commits into
ppy:masterfrom
bdach:discrete-adjustment-control

Conversation

@bdach

@bdach bdach commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator
Screen.Recording.2026-06-23.at.13.34.28.mov

The eventual goal to this is to use this new control in place of the slider velocity sliders.

This new control has also been applied to the timing screen.

Screenshot 2026-06-25 at 09 27 48

This, and subsequent changes I have queued as proofs-of-concept, are intended to supersede and close #37753.

Naming is not great, open to better propositions.

The eventual goal to this is to use this new control in place of the
slider velocity sliders.

An additional boon to implementing such a control is that the BPM and
offset controls on the timing screen can be consolidated accordingly to
save space, which is done in this PR.
@bdach bdach requested a review from peppy June 23, 2026 11:50
@bdach bdach self-assigned this Jun 23, 2026
@bdach bdach added area:editor type/cosmetic Only affects the game visually. Doesn't affect things working or not working. labels Jun 23, 2026
@bdach bdach moved this from Inbox to Pending Review in osu! team task tracker Jun 23, 2026
@peppy

peppy commented Jun 25, 2026

Copy link
Copy Markdown
Member

I'm not sure about moving things around as you have here. The location of the offset/bpm controls is intentional to guide the timing process. There's also a thing where the "time" value should only be touched using the new UI control for timing purposes – for non-timing points it makes little sense to make non-beat-snapped adjustments.

Would you be against having the "time" field remain in its old style, and have "offset" and "bpm" in the previous location? It's fine if they are one control per row rather than sharing a single row.

@bdach

bdach commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator Author

Would you be against having the "time" field remain in its old style, and have "offset" and "bpm" in the previous location? It's fine if they are one control per row rather than sharing a single row.

Just to confirm my understanding: are you requesting there to be two separate input boxes for offset in total, or are you requesting a full revert of my changes?

@peppy

peppy commented Jun 25, 2026

Copy link
Copy Markdown
Member

Forgive the jank (ignore paddings and red arrows obviously) but this is what I was thinking ordering wise:

Pixelmator Pro 2026-06-25 at 05 57 24

So yes, Time would still exist as it has until now (old textbox entry style), plus Offset would use the new control but in the old location.

@bdach

bdach commented Jun 25, 2026

Copy link
Copy Markdown
Collaborator Author

And you are okay with "Time" and "Offset" changing the same underlying quantity, thus requiring bi-directional synchronisation?

@peppy

peppy commented Jun 25, 2026

Copy link
Copy Markdown
Member

Yeah, I think that's fine. Hopefully it's not too much complexity overhead..

bdach and others added 3 commits June 25, 2026 09:27
Suggested-by: Dean Herbert <pe@ppy.sh>
Makes the animation smoother when dragging between different values.
@peppy

peppy commented Jun 26, 2026

Copy link
Copy Markdown
Member

Made some cosmetic changes mostly. Please double check you're okay with them.

Before:

2026-06-27.03.32.48.mp4

After:

2026-06-27.03.30.34.mp4

@bdach

bdach commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator Author

No objections.

@peppy peppy merged commit 99e52dc into ppy:master Jun 29, 2026
7 of 10 checks passed
@github-project-automation github-project-automation Bot moved this from Pending Review to Done in osu! team task tracker Jun 29, 2026
@bdach bdach deleted the discrete-adjustment-control branch June 29, 2026 06:13
bdach added a commit to bdach/osu that referenced this pull request Jun 29, 2026
… in top timeline

Continuation of ppy#38140.

Applied in the slider velocity adjustment popover first because it is
easier to do so. The right toolbox will come at the end of this series
of queued changes.

The reason why `SliderVelocityAdjustmentControl` is a separate entity is
twofold:

- I aim to use it directly both in the timeline popover *and* the right
  toolbox.
- It will receive a preset control that allows mappers to add and remove
  their own preset slider velocity values.
peppy pushed a commit that referenced this pull request Jun 29, 2026
… in top timeline (#38183)

https://github.com/user-attachments/assets/822d62a0-e51e-4227-807e-280e8957364c

---

Continuation of #38140.

Applied in the slider velocity adjustment popover first because it is
easier to do so. The right toolbox will come at the end of this series
of queued changes.

The reason why `SliderVelocityAdjustmentControl` is a separate entity is
twofold:

- I aim to use it directly both in the timeline popover *and* the right
toolbox.
- It will receive a preset control that allows mappers to add and remove
their own preset slider velocity values.
0xAlexisSys pushed a commit to 0xAlexisSys/osu that referenced this pull request Jun 30, 2026
https://github.com/user-attachments/assets/e92d3817-38df-4a50-a4c9-f1e15250973c

The eventual goal to this is to use this new control in place of the
slider velocity sliders.

This new control has also been applied to the timing screen.

<img width="346" height="732" alt="Screenshot 2026-06-25 at 09 27 48"
src="https://github.com/user-attachments/assets/4d645d96-4f37-4dc9-b8a1-2dadd2673d8c"
/>

---

This, and subsequent changes I have queued as proofs-of-concept, are
intended to supersede and close ppy#37753.

Naming is not great, open to better propositions.

---------

Co-authored-by: Dean Herbert <pe@ppy.sh>
0xAlexisSys pushed a commit to 0xAlexisSys/osu that referenced this pull request Jun 30, 2026
… in top timeline (ppy#38183)

https://github.com/user-attachments/assets/822d62a0-e51e-4227-807e-280e8957364c

---

Continuation of ppy#38140.

Applied in the slider velocity adjustment popover first because it is
easier to do so. The right toolbox will come at the end of this series
of queued changes.

The reason why `SliderVelocityAdjustmentControl` is a separate entity is
twofold:

- I aim to use it directly both in the timeline popover *and* the right
toolbox.
- It will receive a preset control that allows mappers to add and remove
their own preset slider velocity values.
0xAlexisSys pushed a commit to 0xAlexisSys/osu that referenced this pull request Jun 30, 2026
https://github.com/user-attachments/assets/e92d3817-38df-4a50-a4c9-f1e15250973c

The eventual goal to this is to use this new control in place of the
slider velocity sliders.

This new control has also been applied to the timing screen.

<img width="346" height="732" alt="Screenshot 2026-06-25 at 09 27 48"
src="https://github.com/user-attachments/assets/4d645d96-4f37-4dc9-b8a1-2dadd2673d8c"
/>

---

This, and subsequent changes I have queued as proofs-of-concept, are
intended to supersede and close ppy#37753.

Naming is not great, open to better propositions.

---------

Co-authored-by: Dean Herbert <pe@ppy.sh>
0xAlexisSys pushed a commit to 0xAlexisSys/osu that referenced this pull request Jun 30, 2026
… in top timeline (ppy#38183)

https://github.com/user-attachments/assets/822d62a0-e51e-4227-807e-280e8957364c

---

Continuation of ppy#38140.

Applied in the slider velocity adjustment popover first because it is
easier to do so. The right toolbox will come at the end of this series
of queued changes.

The reason why `SliderVelocityAdjustmentControl` is a separate entity is
twofold:

- I aim to use it directly both in the timeline popover *and* the right
toolbox.
- It will receive a preset control that allows mappers to add and remove
their own preset slider velocity values.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:editor size/XXL type/cosmetic Only affects the game visually. Doesn't affect things working or not working.

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants