I have discovered some possible bugs and something what confuses me:
1.All types of letters and numbers will exceed the range, but cjk characters will not
Since the last two options only apply to the first one, would it be better for us to make them four options directly? (Alternatively, two options determine whether it is horizontal or vertical, and the other two options determine whether it is left or right)
think the automatically generated text can be deleted because it looks a bit cumbersome. Especially for vertical selection and deletion, it takes some time.
4.The expression of “right to left” is very strange, it seems to be still from left to right
Not a bug, the latin numbers and letters that follow one another are not assigned a soft break-point by unicode, only full-width characters are assigned a break point by default. This is partially because it is expected that eventually the default will be auto-rotation for Latin text. There’s toggles and options to configure this, so you can for example go into the source editor and set ‘line-break:anywhere’ in the style. Editing this property is in the cards for rich text editing too, unless you feel that it should be on by default for vertical text?
This again is because it actually interacts with the automatic text-rotation. I’ve disabled RTL for vertical for now, but eventually when text-orientation/automatic text rotation is possible I’ll enable it again.
There’s a bit of a problem here because an empty text will be very hard to select, so will one that was created by accident. Should all empty text be automatically deleted? Note that you can use ctrl+a to select all text.
This is what the property is called in CSS, and it only really makes sense when you start typing Arabic or Hebrew text as it directly affects how the bidirectional text algorithm treats ‘neutral’ characters like spaces and punctuation.
Both texts start with a " and end with .) , with the top text being RTL and the bottom LTR. As you can see, not only is the punctuation at different sides of the text, but also the ) is switched with a (
Okay, I just think this is more logical. The situation I encountered in GIMP before was like this.
I won’t give any further feedback here, it’s not my usual area.
My question. I know Arabic runs from right to left, but I overlooked its integration with other languages.
It seems that I have some misunderstandings about this place
In GIMP, the corresponding layer is only created after typing the text, which I prefer.
In SAI, a new, blank text layer appears every time you click. But krita is all concentrated in the same vector layer, so we need a new Docker, which may be a bit troublesome. And beginners may not be aware of its existence.
In terms of prompts, if it can be like a search box:
I’ve been a little confusing in my previous speech, so let me rephrase it.
The following two kinds of ideas are good in my opinion:
It generates a blank text box and does not save the blank text. It is best to have a hidden text prompt like a search box. (It’s okay if there isn’t one, just like SAI)
It automatically generates a short prompt text (such as “type”) and automatically selects all, so we can automatically replace it when entering
What I don’t like is:
It automatically generates a large block of text, which can be confusing. Without automatic selection, although there are shortcuts, tablet operation may be somewhat cumbersome
2.To generate a blank text vector, we need a new Docker to find it (because Krita does not generate a new layer for each text).
Hi wolthera, thanks for your work! The new text features and on-canvas editing is amazing.
I feel like the text box should get removed if it is empty once the user selects something else. Affinity does this for example and it keeps the canvas clean IMO.
For me personally the placeholder text isn’t necessary, but I’d like to see how big the text will be that I’m going to type. So seeing the cursor height is usually sufficient for me. But I also like the idea of preselected Placeholder Text which disappears once you write.
Other than that I think the text update frequency could be increased. The letters lag a bit behind the cursor as you type. It seems to be the same frequency no matter the resolution for me so I guess it’s not about performance and rather update frequency set in code. (or is it?) Anyways for me it could be even as fast as the cursor is moving.
Yes, I think they are self-explanatory.
I think I didn’t quite understand how the snapping works but I feel like the dot is something that’s too technical to show all the time. For snapping I think I would expect to snap to bounding boxes (also centers) of other texts rather than the *origin point.
Also when a new text gets created there is a crosshair that could be replaced (or combined if that’s possible) by a line as high as the text size. So you know exactly where the new text is going to be located. The crosshair shows only the lower end of the letter. I also would like to know the upper end in advance.
It does this for me, but only if the text is truly empty. I’ve noticed that it remains when it contains only whitespace characters, though I think in that case it should be removed as well. (So whitespace, tabs, linebreaks, nonbreaking space,…)
I’ve noticed that the size of area where the grab action activates is … not following a pattern I can discern. I’ve made sreen shots where I put the mouse the farthest away from the text as possible before the mouse pointer changes. Here I have a pretty big area to grab:
@Wolthera thanks for working on this, now the text input really feels great.
With regards to feedback I had one which I observed while typing devnagari. There are some conjunct letters in devnagari and indic script and when I delete typed words with backspace two joint words get deleted instead of one. I think it considers all joined words as one. In the video below I am typing l and z key which are mapped to ‘th’ and ‘eh’ sounds in kannada the ‘eh’ part gets joined to form ‘te’. But when I press backspace once it deletes two words and sometimes it also deletes preceding space.
Although I know Krita and firefox or kate are different, This is not reproducible in kate and firefox,
For that one I’m going to need a bug report to bugs.kde.org specifically with plain text samples. This is particularly one of the big problems with text cursors (and why this project was so difficult): where the limit between letters is located, and I suspect I may have made it a bit too coarse.
I expect the auto-generated text to be deleted when you click to edit the text (or be auto-selected to make sure the text is removed when you start typing). That’s what happens elsewhere too.
The auto-generated text is nice to position and to preview the style/ formatting. I think the text size should depend on whether you use point text (which needs something short like “Click to type…”) or a text frame (which is auto-populated with filler text like lorem ipsum).
Can the origin point be part of a set of ‘hidden characters’ which show a dot for spacebar, line breaks etc.?
Text should be removed when there’s no text inside or is otherwise white space.
With this the placeholder text becomes unnecessary and can be removed.
Boundingbox should be rotated along.
@rebecca, if you use the shape select tool to rotate, is that difference also too small for you? What about moving paths with the shape-editing tool. Because it uses the same distance, and maybe we need to increase that instead. What kind of monitor do you use? Maybe we can use that to determine a better distance.
I need to modify backspace behaviour.
Update behaviour is weird.
This is 2 parts on my end: Firstly the text shape itself needs to be optimized a little, second is that there’s indeed a update compressor that needs finetuning.
The text shape is not deleted currently when empty, what happens is that it has zero width and height, which is a bit hard to select but still possible when selecting via a drag-area.
Now about the placeholder text:
I am not smart enough to implement that, more particularly, every time I try to model it in my head, more potential problems pop up. I will try to come up with something that fits the need to preview the text, but it might take some time. The core problem is that it is very difficult for me to generate a preview without it being in the text shape to begin with, though I can show ascent/descent/line-height.
Fun fact about Lorem Ipsum: We used to have this as the place holder text, but it confused translators too much, so we replaced it with “Placeholder Text”.
No, displaying non-printing characters is on my mind, but I’m thinking the origin point might be more suited for the typesetting mode, as I was going to move most of the SVG 1.1 character transforms editing to that mode. However, that does leave me with the problem of snapping, as it is where the text is snapped to:
To snap, go to view->snap to->snap to grid, (and maybe also enable view->show grid). Now if you move a pre-existing text around, it should show a red mark when it is snapping to grid. Right now, that’s always the little round dot. Would you expect it to snap there if the dot was missing?
If you say it that way, I think the difference is that for the other tools, I expect the functionality to be there, but I didn’t with the Text tool. So it took me a long while to accidentally stumble upon it. So… I don’t know it this can be solved, or needs to be solved. Maybe it is just me! The vector shape editing with the visible drag handles and the invisible shear/rotate next to it such a standard I’m not really thinking about it anymore. I also guess the visible handles encourage to hover around that area and discover things, and since there are no handles on the text “outline” I didn’t think of it as relevant. Especially since the resizing of the text box is done with the blue handles that are in a different location.
Also, playing around more with it right now, I noticed that two texts had lost their blue handles. Investigating the SVG, it turns out because they were missing the text style “inline-size”. I have no idea what caused it. These texts were all newly created with the new text tool, but I might have upgraded to more recent master branch version in between.
I think it is reasonable to think a grab area might be too small, I just need to identify if it should be made bigger in all cases or just this one.
For the other things, note that text without handles is also possible because not everyone wants wrapped text all the time. The cursor changes when you are about to create a wrapped text. When the drag area is too small (or you just clicked), it will make a non-wrapped text.
Can you make the placeholder text a single character that contains all the text? Then it’s just one delete action. Or preselect text in a text frame if it contains preview text, which you define by using some sort of special symbol that you can verify whether the symbol is there, if so, delete text.
It’s pretty common to use Lorum Ipsum elsewhere, so it shouldn’t be a problem. Perhaps the translators were not familiar with it?
I may be missing something here, but the text is not snapping for me:
For me, it’s a bit odd to snap to a single point. I am used to snapping with the bounding box of the text. Demo from Affinity:
You can see that with a text frame, you could make sure the text aligns to a baselinegrid, which allows you to make sure that all text is exactly at the same height.
Suggestions
I do think it would be nice if you could convert the single line text to a text frame with flowing text with a clickable canvas thingy.
And I also think it would be nice if each piece of text were to be its own vector layer, or at least, the text tool could have an option to create a new vector layer if you create a new text frame. I really do like the red bounding box indication on hover!
Perhaps a small thing to nitpick on, visually, the current colours are a bit difficult to see if you use a grey background.
No, I cannot do that as I cannot foresee the side effects it might have. I can think about what I can do (sometimes I need to let stuff stew), but even then all that would be beyond when rich text editing is done. In the meanwhile I’ll just remove the placeholder text.
Probably, not everyone uses Latin script and Lorem Ipsum does not make sense outside of Latin script. I can feel some empathy for translators to want something a little less Latin-centric
I think this might be specific to high dpi screens. I wanted to do some experiments there as it’s all a little too delicate. You’re on Windows, correct? I noticed the same on Linux with a 4k screen + dpi scaling. Makes me wonder if the snapping problem you’re experiencing is also caused by this, will test.
EDIT: hidpi doesn’t affect snapping: you’re trying to snap to the pixel-grid instead of the regular grid in that video, and those have different snapping options. I’ll focus on making the decorations less unnecessarily delicate
Yeah, this is what I was looking for. That’s then both bounding box and the first baseline, correct? A baseline grid will need much more work (the scope is unclear and there’s some related features that might be out of scope for now), but I think I can get bounding box+first baseline to work.
I’ll add it to the notes, though it will also need to wait until rich text editing is done (in this case it would require a converter, and after rich text is done the underlying properties will be easier to edit, as well, I’ll have the other UI elements in place).
Oops, yes indeed, was snapping to the pixel grid, works fine with the regular grid. I am on Windows on a 4k monitor, so that may be why the text edit features were hard to see. Happened previously with selections too, but that’s all fixed now
That would be great. Actually, in Affinity Publisher/ Indesign, since both are used to create book layouts with, the text snaps to the baseline for each line. So say I have the first line at 9pt text and the second line contains a title of 18pt, the second line will actually move to the 3rd line of the baselinegrid if it doesn’t fit on the second. I agree that its more involved, not a priority
If you’re looking for a few other Lorem Ipsum variants, maybe the following, and mostly not too serious text generating versions of Lorem Ipsum generators will appeal to you?
I’ll start with the ultimate generator for artists with a brush:
Then the first of two “serious” generators, here you get texts in:
English, Chinese, Dutch, Finnish, French, German, Greek, Hebrew, Italian,
Japanese, Latin, Polish, Portuguese, Russian, Serbian, Spanish
Serious and versatile there is the following:
Transliterations:
Cyrillic, Greek, Armenian, Georgian
Asian scripts:
Hindi, Chinese, Japanese, version 1, Japanese, version 2, Japanese, Jugemu, Korean/Hangul, version 1, Korean/Hangul, version 2
In addition to Lorem Ipsum, there is also Batman Ipsum, Marvel Ipsum and Pokemon Ipsum:
For cheerful, lively texts with or without alcohol:
Here you can skate:
For fairy tale lovers:
Not only Lorem Ipsum, but also Werther, Cicero and more:
Or pseudo-scientific:
On Lit(erature) Ipsum there are also: The Adventures of Sherlock Holmes, Dr Jekyll and Mr Hyde, Dracula, Evelina, The Life of Samuel Johnson, The Picture of Dorian Gray, Pride and Prejudice, to create placeholder texts:
For friends of Spanish humor, especially Chiquito:
Stranger (Things) Ipsum:
True words, or words of truth, Nietzsche ipsum please:
The role of Lorem Ipsum and variants is to be a more long-living placeholder text in designs to be shown to other people, and as such needs to be 1.) not real words as to not distract the viewer with actual meaning, and 2.) still look close to text in that language.
Whereas in our case, the placeholder will be replaced by the user pretty much immediately, and I’d say it’s even desired to have self-documenting meaning. If the user wants to have actual placeholder text, they are going to have to replace it with their desired length of text anyway.
Well if it is needed for translation sake I guess you should read it as it was. The Loren ipsum text translation. But I don’t think it should ever be translated the objective is to be there but no one can read it because it is a dead language.
1914 translation by H. Rackham
“But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?”