Bug 416505

Summary: Warp and Cage Transform do not work in Jan 19th 4.3.0 pre-alpha appimage
Product: [Applications] krita Reporter: Ahab Greybeard <ahab.greybeard>
Component: Tools/TransformAssignee: Dmitry Kazakov <dimula73>
Status: RESOLVED FIXED    
Severity: normal CC: acc4commissions, dimula73, halla
Priority: NOR Keywords: regression, release_blocker
Version: nightly build (please specify the git hash!)   
Target Milestone: ---   
Platform: Debian stable   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Ahab Greybeard 2020-01-20 17:15:15 UTC
SUMMARY
In the Jan 19th 4.3.0 prealpha appimage (git 0788a2) the Warp and Cage transform do not work.
They also do not work in the Jan 16th 4.3.0 prealpha appimage (git 168d3a1).
They do work in the Jan 13th 4.3.0 prealpha (git 0a0738b).

STEPS TO REPRODUCE
1. Draw content on a layer.
2. Use the Warp or the Cage transform to make changes to the content.
3. Note that the Warp and Cage transform control points respond correctly and the on-screen image is transformed properly.
4. Press Return or the Accept button to finalise the transform.

OBSERVED RESULT
The on-screen image reverts to its original state.

EXPECTED RESULT
They should both work

SOFTWARE/OS VERSIONS
Krita

 Version: 4.3.0-prealpha (git 168d3a1)
 Languages: en_GB, en, en, en_GB, en
 Hidpi: true

Qt

  Version (compiled): 5.12.5
  Version (loaded): 5.12.5

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 4.19.0-6-amd64
  Pretty Productname: Debian GNU/Linux 10 (buster)
  Product Type: debian
  Product Version: 10

OpenGL Info
 
  Vendor:  "NVIDIA Corporation" 
  Renderer:  "GeForce GTX 750 Ti/PCIe/SSE2" 
  Version:  "4.6.0 NVIDIA 418.74" 
  Shading language:  "4.60 NVIDIA" 
  Requested format:  QSurfaceFormat(version 3.0, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
  Current format:    QSurfaceFormat(version 4.6, options QFlags<QSurfaceFormat::FormatOption>(DeprecatedFunctions), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::DoubleBuffer, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile  QSurfaceFormat::CompatibilityProfile) 
     Version: 4.6
     Supports deprecated functions true 
     is OpenGL ES: false 

QPA OpenGL Detection Info 
  supportsDesktopGL: true 
  supportsOpenGLES: true 
  isQtPreferOpenGLES: false 

Hardware Information

  GPU Acceleration: auto
  Memory: 16039 Mb
  Number of Cores: 8
  Swap Location: /tmp

Current Settings

  Current Swap Location: /tmp
  Undo Enabled: 1
  Undo Stack Limit: 18
  Use OpenGL: 1
  Use OpenGL Texture Buffer: 1
  Use AMD Vectorization Workaround: 0
  Canvas State: OPENGL_SUCCESS
  Autosave Interval: 360
  Use Backup Files: 1
  Number of Backups Kept: 1
  Backup File Suffix: ~
  Backup Location: Same Folder as the File
  Use Win8 Pointer Input: 0
  Use RightMiddleTabletButton Workaround: 0
  Levels of Detail Enabled: 0
  Use Zip64: 0


Display Information
Number of screens: 2
	Screen: 0
		Name: DVI-D-1
		Depth: 24
		Scale: 1
		Resolution in pixels: 1280x1024
		Manufacturer: Dell Inc.
		Model: DELL 1704FPV-
		Refresh Rate: 60
	Screen: 1
		Name: DVI-D-0
		Depth: 24
		Scale: 1
		Resolution in pixels: 1280x1024
		Manufacturer: Dell Inc.
		Model: DELL 1704FPV-
		Refresh Rate: 75
Comment 1 acc4commissions 2020-01-20 21:09:36 UTC
Also, when you press 'Work Recursively' button in any way while using the Warp or Cage Transform, the content inside the selection disapears.
Comment 2 acc4commissions 2020-01-20 21:13:20 UTC
(In reply to acc4commissions from comment #1)
> Also, when you press 'Work Recursively' button in any way while using the
> Warp or Cage Transform, the content inside the selection disapears.

Turns out its not only the content inside the selection, but the whole contents on the layer disappears. the content outside the selection is still visible, but it seems to be just a projection and cannot be edited in any way.
Comment 3 acc4commissions 2020-01-22 23:13:17 UTC
(In reply to acc4commissions from comment #1)
> Also, when you press 'Work Recursively' button in any way while using the
> Warp or Cage Transform, the content inside the selection disapears.

This particular issue has been fixed(?) in the latest nightly. The Cage and the Warp transform still does not work, but the content disappearing is gone. 
I should've made a separated bug report, but there's that. :/ Sorry...
Comment 4 Dmitry Kazakov 2020-01-28 13:16:05 UTC
Git commit c05334ed89d5557dd5c1b2b7035ef34a3b58c332 by Dmitry Kazakov.
Committed on 28/01/2020 at 13:15.
Pushed by dkazakov into branch 'master'.

Fix Warp and Cage transform in master

The problem was cause that assignment operator has been called on the
same object. So it has been cleared instead of assigned.

M  +2    -0    plugins/tools/tool_transform2/tool_transform_args.cc

https://invent.kde.org/kde/krita/commit/c05334ed89d5557dd5c1b2b7035ef34a3b58c332
Comment 5 Halla Rempt 2020-01-28 13:17:46 UTC
Git commit 002c950d9c0bca4b6a8b6fc3ea90a1106a0cc2cd by Boudewijn Rempt, on behalf of Dmitry Kazakov.
Committed on 28/01/2020 at 13:17.
Pushed by rempt into branch 'krita/4.2'.

Fix Warp and Cage transform in master

The problem was cause that assignment operator has been called on the
same object. So it has been cleared instead of assigned.
(cherry picked from commit c05334ed89d5557dd5c1b2b7035ef34a3b58c332)

M  +2    -0    plugins/tools/tool_transform2/tool_transform_args.cc

https://invent.kde.org/kde/krita/commit/002c950d9c0bca4b6a8b6fc3ea90a1106a0cc2cd
Comment 6 Dmitry Kazakov 2020-01-28 13:56:25 UTC
Git commit 973e2a7fd65b153a23f775c2179abc27072e9540 by Dmitry Kazakov.
Committed on 28/01/2020 at 13:13.
Pushed by dkazakov into branch 'master'.

Fix Warp and Cage transform in master

The problem was cause that assignment operator has been called on the
same object. So it has been cleared instead of assigned.

M  +2    -0    plugins/tools/tool_transform2/tool_transform_args.cc

https://invent.kde.org/kde/krita/commit/973e2a7fd65b153a23f775c2179abc27072e9540