Make brush smoothing/stabilizer settings have a slider by default with common settings
Needs ReviewPublic

Authored by scottpetrovic on Dec 15 2017, 3:56 AM.

Details

Reviewers
woltherav
timotheegiet
Deevad
Bollebib
Group Reviewers
Krita
Summary

all these changes are also in my "petrovic/stabilizer-simplify" branch.

This ticket is to simplify how artists use brush smoothing. Currently they have to specify a bunch of options to use the weighted smoothing and stabilizer.

With this patch, you can just adjust the slider from 0 to 4 with how much stabilization you want. If you want custom values, you can press the "custom settings" which gives you the manual input fields like before. I added a few exponentialRatio properties to some sliders that got really big to make it easier to use.

I wasn't sure how many settings we want for the slider. Right now I have 5, but that is easily changeable.

This patch also moves all the smoothing and assistant tool options to a UI file instead of being generated in the CPP file.

Test Plan
  1. Moving the slider around and drawing to see the stabilizer settings that are applied.
  2. Pressing the "Custom Settings" checkbox and manually changing values and testing the result on the canvas
  3. Tested to make sure the to assistants still work
  4. Compared it to master to make sure I hooked up the setting variables and amount correctly.

Diff Detail

Repository
R37 Krita
Lint
Lint Skipped
Unit
Unit Tests Skipped
scottpetrovic requested review of this revision.Dec 15 2017, 3:56 AM
scottpetrovic created this revision.
dkazakov added reviewers: timotheegiet, Deevad, Bollebib.EditedDec 21 2017, 8:50 AM

Hi, @scottpetrovic!

I have checked your patch. From the technical point of view it works fine, but I'm not sure if it is the right way of moving the GUI further. What you implemented is basically a "preset system" containing 5 predefined presets of different strength. The idea itself is nice, especially for inexperienced artists who do not want to go deep into the details of the system. But there are two small questions/issues I would like others to discuss as well:

  1. Right now you cannot change the "preset" (strength number) when the custom options are visible. It means that this simplified slider doesn't do its educational role, which, I guess, it its main purpose. Ideally, one should switch between "weak" and "strong" presets and see how the values change, therefore understanding the options a bit.
  1. Are these predefined actually sane for the painters? @Deevad, @timotheegiet, @Bollebib, could you tell your opinion? I have a feeling that these hardcoded values will surely not fit everybody and the next report we get will be "make these levels configurable" :)

Random proposal:

Technically, you implemented a way of selecting a smoothness preset. Probably, you could just implement a simplified preset system like we have in the filters (see the screenshot)?

Or, if you really want to have a slider, you could let the user to preselect a list of presets, and he would switch between these presets with a slider? Though the latter approach would be a bit too complicated I guess :)

PS:
I've added Timothee, David and Bollebib to the list of blocking reviewers, because it is them who should decide on that :)

PPS:

For those who don't want to build the branch, that is how the docker looks like at the moment:

Simplified mode:

Custom Mode (note that the slider is grayed out):