View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0017364 | Scribus | Canvas | public | 2025-01-05 21:28 | 2025-01-13 21:00 |
Reporter | nitramr | Assigned To | nitramr | ||
Priority | normal | Severity | feature | Reproducibility | N/A |
Status | assigned | Resolution | open | ||
Platform | Desktop PC | OS | Ubuntu | OS Version | 24.10 64-bit |
Product Version | 1.7 milestone | ||||
Target Version | 1.7 milestone | ||||
Summary | 0017364: Improved Node Editing | ||||
Description | Important requirements - Editing should be possible using keyboard shortcuts and/or the tools in the node editing palette - Nodes and node handles can be selected and edited without switching the mode in node editing palette Behavior: Nodes 1. Nodes can be selected with a mouse click - Multiple selection with the Shift key pressed + mouse click or the selection frame - Selected nodes can be deselected again with holding the Shift key + mouse click 2. The node handles can be changed: - Symmetrical handles: Alt key + mouse click sets the handles to the node center (corner node) - Asymmetrical handles: Alt key + mouse click makes both handles symmetrical - No handles: Alt key + mouse drag pulls the two handles out symmetrically Node handles 3. Shift key + mouse drag snaps a handle in 15° increments (with symmetrical handles this also applies to the opposite handle) 4. Alt key and mouse drag to a node handle unlink the handles (different length, different angle) 5. Dragging the mouse moves the node handle - Symmetrical handles: The opposite one moves in a mirror image (same length, same angle) - Asymmetrical handles: Only the active handle changes length and angle - Asymmetrical handles: If the active handle has the same angle as the opposite handle when dragging with the mouse, the active handle "snaps" into place and both handles are "equal in angle" when the mouse is released - Asymmetrical handles: If the active handle has the same length as the opposite handle when dragging with the mouse, the active handle "snaps" into place and both handles are "equal in length" when the mouse is released - Equal in length and equal in angle also work in combination Modifiers Alt key: Modifier for handle length and angle Shift key: Selection and grid | ||||
Tags | No tags attached. | ||||
Patch | No | ||||
related to | 0016547 | new | Update Layout for Node Editor 2 | |
related to | 0009099 | new | A better Path tool | |
related to | 0000889 | acknowledged | inverse bezier tool handling | |
related to | 0013990 | new | Node Editor lacks keyboard shortcuts | |
related to | 0013991 | new | Node Editor lacks good multiple-node-selection functionality | |
related to | 0013989 | new | Node Editor lacks some constraint functions | |
related to | 0011676 | new | symmetrical control points doesn't support length deviation | |
related to | 0017128 | new | moving shape nodes with the arrow keys does not always work | |
related to | 0007753 | new | Shape editing: delete several nodes | |
related to | 0011976 | new | Editing shapes (nodes) needs an interface with values | |
related to | 0009100 | new | Paths simplification | |
related to | 0017369 | new | add to the content palette the actions from the "image" and "preview" section" in the context menu | |
child of | 0017365 | assigned | nitramr | Create a context aware toolbar |
|
if you're going to work on the node editing tool, i think it would be good to differentiate between three types of nodes instead of just two: 'sharp nodes', 'smooth nodes' and 'symmetrical nodes'. |
|
Yes, I'm working on it. What do you mean by smooth nodes? The new implementation will support - sharp nodes: no handles - symmetrical nodes: same angle, same length - asymmetrical nodes: same angle, different length |
|
ok. my 'smooth nodes' are your asymmetrical ones. i just missed something – in this case it's rather a group of the sharp nodes. in your description you have nodes with: - symmetrical handles - asymmetrical handles - no handles but where are the sharp nodes with 'independent handles'? |
|
Oh, good point. I updated this point here: "4. Alt key and mouse drag to a node handle unlink the handles (different length, different angle)" I think we would need new tools in the node editor or somewhere else, where you can do the same actions as you can do with keyboard shortcuts. |
|
inkscape shows four buttons in the toolbar to transform selected nodes. from left to right the selected nodes change to: - sharp nodes (if a node was already sharp, a click will remove its handles) - smooth nodes - symmetrical nodes - auto-smooth nodes (auto-smooth handles adapt their handles to keep a fair curve when one of the neighbouring nodes or the auto-smooth one itself gets moved.) scribus could show those buttons in the node editor. (i never use the last one – don't know if we need it…) |
|
Auto smooth could be more complicated. At least, we should support the first 3 options. - Sharp/Corner nodes - smooth/asymmetric nodes - symmetric nodes In addition, I would like to replace the node edit palette with a new tool properties toolbar/window. Other tools like parametric shapes could be included there too. See proposal from an old mockup: |
|
It looks like you're creating a toolbar... i'm fine with it. But I'd prefer not to have one more and more toolbar to add at the top of my window. Can we have it content aware? Which toolbar can be already made content aware? Which other toolbars might come in the future that fit in the schema? The view tools? (would be the default one...) Otherwise, I think that I'd prefer to have it as a palette... |
|
>> It looks like you're creating a toolbar... Maybe :D >> Can we have it content aware? Yes of course. In my mind, it is like in Inkscape when you select a tool. There is just one toolbar/window that changes the content based on the selected tool. >> But I'd prefer not to have one more and more toolbar to add at the top of my window. I totally agree. There is no intention on my side to clutter the UI more and more. I would go a step further and suggest removing things. I don't know if anyone really needs all the actions in the current standard toolbars. Even if you only need one action, you have to dock the entire toolbar. I suggest having only 2 "toolbars". 1. Customizable toolbar: User can customize this toolbar with favorite actions. It replaces the existing ones. 2. Tool properties: This is a toolbar/dock that shows context specific tool settings and properties. Debatable whether you can move and dock it manually or not. Actually, there is a third one, the Canvas tools toolbar, docked on the left side. |
|
A user can customize the toolbar as you see in the screenshot. There is only one set of predefined blocks that you can add or remove. For "future toolbars" we can simply add new blocks to this set. |
|
nice plan! i think that the sub menu of the shape "canvas" tool is also a candidate... ... and the calligraphic line... |
|
>> i think that the sub menu of the shape "canvas" tool is also a candidate... Good point, I think the list will get longer. We can also show a color preview from the color picker tool there, or the measure values from the measurement tool, etc. However, I think that changing the toolbar should be a different task due to its own complexity. For this task, I think it is better to simply change the buttons in the current palette. |
|
Quick status update. This is the new palette for editing nodes. I merged "Move Node" and "Move Node Control Handle" into one button. Since you don't need to toggle this anymore. There are 3 buttons for the control handle modes (symmetric, asymmetric and independent). All 3 buttons behave like radio buttons, only one mode can be enabled or none. If no mode is enabled (as you see in the screenshot) then there is an automatic detection of the mode. For example, if angle and length of both control handles are the same, it behaves like symmetric mode. Same angle, but different length behaves like asymmetric. Different angle and different length behaves like independent. There is currently no separate "Sharp Edge" button. For that, I implemented a snapping feature. If you move the control handle close enough to the node, it automatically merges with that point. At the moment, most of the functionality is implemented, and I'm working on small fixes and improvements. I think I need to make a screencast to show the full functionality. :D |
|
Some more feedback from my side: - adding the DEL key for deleting a node? - Why are the mirror button needed? Are they not the same as the ones in the PP? - (+) and (-) are hard to distinguish. what about just using + and - without the circle around it? or generally making the symbol below a bit bugger (but, maybe, it's just the "wrong" combination of a low res monitor with eyes that are getting older...) - are you planning to remove the three rows of widgets for rotating and resizing? would be fine for me, since, in my eyes, they don't really belong in the node editing (rotating can be done in the PP, scaling, if needed, should be elsewhere) - for the coordinates, i wonder if the PP could be used... (but then one could not use the PP to move around the whole shape / resize it) |
|
- adding the DEL key for deleting a node? > Yes, DEL and Backspace are supported - Why are the mirror button needed? Are they not the same as the ones in the PP? > Good point. I don't see any difference to those in PP - (+) and (-) are hard to distinguish. what about just using + and - without the circle around it? or generally making the symbol below a bit bugger (but, maybe, it's just the "wrong" combination of a low res monitor with eyes that are getting older...) > I will think about it - are you planning to remove the three rows of widgets for rotating and resizing? would be fine for me, since, in my eyes, they don't really belong in the node editing (rotating can be done in the PP, scaling, if needed, should be elsewhere) > Good question. I think the current implementation is not very useful. Maybe it could be reimplemented to apply changes only to selected nodes? - for the coordinates, i wonder if the PP could be used... (but then one could not use the PP to move around the whole shape / resize it) > Yes, I thought of that too. The coordinates also look broken, if you move nodes all the way to the left or up, they are always 0 because the origin of the element is recalculated. Maybe it is better to use the PP settings instead and show relative coordinates to the page origin or ruler. But to edit nodes you would always have to have the PP open |
|
-> rotating i guess that nobody will have the idea to rotate selected (multiple) nodes, if those buttons were not in the nodes palette... one could probably do cool things with that, but i'm not sure it's something scribus (as a layout tool) should have. (... let's first get the basic interaction to work correctly and be comfortable for the user, not try to have feature that inkscape does not have...) personally, i'm for simply removing all the widgets concerning the scaling and rotation. -> coordinates no idea why there is a choice between canvas and page coords. if we want absolute coordinates, we only need the ones relative to the axis origins, the same that we otherwise get for the items. (which is currently not a choice) for now, i would have a simple choice between relative and absolute coordinates. -> shearing the path no idea why we have those buttons here. (and how they got that name...) imo, one should use "item > transformation" for that. it's available while editing the nodes. (of course, "item > transformation" should be improved for single shot uses... but that's another topic...) the solution might be related to the ticket 0017374 i just created. -> using the PP if i understood correctly, you're wondering if the content palette should actively be used for editing the nodes. (personally, while first reviewing your ticket, i did think about using the PP or the CP for it...) in the long term, i think i prefer to have the context aware toolbar you were proposing. and in the short term it can stay in the existing dedicated floating dialog. i would not use the PP (except maybe for the x,y values... but even there, i'd prefer to keep them in the floating dialog for now) |
|
I recorded a demo video of the current implementation. Video show node editing only with mouse and Alt + Shift keys. https://youtu.be/mmhDRVEU7Ic |
|
>> personally, i'm for simply removing all the widgets concerning the scaling and rotation. Yes, or since we have them, we can hide them in a menu or make it less prominent. >> if we want absolute coordinates, we only need the ones relative to the axis origins, the same that we otherwise get for the items. (which is currently not a choice) At the moment I merged 3 options in a dropdown button (canvas, page, item). Perhaps only ruler and item origin? >> no idea why we have those buttons here. (and how they got that name...) We could but them in the shape section, next to the shape selection >> if i understood correctly, you're wondering if the content palette should actively be used for editing the nodes. My comment refers to if we would remove the coordinate inputs from the node editing palette >> in the long term, i think i prefer to have the context aware toolbar you were proposing. Yes, it is better to keep the related things together in a toolbar or other kind of window. |
Date Modified | Username | Field | Change |
---|---|---|---|
2025-01-05 21:28 | nitramr | New Issue | |
2025-01-05 21:28 | nitramr | Status | new => assigned |
2025-01-05 21:28 | nitramr | Assigned To | => nitramr |
2025-01-05 21:30 | nitramr | Relationship added | related to 0016547 |
2025-01-05 21:31 | nitramr | Relationship added | related to 0009099 |
2025-01-05 21:31 | nitramr | Relationship added | related to 0000889 |
2025-01-05 21:31 | nitramr | Relationship added | related to 0013990 |
2025-01-05 21:32 | nitramr | Relationship added | related to 0013991 |
2025-01-05 21:32 | nitramr | Relationship added | related to 0013989 |
2025-01-05 21:35 | nitramr | Relationship added | related to 0011676 |
2025-01-05 21:35 | nitramr | Relationship added | related to 0017128 |
2025-01-05 21:35 | nitramr | Relationship added | related to 0007753 |
2025-01-05 21:36 | nitramr | Relationship added | related to 0011976 |
2025-01-05 21:37 | nitramr | Relationship added | related to 0009100 |
2025-01-05 22:07 | utnik | Note Added: 0051877 | |
2025-01-05 22:16 | nitramr | Note Added: 0051878 | |
2025-01-06 07:14 | utnik | Note Added: 0051879 | |
2025-01-06 07:21 | nitramr | Description Updated | |
2025-01-06 07:24 | nitramr | Note Added: 0051880 | |
2025-01-06 08:31 | utnik | Note Added: 0051881 | |
2025-01-06 08:31 | utnik | File Added: Bildschirmfoto 2025-01-06 um 09.06.39.png | |
2025-01-06 14:20 | nitramr | Note Added: 0051882 | |
2025-01-06 14:20 | nitramr | File Added: Bildschirmfoto 2025-01-06 um 15.14.51.png | |
2025-01-06 17:21 | ale | Note Added: 0051883 | |
2025-01-06 17:21 | ale | File Added: Clippy-letter-2.PNG | |
2025-01-06 18:01 | nitramr | Note Added: 0051884 | |
2025-01-06 18:01 | nitramr | File Added: Bildschirmfoto vom 2025-01-06 18-44-48.png | |
2025-01-06 18:09 | nitramr | Note Added: 0051885 | |
2025-01-06 18:09 | nitramr | File Added: customize_toolbar.png | |
2025-01-06 18:12 | ale | Note Added: 0051886 | |
2025-01-06 18:25 | nitramr | Note Added: 0051887 | |
2025-01-07 18:31 | ale | Relationship added | child of 0017365 |
2025-01-09 09:25 | ale | Relationship added | related to 0017369 |
2025-01-11 13:45 | nitramr | Note Added: 0051906 | |
2025-01-11 13:45 | nitramr | File Added: node_editing_palette.png | |
2025-01-11 20:57 | ale | Note Added: 0051907 | |
2025-01-11 21:14 | nitramr | Note Added: 0051908 | |
2025-01-12 09:13 | ale | Note Added: 0051910 | |
2025-01-13 20:46 | nitramr | Note Added: 0051913 | |
2025-01-13 21:00 | nitramr | Note Added: 0051914 |