Bug 290683

Summary: Some tools crash when using them concurrently with long-running actions
Product: [Applications] krita Reporter: Dmitry Kazakov <dimula73>
Component: ToolsAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Unlisted Binaries   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Dmitry Kazakov 2012-01-05 11:25:40 UTC
1) Start rescaling image (e.g. 2000 -> 4000)
2) Try paint with some tools very fast
3) Crash

Tools affected:
1) Gradient tool
2) Paintbucket tool
3) Transform tool
4) Line tool
5) Rectangle tool
6) Ellipse tool
7) Polygon tool
8) Polyline tool
9) Star tool
10) Path tool
Comment 1 Dmitry Kazakov 2012-01-05 16:09:13 UTC
Git commit 644ec17dedb5c1f1178293ddb2788b21f2e997da by Dmitry Kazakov.
Committed on 05/01/2012 at 17:55.
Pushed by dkazakov into branch 'master'.

Made all the interactive painting tools threading-friendly

Ported most of the painting tools to strokes, they use FreehandStroke
for executing their jobs:
- KisToolLine
- KisToolRectangle
- KisToolEllipse
- KisToolPolygon
- KisToolPolyline
- KisToolStar
- KisToolPath

Wrapped three complex tools into macros to block the UI when some
action is in porgress:
- KisToolTransform
- KisToolFill
- KisToolGradient

M  +1    -1    krita/image/kis_painter.cc
M  +7    -17   krita/plugins/tools/defaulttools/kis_tool_ellipse.cc
M  +8    -3    krita/plugins/tools/defaulttools/kis_tool_fill.cc
M  +6    -2    krita/plugins/tools/defaulttools/kis_tool_gradient.cc
M  +7    -33   krita/plugins/tools/defaulttools/kis_tool_line.cc
M  +26   -40   krita/plugins/tools/defaulttools/kis_tool_path.cc
M  +8    -26   krita/plugins/tools/defaulttools/kis_tool_rectangle.cc
M  +6    -28   krita/plugins/tools/tool_polygon/kis_tool_polygon.cc
M  +6    -30   krita/plugins/tools/tool_polyline/kis_tool_polyline.cc
M  +7    -32   krita/plugins/tools/tool_star/kis_tool_star.cc
M  +7    -3    krita/plugins/tools/tool_transform2/kis_tool_transform.cc
M  +1    -0    krita/ui/CMakeLists.txt
A  +113  -0    krita/ui/tool/kis_figure_painting_tool_helper.cpp     [License: GPL (v2+)]
A  +57   -0    krita/ui/tool/kis_figure_painting_tool_helper.h     [License: GPL (v2+)]
M  +3    -3    krita/ui/tool/kis_tool_ellipse_base.cpp
M  +3    -3    krita/ui/tool/kis_tool_rectangle_base.cpp
M  +16   -3    krita/ui/tool/strokes/freehand_stroke.cpp
M  +31   -1    krita/ui/tool/strokes/freehand_stroke.h

http://commits.kde.org/calligra/644ec17dedb5c1f1178293ddb2788b21f2e997da