Bug 127505 - Support connectors with multiple junctures/turns
Summary: Support connectors with multiple junctures/turns
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Draw (show other bugs)
Version:
(earliest affected)
unspecified
Hardware: All All
: medium enhancement
Assignee: Not Assigned
URL: https://youtu.be/VYc26tlsilQ?t=95
Whiteboard:
Keywords:
Depends on:
Blocks: Connectors
  Show dependency treegraph
 
Reported: 2019-09-11 21:13 UTC by Eyal Rozenberg
Modified: 2024-10-18 22:35 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
Two connected connectors (9.83 KB, application/vnd.oasis.opendocument.graphics)
2019-12-01 18:51 UTC, Gerhard Weydt
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eyal Rozenberg 2019-09-11 21:13:03 UTC
At the moment, (straight-angle) connectors can only have up to 2 turns, e.g. one of:

---->

or 

---
   |
   v

or

---
   |
    --->
    
but for many diagrams, connectors with more turns are sorely needed. This is especially true when you want to connect two objects with some other object standing in the way of the connector - either you go through it, or around it.

Right now we resort to lame solutions such as connecting up to some arbitrary point (with no snapping to that point usually), then connecting from that point onwards. Or perhaps - a size-0, transparent box as a mid-way anchor.

It would be best if these connectors could have a toggleable option to avoid other objects by additional turns; but regardless - it should be possible to add a "joint" of 2 turns to any of their straight segment, and then manipulate each segment separately. IIANM, Microsoft Visio has this feature.
Comment 1 Xisco Faulí 2019-10-03 11:53:54 UTC
Make sense, moving to NEW
Comment 2 Eyal Rozenberg 2019-10-04 07:17:07 UTC
> IIANM, Microsoft Visio has this feature.

An example of Visio's connector tool, and how it creates a connector with 3 joints (3 turns):
https://youtu.be/VYc26tlsilQ?t=95

Controls then allow manipulating the joints.

I'm not saying that only relevant thing to implement is exactly the same, but that would be nice. In the mean time, even a fixed-number-of-joints 3-joint connector would be a welcome temporary addition.
Comment 3 Gerhard Weydt 2019-12-01 18:51:37 UTC
Created attachment 156226 [details]
Two connected connectors

With the following I do not want to say that I disagreee with your proposal, I think it desirable and support the request. I only want to show you a procedure which is alittle bit easier than the one you describe.
You can connect connectors without using an intermittent point. If you move the start point of a second connector to the end point of the first, then it will snap in. If you then select the first connector then you can move the connection point and both connectors will be adjusted. If the second connector is selected then you can use its startpoint and break the connection.
By the way, there are connectors with three turns: start at the top of a first rectangle and end at the bottom of  a second one.
Comment 4 Eyal Rozenberg 2019-12-02 13:37:41 UTC
(In reply to Gerhard Weydt from comment #3)
> Created attachment 156226 [details]
> Two connected connectors

Thank you. Somehow I did not notice how adjusting the first connector's endpoint adjusts the second one's.

Indeed, as you also noted, this isn't enough, for the following reasons:

* The combined connector will not auto-adust if you move the initial or final objects it is snapped to - only one part of the connector will adjust, to maintain the same connection point.
* Can't easily decide "Oh, I want another detour in this connector's path", or "I want to give up on the detour".
* Have to set both connectors' styles separately to the same thing, or if you select them together - some settings are unavailable.

and possibly others.
Comment 5 Eyal Rozenberg 2024-10-18 22:35:15 UTC
Was missing this again when preparing the slide deck for this year's LibOCon :-(