View Issue Details

IDProjectCategoryView StatusLast Update
0017364ScribusCanvaspublic2025-01-07 18:31
Reporternitramr Assigned Tonitramr  
PrioritynormalSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
PlatformDesktop PCOSUbuntuOS Version24.10 64-bit
Product Version1.7 milestone 
Target Version1.7 milestone 
Summary0017364: Improved Node Editing
DescriptionImportant 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
TagsNo tags attached.
PatchNo

Relationships

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 
child of 0017365 assignednitramr Create a context aware toolbar 

Activities

utnik

2025-01-05 22:07

updater   ~0051877

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'.

nitramr

2025-01-05 22:16

developer   ~0051878

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

utnik

2025-01-06 07:14

updater   ~0051879

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'?

nitramr

2025-01-06 07:24

developer   ~0051880

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.

utnik

2025-01-06 08:31

updater   ~0051881

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…)

nitramr

2025-01-06 14:20

developer   ~0051882

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:

ale

2025-01-06 17:21

manager   ~0051883

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...
Clippy-letter-2.PNG (14,941 bytes)   
Clippy-letter-2.PNG (14,941 bytes)   

nitramr

2025-01-06 18:01

developer   ~0051884

>> 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.

nitramr

2025-01-06 18:09

developer   ~0051885

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.
customize_toolbar.png (1,057,269 bytes)

ale

2025-01-06 18:12

manager   ~0051886

nice plan!

i think that the sub menu of the shape "canvas" tool is also a candidate...

... and the calligraphic line...

nitramr

2025-01-06 18:25

developer   ~0051887

>> 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.

Issue History

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