Bug 391050

Summary: Instant preview, when toggled off for a preset, will toggle back on when changing spacing.
Product: [Applications] krita Reporter: wolthera <griffinvalley>
Component: Instant PreviewAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: halla, info
Priority: NOR Keywords: regression, release_blocker
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:

Description wolthera 2018-02-25 15:32:24 UTC
To reproduce:

1. f5 brush editor.
2. toggle off instant preview
3. change brush spacing in brush tip
4. see instant preview toggled on.

probably not the only setting that does it, but one that I noticed it the most with.
Comment 1 Halla Rempt 2018-02-27 10:23:46 UTC
Any change in the brush tip will toggle it on again.
Comment 2 David REVOY 2018-03-06 12:36:40 UTC
In the brush presets, here is a list that can't get "Instant Preview" checkbox "off". They badly need it as they are non-functional in Instant Preview mode :

v)_Clone_Tool
v)_Distort_Grow
v)_Distort_Move
v)_Distort_Shrink
v)_Experimental_Webs
Comment 3 Dmitry Kazakov 2018-03-12 12:40:35 UTC
Git commit 307f5723d5597cd327d924ae3997a4368d63cc6f by Dmitry Kazakov.
Committed on 12/03/2018 at 12:40.
Pushed by dkazakov into branch 'master'.

Fix resetting LoD options when changing the brush settings

After we started to reset all the old brush settings before writing,
saving of LoD settings broke. The problem is that LoD widget is outside
of the brush settings widgets hierarchy, therefore, it is not written
an every change. Instead, the value of the option is handled by the
resource manager.

The proposed solution is a bit "hackish", but I have no idea
how to fix it without a full rewrite of the paintop editor :(

M  +15   -3    libs/image/brushengine/kis_paintop_settings.cpp
M  +1    -1    libs/image/brushengine/kis_paintop_settings.h
M  +6    -1    libs/ui/kis_paintop_box.cc

https://commits.kde.org/krita/307f5723d5597cd327d924ae3997a4368d63cc6f
Comment 4 Halla Rempt 2018-03-12 12:45:11 UTC
Git commit c127acfa574bf220d346d65d84d608bc3eafb881 by Boudewijn Rempt, on behalf of Dmitry Kazakov.
Committed on 12/03/2018 at 12:44.
Pushed by rempt into branch 'krita/4.0'.

Fix resetting LoD options when changing the brush settings

After we started to reset all the old brush settings before writing,
saving of LoD settings broke. The problem is that LoD widget is outside
of the brush settings widgets hierarchy, therefore, it is not written
an every change. Instead, the value of the option is handled by the
resource manager.

The proposed solution is a bit "hackish", but I have no idea
how to fix it without a full rewrite of the paintop editor :(
(cherry picked from commit 307f5723d5597cd327d924ae3997a4368d63cc6f)

M  +15   -3    libs/image/brushengine/kis_paintop_settings.cpp
M  +1    -1    libs/image/brushengine/kis_paintop_settings.h
M  +6    -1    libs/ui/kis_paintop_box.cc

https://commits.kde.org/krita/c127acfa574bf220d346d65d84d608bc3eafb881
Comment 5 Dmitry Kazakov 2018-03-12 18:35:28 UTC
Git commit 27c660c0bbfc78d313672b0319b829f47eda6c8f by Dmitry Kazakov.
Committed on 12/03/2018 at 18:34.
Pushed by dkazakov into branch 'master'.

Fix LoD being activated for everything, even for brushes that do not support it

Well, my refactoring was a bit too optimistic :) A special read-only
resource (EffectiveLodAvailablility) was actually needed for brushes
to distinguish the case when user allows LoD, but the brush doesn't
support it (and it is known only by the GUI, not by the brush itself).

M  +1    -0    libs/ui/kis_canvas_resource_provider.h
M  +1    -9    libs/ui/tool/kis_resources_snapshot.cpp
M  +19   -0    libs/ui/widgets/kis_lod_availability_widget.cpp

https://commits.kde.org/krita/27c660c0bbfc78d313672b0319b829f47eda6c8f
Comment 6 Halla Rempt 2018-03-13 08:53:00 UTC
Git commit 171ee517b0cdbf6cec21a54244a999e72e7d30b5 by Boudewijn Rempt, on behalf of Dmitry Kazakov.
Committed on 13/03/2018 at 08:52.
Pushed by rempt into branch 'krita/4.0'.

Fix LoD being activated for everything, even for brushes that do not support it

Well, my refactoring was a bit too optimistic :) A special read-only
resource (EffectiveLodAvailablility) was actually needed for brushes
to distinguish the case when user allows LoD, but the brush doesn't
support it (and it is known only by the GUI, not by the brush itself).
(cherry picked from commit 27c660c0bbfc78d313672b0319b829f47eda6c8f)

M  +1    -0    libs/ui/kis_canvas_resource_provider.h
M  +1    -9    libs/ui/tool/kis_resources_snapshot.cpp
M  +19   -0    libs/ui/widgets/kis_lod_availability_widget.cpp

https://commits.kde.org/krita/171ee517b0cdbf6cec21a54244a999e72e7d30b5