From b9c9951487c8b2733d56c92b56b11acc3d9cec08 Mon Sep 17 00:00:00 2001 From: Daniel Viegas Date: Sun, 30 Nov 2025 01:25:48 +0100 Subject: [PATCH] Refactor: Extract constant and optimize set operations - Extract YEAR_MARKER_STEP_DIVISOR constant for year marker calculation - Remove redundant year_step == 0 check (max() already ensures >= 1) - Optimize set creation by removing unnecessary .keys() calls These changes improve code clarity and follow Python best practices. --- MyTimeline.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MyTimeline.py b/MyTimeline.py index a194d0e..cfa2033 100644 --- a/MyTimeline.py +++ b/MyTimeline.py @@ -87,6 +87,7 @@ CLICKABLE_AREA_HEIGHT = 30 # UI Constants YEAR_LABEL_WIDTH = 100 +YEAR_MARKER_STEP_DIVISOR = 10 # Divisor for calculating year marker step (every Nth year) TOOLTIP_DELAY = 500 # milliseconds TOOLTIP_MAX_WIDTH = 500 LABEL_BACKGROUND_PADDING = 8 @@ -1373,7 +1374,7 @@ class MyTimelineView(NavigationView): for category, checkbox in self._filter_widgets['category_checkboxes'].items(): if checkbox.get_active(): active_categories.add(category) - all_categories = set(self._filter_widgets['category_checkboxes'].keys()) + all_categories = set(self._filter_widgets['category_checkboxes']) self.category_filter = active_categories if active_categories != all_categories else None # Update person filter @@ -1382,7 +1383,7 @@ class MyTimelineView(NavigationView): for person_handle, checkbox in self._filter_widgets['person_checkboxes'].items(): if checkbox.get_active(): active_persons.add(person_handle) - all_persons = set(self._filter_widgets['person_checkboxes'].keys()) + all_persons = set(self._filter_widgets['person_checkboxes']) self.person_filter = active_persons if active_persons != all_persons else None # Update date range filter from calendar widgets @@ -3393,10 +3394,9 @@ class MyTimelineView(NavigationView): context.restore() return - # Draw markers for major years (every 10 years or so) - year_step = max(1, (max_year - min_year) // 10) - if year_step == 0: - year_step = 1 + # Draw markers for major years (every Nth year based on range) + # Ensure year_step is at least 1 to avoid division by zero issues + year_step = max(1, (max_year - min_year) // YEAR_MARKER_STEP_DIVISOR) for year in range(min_year, max_year + 1, year_step): # Calculate Y position