Bug 419758 - Using transform tool on a vector layer causes the layer to appear invisible.
Summary: Using transform tool on a vector layer causes the layer to appear invisible.
Status: RESOLVED FIXED
Alias: None
Product: krita
Classification: Applications
Component: Layers/Vector (show other bugs)
Version: unspecified
Platform: Microsoft Windows Microsoft Windows
: NOR minor
Target Milestone: ---
Assignee: Dmitry Kazakov
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-06 19:39 UTC by kirby_o
Modified: 2020-08-26 11:46 UTC (History)
3 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description kirby_o 2020-04-06 19:39:19 UTC
SUMMARY
Using transform tool on a vector layer causes the layer to appear invisible.

STEPS TO REPRODUCE
1. Attempted to use liquify tool.
2. Pressing "apply" causes the layer to disappear.
3. Any other transformation does the same.

OBSERVED RESULT


EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION
Comment 1 Rebecca Breu 2020-04-07 07:22:50 UTC
I can confirm this. It happens with all transform modes except the regular "Free" transform. After applying the transformation, the layer turns invisible without being marked invisible. You can turn visibility off and on again to get the layer back, though you will see that the transformation hasn't applied and the layer is back in its original state.

Which of the other transformation modes can we expect to work on vector layers anyway? Maybe some of them need to be disabled?

Playing some more with it, I also found the following:

Once I've transformed a vector layer with the "Free" transform and applied it, and activate the transform tool again, I can't switch to the other transform modes because get a "can't transform on an empty layer" popup, even though the layer isn't empty and I can still use the "Free" transform. So if that's already an attempt to block some of the transform tools on vector layers, it's the wrong error message and should probably also disallow other transform modes from the start?
Comment 2 Halla Rempt 2020-04-07 09:01:27 UTC
Weird, I cannot reproduce the invisibility issue.
Comment 3 Rebecca Breu 2020-04-07 10:06:26 UTC
Huh, I get it all the time with the 4.2.9 appimage and the recent master build in docker, no matter what I try.

I'm attaching my system info in case that helps (this one is for the master/docker build).


Krita

 Version: 5.0.0-prealpha (git 90d05a3)
 Languages: en_US, en, en_US, en
 Hidpi: false

Qt

  Version (compiled): 5.12.7
  Version (loaded): 5.12.7

OS Information

  Build ABI: x86_64-little_endian-lp64
  Build CPU: x86_64
  CPU: x86_64
  Kernel Type: linux
  Kernel Version: 4.9.0-11-amd64
  Pretty Productname: Ubuntu 16.04.6 LTS
  Product Type: ubuntu
  Product Version: 16.04
  Desktop: 

OpenGL Info
 
  Vendor:  "Intel Open Source Technology Center" 
  Renderer:  "Mesa DRI Intel(R) HD Graphics 630 (Kaby Lake GT2) " 
  Version:  "3.0 Mesa 18.0.5" 
  Shading language:  "1.30" 
  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 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::NoProfile) 
     Version: 3.0
     Supports deprecated functions true 
     is OpenGL ES: false 

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

Hardware Information

  GPU Acceleration: auto
  Memory: 15796 Mb
  Number of Cores: 4
  Swap Location: /tmp

Current Settings

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


Display Information
Number of screens: 1
	Screen: 0
		Name: eDP-1
		Depth: 24
		Scale: 1
		Resolution in pixels: 2560x1440
		Manufacturer: AU Optronics
		Model: 
		Refresh Rate: 60
Comment 4 Rebecca Breu 2020-05-07 16:02:19 UTC
Related bug:

https://bugs.kde.org/show_bug.cgi?id=420919
Comment 5 Dmitry Kazakov 2020-08-26 11:46:20 UTC
Git commit 1426cc0abe3c7dcf90900bb2c6ae20df07c28fa4 by Dmitry Kazakov.
Committed on 26/08/2020 at 11:46.
Pushed by dkazakov into branch 'krita/4.3'.

Don't let transform tool use non-affine transforms on vector layers

The stroke checked the mode on its start, but it was possible to enter
invalid state by switching the mode after starting of the stroke.

Now the stroke is cancelled if the mode has changed after its start
into invalid value.
Related: bug 420919

M  +33   -8    plugins/tools/tool_transform2/kis_tool_transform.cc
M  +2    -1    plugins/tools/tool_transform2/kis_tool_transform.h
M  +6    -17   plugins/tools/tool_transform2/kis_tool_transform_config_widget.cpp
M  +2    -1    plugins/tools/tool_transform2/kis_tool_transform_config_widget.h
M  +21   -0    plugins/tools/tool_transform2/strokes/transform_stroke_strategy.cpp
M  +4    -0    plugins/tools/tool_transform2/strokes/transform_stroke_strategy.h

https://invent.kde.org/graphics/krita/commit/1426cc0abe3c7dcf90900bb2c6ae20df07c28fa4
Comment 6 Dmitry Kazakov 2020-08-26 11:46:39 UTC
Git commit 3ba9c3309e251b05cfd14ecc59dc0c6603e524ab by Dmitry Kazakov.
Committed on 26/08/2020 at 11:46.
Pushed by dkazakov into branch 'master'.

Don't let transform tool use non-affine transforms on vector layers

The stroke checked the mode on its start, but it was possible to enter
invalid state by switching the mode after starting of the stroke.

Now the stroke is cancelled if the mode has changed after its start
into invalid value.
Related: bug 420919

M  +33   -8    plugins/tools/tool_transform2/kis_tool_transform.cc
M  +2    -1    plugins/tools/tool_transform2/kis_tool_transform.h
M  +6    -17   plugins/tools/tool_transform2/kis_tool_transform_config_widget.cpp
M  +2    -1    plugins/tools/tool_transform2/kis_tool_transform_config_widget.h
M  +21   -0    plugins/tools/tool_transform2/strokes/transform_stroke_strategy.cpp
M  +4    -0    plugins/tools/tool_transform2/strokes/transform_stroke_strategy.h

https://invent.kde.org/graphics/krita/commit/3ba9c3309e251b05cfd14ecc59dc0c6603e524ab