[Libreoffice-bugs] [Bug 127509] Dash type should not respect draw:style="rect" item for draw:name

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Thu Sep 12 12:24:28 UTC 2019


https://bugs.documentfoundation.org/show_bug.cgi?id=127509

--- Comment #1 from Regina Henschel <rb.henschel at t-online.de> ---
The class is "XDash".
https://opengrok.libreoffice.org/xref/core/include/svx/xdash.hxx
https://opengrok.libreoffice.org/xref/core/svx/source/xoutdev/xattr.cxx#407

The comparison == considers all members. It is hard to search for code, which
uses this.
It is as least used in:
https://opengrok.libreoffice.org/xref/core/svx/source/xoutdev/xattr.cxx#601
Or (I think so) for to select the dash definition in the list, which is used in
the current object in:
https://opengrok.libreoffice.org/xref/core/svx/source/sidebar/line/LinePropertyPanelBase.cxx?r=a6469294#810
Changing something in the implementation of == would be against the meaning of
"equal". You would need a new method "ArePatternEqual()", which excludes the
"eDash" member from comparison.

While working on ooxml import/export of dash definitions, I have thought about
the problem with round caps too:
In case the definition in the document has draw:style="round", it is found in
the list, if the list has an item with DashStyle_ROUND or
DashStyle_ROUNDRELATIVE. That is the case, if the palette has an item with
draw:style="round". So my idea had been, to extend the ooxml-compatible palette
with those styles. For example have a "o_sysDot" in addition to a "sysDot".
That works to get the item selected. I had tested it at that time.

But the user experience would be bad, because applying such dash-definition,
would not result in rounded dots and dashes. The reason is, that getting
rounded dots and dashes is only possible by setting the line cap style to
"Round". My idea was, to automatically set line cap style to "Round", if the
user applies a style, which has draw:style="round" in its definition. That
would mean a change in the UI and was therefore out-of-scope for me.

But the interoperability problem with rounded dots and dashes has further
problems: MS Office rounds the dots and dashes itself, so that the total length
of the dot or dash is not changed. That gives e.g. a circle for a length of
100%. But LibreOffice adds the half-circles to the dots and dashes. So a length
of 100% does not result in a circle, you would need a length of 1% in LO. But
that will give no visible dot at all in MS Office. I don't know how MS Visio
generates round dots and dashes. The way of LO is not unusual, SVG adds the
caps too.

In theory, ODF has the distinction between whether a dot inside a line is
rounded or the line becomes round at its end. But that has never been
implemented in the history of LibreOffice and would be different from MS
Office.

You see, I do not have a ready solution. I think, it should be discussed in the
UX team.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20190912/c0090804/attachment-0001.html>


More information about the Libreoffice-bugs mailing list