[umbrello] [Bug 447866] [class diagram] Multiple association ends are drawn on the same edge point

"Oliver Kellogg" <[email protected]>
Newsgroups gmane.linux.umbrello.devel
Message-ID <[email protected]/>
https://bugs.kde.org/show_bug.cgi?id=447866

--- Comment #12 from Oliver Kellogg <[email protected]> ---
Git commit 8bb117e11a887be9704f8711dbb0ac4afa797eb2 by Oliver Kellogg.
Committed on 16/02/2022 at 17:21.
Pushed by okellogg into branch 'master'.

Followup to commit dc485c1 smoothing of associationwidget endpoints:

umbrello/umlwidgets/associationwidget.{h,cpp}
- Readd #define PIXEL_TOLERANCE but with value 30.
  Experiments show that this larger tolerance is required.
- Add function findIntercept(const QRectF& rect, const QPointF& point,
                                                       QPointF& result)
  returning bool true if the line from the center of `rect' to `point'
  intersects with one of rect's sides, and returning the intersection
  point in `result'.
- Remove functions updateRegionLineCount, doUpdates, getRegionCount.
- Re-remove obsoleted members (as previously done in commit f80bd68):
  findInterceptOnEdge, insertIntoLists, m_positions, m_positions_len,
  m_ordered.
- Static function setStartAndEndPoint factors the point calculation
  logic from updateAssociations() for reuse in other contexts.
- Declare function updateAssociations `static' and change arguments to
  UMLWidget *pWidget, AssociationWidgetList list.
  For details see documentation at the implementation.
- Readd function linePathEndsAt in symmetry with linePathStartsAt.

umbrello/umlwidgets/associationwidget.cpp
- In function linePathStartsAt,
  - document why we are not using widget->contains(lpStart);
  - remove bool result1 and its calculation.
- In function cleanup() remove calls that may lead to crash due to
  possible call of calculateEndingPoints on the AssociationWidget being
  removed.
- In function moveEvent test of m_role[RoleType::B].changeabilityWidget
  test movingPoint against pos-1 instead of against 1.
- In function calculateEndingPoints,
  - call setStartAndEndPoint(this, m_role[RoleType::A].umlWidget);
  - call setStartAndEndPoint(this, m_role[RoleType::B].umlWidget);
  - define local assocList as shorthand for m_scene->associationList();
  - call updateAssociations(m_role[RoleType::A].umlWidget, assocList);
  - call updateAssociations(m_role[RoleType::B].umlWidget, assocList).
- Reduce function updateAssociations to loop over the passed in
  AssociationWidgetList and call setStartAndEndPoint on each
  assocwidget.

M  +214  -761  umbrello/umlwidgets/associationwidget.cpp
M  +5    -15   umbrello/umlwidgets/associationwidget.h

https://invent.kde.org/sdk/umbrello/commit/8bb117e11a887be9704f8711dbb0ac4afa797eb2

-- 
You are receiving this mail because:
You are the assignee for the bug.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.