But as for placeholder text. Is there no current way to display the string “placeholder text” when the text character count is zero ?
It would solve having something to click when no text was there and as soon as text was in it would disappear not needing to select and erase the text. Deleting text would instead be done through the vector object.
No, this is not possible, as I said twice before, the fundamental problem is that any previews or placeholders or the like would need to be inside the actual text shape, meaning that they will be visible when the text tool is not active, or even when doing things like exporting a PNG. I cannot generate a preview that is only visible when there’s no text in the current text shape while the text tool is being used.
I’ll just remove the placeholder text and ensure that empty text will get auto-removed.
Rendering for the viewport but not for the camera is not what I was referring to this last time but an exception case on what to show. A default string or some text from the user if it exists.
Deleting objects with zero characters seems a behaviour that might cause unintended reactions while editing text. On other apps it usually does not work all to well there is usually an odd situation you need to avoid.
Fixes were also made to the text move border, which now rotates, among other small fixes, and was merged.
I’ve been trying to get the HiDPI decorations sorted. With that MR, this won’t just be limited to the text tool, but all tool decorations will be affected.
I’ve got some fixes waiting to allow double click with tablets on the text, as well as getting shift+middle click drag to work.
And there’s two MRs for optimizations. The first applies batch processing instructions to the mask calculation of text, while the second fiddles with the update compressors and should make overal vector shape manipulation feel much more responsive.
I’m also investigating trying to get touch editing of the text to work, as well as some other fixes. I also discussed the refactors necessary to make rich text possible, so I’m going to start on that once a few more MRs have been merged, though the exciting stuff will probably happen after the holidays
The stylus interaction fixes got in, as did the hidpi decorations. The two optimizations also got in, so typing text and overall interacting with vector shapes should be a lot more responsive. I’m pretty pleased with this latter change, as I didn’t think it was within my skill level to get it working
I’m still working on reworking touch interaction stuff, and after that I’ll start with the fundamental rework needed for rich text. The snapping MR will be worked on alongside that.
I spend the last month on reworking the insides of the text shape, particularly how data is stored. This was necessary because the old way the data was stored made it too easy to leak the data as we’d edit the text, which is a type of bug where Krita basically forgets to clean up after itself, filling up the RAM with stuff it doesn’t need anymore.
I then spend some time on getting basic rich text editing to work, which includes changing the color / weight / italics / underline and getting rich text copy-paste to work:
Now, I want to wait for these two to merge, before I continue with full rich text editing. The reason for this is that I still need to ensure units are remembered (which requires another rework of the text data), yet at the same time, the state of the basic editing is as such that I can start to experiment with opentype glyph selection, and I’d like to work on those two simultaneously.
While checking the close gap fill tool artifact , I saw that the basic rich text editing branch was also merge a day ago.
All I say is, damn its already good. I don’t see any lag at all. I know some of the UX stuff are already getting work on as I saw in another branch. This is already good.
For others - whats available now/ what i tested so far:
common shortcut like Ctrl B, I, U, works on canvas.
color change works on canvas.
partial color change works on canvas.
I’ve been working on getting Krita to store units. This got merged, so we can now have relative units for stuff like letter spacing and font size.
Then I went and started working on the main event:
About half of the properties are implemented now. There’s still a ton of work to do both UI wise, as well as fixing bugs that may crop up (One of the things that for example needs to be done is the ability to hide properties you’re never going to need).
I’m however very much in need of a vacation, so I’m going to do that first before finishing this up.
This looks really great @wolthera. Thanks for tackling this giant project with all things text. It is looking really nice with all the functionality you have been adding.