Bug 378942 - Add a brush size docker
Summary: Add a brush size docker
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Dockers (show other bugs)
Version: 3.1.2
Platform: Arch Linux All
: NOR wishlist
Target Milestone: ---
Assignee: Krita Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-04-19 07:05 UTC by Eevee
Modified: 2017-07-23 04:36 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
Image of how it looks. (170.13 KB, image/png)
2017-07-22 19:14 UTC, wolthera
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eevee 2017-04-19 07:05:54 UTC
It would just be a grid of predefined brush sizes.  You can see it fairly conspicuously in the lower-right of the Paint Tool SAI screenshot on this page:

https://www.systemax.jp/en/sai/

Clip Studio Paint and Manga Studio have a similar feature.  It would be very handy for changing between several consistent brush sizes with a tablet; the toolbar slider and shift-drag are both a bit fiddly and imprecise.
Comment 1 Raghavendra kamath 2017-04-19 17:27:54 UTC
The screenshot is not that clear on the page, are you referring to the round brush icons in the screenshot. If yes then you could add your own set of brush presets with the sizes that you need and tag and and arrange them in the brush docker.

Can you please share a screenshot highlighting the feature?
Comment 2 Eevee 2017-04-19 17:41:50 UTC
Yes, the grid of round brush icons.  I don't have SAI myself so I can't take a clearer screenshot, sorry.

Using presets is technically possible but also defeats the whole point, which is that a brush size palette is quick and easy to use.  Replicating the effect with presets would involve making dozens of duplicates, cluttering the brush list, editing all their icons so they can be distinguished at a glance, etc.  Kind of a hard sell.

I know artists who are /instantly/ disappointed in Krita solely for lacking this feature, and it seems like a fairly minor addition.  If there can be six different dockers for picking colors, surely there's room for this.  :)
Comment 3 Raghavendra kamath 2017-04-20 03:59:11 UTC
It is more or less a docker with brush presets of various sizes, i don't see how is this different from the brush preset docker that we have. a user can quickly create brushes of various sizes and make the brush docker only show those with tags. why duplicate docker. Even in paint tool Sai it is just the brush docker, the difference is there brush presets are arranged in a ascending size of brushes.

Are you suggesting that there should be a docker just with size parameter. can you make a mockup and show the difference between brush docker and this brush size docker. I can quickly create some half a dozen brushes with round icons as shown in Sai screenshot and arrange them in ascending order, then show them in the brush docker with tags, it would only take me 1 hr (initially) to do that.
Comment 4 Eevee 2017-04-20 06:54:50 UTC
I think you're misunderstanding.  It's not a set of presets; it changes only the brush size, for ANY brush.  The icons are round just to show a rough idea of the size, not because they make the brush tip round.

So the equivalent would be to make a bunch of duplicate presets in various sizes, for /every single brush you have/.
Comment 5 wolthera 2017-04-20 12:20:32 UTC
If we could get editing brushes exposed to our python API, then this and the multiple requests for different brush editing dockers could be solved on the user(or at the least, non-c++ dev) side...

It would take a lot of design work to even expose it though. The primary concern I can think of is making sure that the brush-change gets propagated properly.

On top of that, we would need to start writing wrappers around the curve widgets.
Comment 6 Halla Rempt 2017-04-25 13:12:41 UTC
Well, if it's just having a bunch of diameter icons, then adding setBrushSize(int) to the Canvas api should be enough to make it possible to implement a docker like this. I wouldn't package the script with Krita by default, though, put it on share.kde.org. It can be handy for people who come from sai, but for others it's likely just clutter.
Comment 7 Eevee 2017-04-25 18:19:16 UTC
Thank you  :)  Though for what it's worth, I've never used SAI or any other painter with a brush size palette, and I still want it.

(I did a quick Twitter poll a few days ago, and it seems a decent number of people feel fairly strongly about it: https://twitter.com/eevee/status/854996101056708610)
Comment 8 wolthera 2017-07-22 19:10:50 UTC
Git commit 62fb1045e9335886ebd3b9df2408740d7ab08b10 by Wolthera van Hövell tot Westerflier.
Committed on 22/07/2017 at 19:10.
Pushed by woltherav into branch 'master'.

Add a Quick Settings Python Docker.

This docker allows people to select Size, Opacity and Flow from a list of useful presets, similar to dockers found in other painting programs.
As it is written in Python, people can disable it easily or even modify it to their tastes, to for example,
to change the list of presets.

M  +1    -0    plugins/extensions/pykrita/plugin/plugins/CMakeLists.txt
A  +2    -0    plugins/extensions/pykrita/plugin/plugins/quick_settings_docker/__init__.py
A  +7    -0    plugins/extensions/pykrita/plugin/plugins/quick_settings_docker/kritapykrita_quick_settings_docker.desktop
A  +160  -0    plugins/extensions/pykrita/plugin/plugins/quick_settings_docker/quick_settings_docker.py

https://commits.kde.org/krita/62fb1045e9335886ebd3b9df2408740d7ab08b10
Comment 9 wolthera 2017-07-22 19:14:04 UTC
Created attachment 106789 [details]
Image of how it looks.

I added a python docker that can quickly switch size, opacity and flow very much like similar dockers in Sai, CSP and Paintstorm I think has one too.

It is not the prettiest docker, but it is very servicable, I think. And the benefit of it being python is of course that if people feel strongly about it, they can choose to disable it as a plugin or change the docker to suit their needs :)

Anyway, I attached an image with how it looks.
Comment 10 Eevee 2017-07-22 22:35:57 UTC
Neat, thank you!  Eager to try it out.  This is probably a good reference for doing slightly unobvious things with the Python API, too.  :)
Comment 11 Raghavendra kamath 2017-07-23 04:36:19 UTC
Thank you Wolthera for the fix.