Skip to content

Conversation

@atticus-sullivan
Copy link
Contributor

Like discussed in #3288 (comment), this is the attempt to port as much as possible from #3288 to the current master.

My idea (not fully implemented) is to implement the custom thickness similar to the fill opacity. So in effect there will be two entries for the toolbar and in the menubar. One for choosing the thickness and which activates the custom thickness. This way, the user can choose a custom thickness once, and switch between thin to the custom thickness without the need to choose a new custom thickness over and over again.

So far, only the buttons for activating the custom thickness are present. Also for now I simply used the icons added in #3288. Now we need two icons, so the icons might change in the future.
The TODOs are just markers where analog to #3288 one might open up the dialog window. With the new idea of using a different button these markers maybe are not needed anymore, we will see.

Also I'm not quite sure how to handle the "problem" that the bounds of the thickness slider maybe should be different for the highlighter compared to the pen (or just use a wide range).
Also maybe the window opening up should not only contain a slider but also some numeric input (in the best case synced with the slider)

@rolandlo
Copy link
Member

rolandlo commented Dec 3, 2024

For discussion some screenshots would help. Maybe also compare to this design.

@atticus-sullivan
Copy link
Contributor Author

Oh I'd say I wasn't aware of the redesign plan, but as I think of it, I believe I've seen that discussion and simply forgot it again.

In this case do we have a plan (regarding timing) for the redesign? (asking whether it still makes sense to implement the thickness slider in the current UI)

The (new) current state looks like this:
Peek 2024-12-03 11-36

Note: The code is still quite messed up since I used that other PR as base to implement this. So I think there are some changes that are not needed anymore. Also the naming is not entirely consistent sometimes thickness (wording from the former PR) and sometimes size (my wording) is used.

@rolandlo
Copy link
Member

rolandlo commented Dec 3, 2024

In this case do we have a plan (regarding timing) for the redesign? (asking whether it still makes sense to implement the thickness slider in the current UI)

No, we don't have a plan and the discussion about the redesign is just a discussion, where different opinions can be shared in the light of some concrete ideas for a redesign.

@bhennion
Copy link
Collaborator

bhennion commented Dec 4, 2024

I think we can indeed go further than the proposed changes (similarly to some options discussed in #4561). In my opinion:

  1. The UI should be more oriented towards this new flexibility: the slider could be put in a toolbar directly, or in a popover (like the "add page" popover).
  2. The old 5 special values should go. Instead, the user should be able to "pin" and "unpin" preferred sizes at will (we could preset with the old 5 values so we would not disturb the user's workflow too much)
  3. We could also have a toolbar item containing one button per favourite size (ordered by the values) and dynamically generated as the user "pins" and "unpins" sizes

@atticus-sullivan
Copy link
Contributor Author

atticus-sullivan commented Dec 5, 2024

Nice suggestions. For now I just wanted to make the old PR working (well didn't work out so far as we can see in the tests, I still need to look into that) and use that as a starting point for the rest (having the functions to set a custom size etc probably is useful)

  1. I like the popover idea, I'll just need to find out in what aspects this is different to creating a new window (I'll look at add pages for an example). I'm not sure about having the slider directly in the toolbar like with the zooming as these sliders take up quite some space especially if we want to have additional buttons (I for example would also like some way of setting the size precisely so something like a number input which allows for input via keyboard and/or adjusting via the scroll wheel).

So I imagine something like this (icon placed in the left toolbar with popover open):
image

      1. Yes maybe the size icons in the toolbar could be similar to the (old) color icons (regarding how they are drawn and specifying in the toolbar.ini). So the toolbar.ini would contain something like SIZE(10) or THICKNESS(10). The question here would be how do we handle it that the highlighter sizes should be larger than the pen size? Simply use a fixed (?) factor or let the user freely specify the individual sizes?

In case we go with 2. + 3. (not having the current mean of setting the thickness) at least from what I imagine, the changes to the codebase will be a bit larger and it probably makes sense to start from the current master, not from that old PR which only added an additional custom element to the enum and a slider to set the corresponding size. In this case I think we should move this discussion to an issue/the new PR to not have the whole discussion in a dead PR.

As I think about the pinning idea: If we'd allow for setting individual sizes for the different tools, how would we know which size goes with which other size? (reading from the toolbar.ini this is simple, but how can we represent this in the UI?)
Also how would we delete old pinned sizes? (also thinking UI wise)

Or maybe it makes sense to rethink the pinning approach. We could add x thickness slots and an icon to configure the different thicknesses. Then in the popover, the user would select via some sort of tab/menu which tool+slot to configure with the slider in the popover. Not sure if this approach is really intuitive though. We might skip the configure button and maybe we can listen for a right click (or long-press for the touch/pen users) on the individual thickness button which would open the popover for that specific button/slot.

Opinions? (or decision to move this to a new PR)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants