SeExpr feedback
First of all I want to say that I am impressed by what is already could be achieved with SeExpr option in Fill Layer. I think developers did a good job!
While playing around with this option I gathered some comments and developers are free to pay attantion to them, or not ![]()
Here we go.
1: Rename feature
It seems that a pencil next to the script name does not rename the script at all.
2: When saving preset with empty thumbnail krita crashes.
3: There is no clear indication that the script is stored to a file
No icon that script is unsaved (like asterisk on a filename for instance)
Pressing āOverwrite Presetā by the look of it changes nothing.
The script is seems to be saving, but you are not sure.
Actually that full unclear saving workflow lead me to accidentally replace one of the presets from Krita.
4: Unable to change icon for the script postfactum
There is no way to update the icon for a preset. I guess you have to make a copy and add the icon, then remove the original.
Would be nice to have an ability to edit the preset to change icon.
5: Stability.
Krita crashes from time to time while doing different actions with the script.
Would be nice to get it a little bit more stable.
6: Unclear checkbox
Each variable has a checkbox. Some of the checkboxes can be check, some of them cannot.
Either way it is not clear what these checkboxes do.
7: Script edit
7a: The tab symbol is too large. I would set it to default of value 4 (and replace with spaces). As it is the most common format. (I know, I know
this can be a curly braces arguement, but still).
Maybe let the user configure it.
7b: Error messages would be good to improve. For instance for this piece of code:
if ($u > 0.5) {
$color = [0.5,0.5,1];
}
else {
$color = [1, 0.5, 0.5]
}
$color
The error message states:
(76, 77): Syntax error near ā}ā
There is no way for a user to understand what 76 and 77 mean. And that brings next point.
7c: Line numbers. For better error messages interpretation and debugging adding line numbers to editor would be nice to have.
7d: Not sure if it at all possible, so this one might be ignored. Though.
By having condition like this:
if ($u > 0.5) {
$color = [0.5,0.5,1];
}
else {
$color = [1, 0.5, 0.5];
}
Editor will create two variables with the same name ācolorā. So for the user (who will not even look at code) it would be beneficial to see some meaningful name.
Maybe a way to add alias to the variable names when they displayed on the middle panel.
7e: Once I finish editng (looks like a compilation happening) the editor freezes for a bit (that might mislead the user that the application just stuck and will not work anymore). Would be good to have some indicator for user to understand that he has to wait wile it finished.
Another thing to look at is to give the user the control when to run compilation. Krita might work/compile in two modes: automatic (tries to compile when it thinks more appropriate), manual (user clicks on the button, or presses a shortcut)
8: Lock editing for scripts shipped with Krita. It is easy to mess things up and loose scripts shipped with krita. Maybe making such that the user have to make a copy first, and then edit it.
9: This is one is more like an idea. But⦠Node aditor for SeExpr. Something similar how Blendersā Node based material editor with Node Wrangler works. Would be a killer feature.
Cheers!
P.S. I am adding system info so the developers can at least have a point of reference.
Summary
Krita
Version: 5.0.0-beta1 (git 2e95dd5)
Languages: en_US, en
Hidpi: true
Qt
Version (compiled): 5.12.11
Version (loaded): 5.12.11
OS Information
Build ABI: x86_64-little_endian-llp64
Build CPU: x86_64
CPU: x86_64
Kernel Type: winnt
Kernel Version: 10.0.19043
Pretty Productname: Windows 10 (10.0)
Product Type: windows
Product Version: 10
OpenGL Info
Vendor: āGoogle Inc.ā
Renderer: āANGLE (NVIDIA GeForce GTX 1080 Ti Direct3D11 vs_5_0 ps_5_0)ā
Version: āOpenGL ES 3.0 (ANGLE 2.1.0.57ea533f79a7)ā
Shading language: āOpenGL ES GLSL ES 3.00 (ANGLE 2.1.0.57ea533f79a7)ā
Requested format: QSurfaceFormat(version 3.0, options QFlagsQSurfaceFormat::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 QFlagsQSurfaceFormat::FormatOption(), depthBufferSize 24, redBufferSize 8, greenBufferSize 8, blueBufferSize 8, alphaBufferSize 8, stencilBufferSize 8, samples 0, swapBehavior QSurfaceFormat::DefaultSwapBehavior, swapInterval 0, colorSpace QSurfaceFormat::DefaultColorSpace, profile QSurfaceFormat::NoProfile)
Version: 3.0
Supports deprecated functions false
is OpenGL ES: true
QPA OpenGL Detection Info
supportsDesktopGL: true
supportsAngleD3D11: true
isQtPreferAngle: true
Hardware Information
GPU Acceleration: auto
Memory: 65470 Mb
Number of Cores: 6
Swap Location: C:/Users/rapid/AppData/Local/Temp
Current Settings
Current Swap Location: C:/Users/rapid/AppData/Local/Temp
Current Swap Location writable: true
Undo Enabled: true
Undo Stack Limit: 30
Use OpenGL: true
Use OpenGL Texture Buffer: true
Disable Vector Optimizations: false
Disable AVX Optimizations: 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: 2
Screen: 0
Name: \.\DISPLAY1
Depth: 32
Scale: 1
Resolution in pixels: 2560x1440
Manufacturer:
Model:
Refresh Rate: 59
Screen: 1
Name: \.\DISPLAY2
Depth: 32
Scale: 1
Resolution in pixels: 2560x1440
Manufacturer:
Model:
Refresh Rate: 59


