Fix connection line z-order and add portrait gap
- Move connection lines to draw before events so they appear below event icons - Add PORTRAIT_GAP constant (12px) for spacing between event marker and portrait - Update portrait and label positioning to account for the gap
This commit is contained in:
parent
fd6c002bec
commit
cb572c4dc5
@ -135,6 +135,7 @@ TOOLTIP_BORDER_WIDTH = 8 # Border width for tooltip window
|
|||||||
PORTRAIT_SIZE_TIMELINE = 24 # Size of timeline portraits
|
PORTRAIT_SIZE_TIMELINE = 24 # Size of timeline portraits
|
||||||
PORTRAIT_SIZE_TOOLTIP = 120 # Size of tooltip portraits
|
PORTRAIT_SIZE_TOOLTIP = 120 # Size of tooltip portraits
|
||||||
PORTRAIT_MARGIN = 5 # Margin around portraits
|
PORTRAIT_MARGIN = 5 # Margin around portraits
|
||||||
|
PORTRAIT_GAP = 12 # Gap in pixels between event marker edge and portrait edge
|
||||||
|
|
||||||
# Font Constants
|
# Font Constants
|
||||||
FONT_FAMILY = "Sans"
|
FONT_FAMILY = "Sans"
|
||||||
@ -3119,7 +3120,8 @@ class MyTimelineView(NavigationView):
|
|||||||
|
|
||||||
# Draw portrait if person has one (between timeline and label)
|
# Draw portrait if person has one (between timeline and label)
|
||||||
if event_data.person:
|
if event_data.person:
|
||||||
portrait_x = timeline_x + PORTRAIT_MARGIN + PORTRAIT_SIZE_TIMELINE / 2
|
# Position portrait with gap after event marker edge
|
||||||
|
portrait_x = timeline_x + EVENT_MARKER_SIZE / 2 + PORTRAIT_GAP + PORTRAIT_SIZE_TIMELINE / 2
|
||||||
self.draw_portrait(context, portrait_x, event_data.y_pos,
|
self.draw_portrait(context, portrait_x, event_data.y_pos,
|
||||||
event_data.person, PORTRAIT_SIZE_TIMELINE)
|
event_data.person, PORTRAIT_SIZE_TIMELINE)
|
||||||
|
|
||||||
@ -3127,7 +3129,7 @@ class MyTimelineView(NavigationView):
|
|||||||
label_x = timeline_x + LABEL_X_OFFSET
|
label_x = timeline_x + LABEL_X_OFFSET
|
||||||
# Adjust label position if portrait is present
|
# Adjust label position if portrait is present
|
||||||
if event_data.person:
|
if event_data.person:
|
||||||
label_x = timeline_x + PORTRAIT_SIZE_TIMELINE + PORTRAIT_MARGIN * 2 + LABEL_X_OFFSET
|
label_x = timeline_x + EVENT_MARKER_SIZE / 2 + PORTRAIT_GAP + PORTRAIT_SIZE_TIMELINE + PORTRAIT_MARGIN + LABEL_X_OFFSET
|
||||||
self.draw_event_label(
|
self.draw_event_label(
|
||||||
context, label_x, event_data.y_pos, event_data.date_obj,
|
context, label_x, event_data.y_pos, event_data.date_obj,
|
||||||
event_data.event, event_data.person, event_data.event_type, is_hovered
|
event_data.event, event_data.person, event_data.event_type, is_hovered
|
||||||
@ -3174,14 +3176,15 @@ class MyTimelineView(NavigationView):
|
|||||||
# Get adjusted events with collision detection (uses cache)
|
# Get adjusted events with collision detection (uses cache)
|
||||||
events_with_y_pos = self._get_adjusted_events(context, timeline_y_start, timeline_y_end)
|
events_with_y_pos = self._get_adjusted_events(context, timeline_y_start, timeline_y_end)
|
||||||
|
|
||||||
# Draw events
|
|
||||||
self._draw_events(context, events_with_y_pos, timeline_x)
|
|
||||||
|
|
||||||
# Draw visual connections for selected person (from selected event)
|
# Draw visual connections for selected person (from selected event)
|
||||||
|
# Draw before events so lines appear below event markers
|
||||||
if self.selected_person_handles:
|
if self.selected_person_handles:
|
||||||
self.draw_person_connections(context, events_with_y_pos, timeline_x,
|
self.draw_person_connections(context, events_with_y_pos, timeline_x,
|
||||||
timeline_y_start, timeline_y_end)
|
timeline_y_start, timeline_y_end)
|
||||||
|
|
||||||
|
# Draw events
|
||||||
|
self._draw_events(context, events_with_y_pos, timeline_x)
|
||||||
|
|
||||||
# Draw year markers on the left
|
# Draw year markers on the left
|
||||||
self.draw_year_markers(context, timeline_x, timeline_y_start, timeline_y_end,
|
self.draw_year_markers(context, timeline_x, timeline_y_start, timeline_y_end,
|
||||||
min_date, max_date)
|
min_date, max_date)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user