Bug 158087 - Allow controlling the distance from line end to area edge, etc.
Summary: Allow controlling the distance from line end to area edge, etc.
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
Inherited From OOo
Hardware: All All
: medium enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Shapes-Custom
  Show dependency treegraph
 
Reported: 2023-11-06 13:06 UTC by Eyal Rozenberg
Modified: 2023-11-27 13:40 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments
Modified Line Callout 2 in sample ODP (13.17 KB, application/vnd.oasis.opendocument.presentation)
2023-11-21 09:10 UTC, Stéphane Guillou (stragu)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eyal Rozenberg 2023-11-06 13:06:06 UTC
After adding a line callout shape, there are two drag points at the end of the line to control its start and end points. However, there is no way to control the distance between the line end and the beginning of the callout area.

Now, there is some use to automatically-determined distance. However, users sometimes want the distance to be 0, i.e. for the line to connect to the callout area itself, either trivially, or via some embellishment, like a bar, or a pair of bars, e.g.:


\        | ++-------+
 \       | ||       |
  \______| ||       |
         | ||       |
         | ||       |
         | ++-------+

I would like to be able to control some of this - but currently, I control none of it.
Comment 1 Regina Henschel 2023-11-06 14:46:14 UTC
The movement of the start tail is restricted because not its ODF definition as written to file is used, but an internal definition based on MS binary format. When you open the file markup and change the draw:type alltribute to draw:type="non-primitive" all points of the shape are freely moveable.
Comment 2 Stéphane Guillou (stragu) 2023-11-21 09:10:53 UTC
Created attachment 190933 [details]
Modified Line Callout 2 in sample ODP

As suggested by Regina, this is the Line Callout 2 shape, with the file's content.xml modified to have draw:type="non-primitive" instead of draw:type="line-callout-2".

The custom shapes Regina provided in bug 157879 comment 12's attachment 190685 [details] have controls to do that as well.
Comment 3 Stéphane Guillou (stragu) 2023-11-21 09:27:05 UTC
Eyal's suggestion takes away the ability to use that drag point to move the box without moving the position of the end point of the line, which I assume many find useful and wouldn't like to see disappear. But that's in the current examples; there's probably a way to implement a way to have both interactions.

Interestingly, if the original Line Callout 2 is saved as PPTX, you get what you want: the end point controls the distance.

Version: 24.2.0.0.alpha0+ (X86_64) / LibreOffice Community
Build ID: baecfd21797310bb15ab98ca3962445d99e397db
CPU threads: 8; OS: Linux 5.15; UI render: default; VCL: gtk3
Locale: en-AU (en_AU.UTF-8); UI: en-US
Calc: threaded
Comment 4 Heiko Tietze 2023-11-21 10:37:46 UTC
(In reply to Stéphane Guillou (stragu) from comment #2)
> Created attachment 190933 [details]
> Modified Line Callout 2 in sample ODP
In the end it is just an ordinary shape with a connector attached. Piece of cake to create out-of-the-box and still not worth to add to core.
Comment 5 Eyal Rozenberg 2023-11-24 12:26:25 UTC
(In reply to Stéphane Guillou (stragu) from comment #3)
> Eyal's suggestion takes away the ability to use that drag point to move the
> box without moving the position of the end point of the line

On the contrary, it _adds_ that ability, which today does not exist. If you introduce a Line Callout 2 or Line Callout 3, and move the box - the line endpoint moves with it, keeping its distance.

If we allowed controlling the line endpoint, it would still move when you move the box - but you could move it back to wherever you wanted.


(In reply to Heiko Tietze from comment #4)
> In the end it is just an ordinary shape with a connector attached.

... but a kind of connector that we don't have available elsewhere:

* Our connectors actually reach their end anchroing point, they don't stop short of it.
* Regarding Line Callout 2: We don't have a jointed connector in which you can move the joint arbitrarily on both axes.

> Piece of cake to create out-of-the-box and still not worth to add to core.

But callouts _are_ in the core. I'm suggesting we make the ones already in the core more flexible.
Comment 6 Stéphane Guillou (stragu) 2023-11-24 13:14:57 UTC
(In reply to Eyal Rozenberg from comment #5)
> (In reply to Stéphane Guillou (stragu) from comment #3)
> > Eyal's suggestion takes away the ability to use that drag point to move the
> > box without moving the position of the end point of the line
> On the contrary, it _adds_ that ability, which today does not exist. If you
> introduce a Line Callout 2 or Line Callout 3, and move the box - the line
> endpoint moves with it, keeping its distance.
You misunderstood me: I meant that it "takes away the ability to use that drag point to move the box without moving the position of the end point _at the other end_ of the line." The current behaviour is useful, to move the box without changing what the callout is connected to.

But having both would be great.
Comment 7 Regina Henschel 2023-11-24 13:53:39 UTC
The LineCallout1 has one handle at the tip of the line and a second handle near the rectangle. You can control the coordinates for both in the last page of the Position&Size dialog. The handle at the tip is "Control Point 1", the handle near the rectangle is "Control Point 2". The values in the field are relative to the top/left corner of the rectangle.

When you first open the dialog, the field values do not show the actual positions. When you change the values in the "Control Point 2" fields the point moves to another position and still has the feature, that dragging the point moves the rectangle but keeps the tip of the line at its place.

That does not work for LineCallout2 because the dialog has not enough fields. We should extend the dialog to contain all the handles of a shape. That would be an improvement for other shapes with more than two handles as well. [see also bug 145969 about improvements for that dialog.]
Comment 8 Heiko Tietze 2023-11-27 13:16:25 UTC
Seems you all agree with the request (except me). So let's do it.