Add event filtering with collapsible expanders and human-readable event type names
- Add comprehensive event filtering (event types, categories, persons, date range) - Implement collapsible Gtk.Expander widgets for event type groups - Add human-readable event type names in filter dialog - Add EVENT_CATEGORIES mapping for event categorization - Add filter state management and filter application logic - Add filter button to toolbar with active state indication - Support multiple filter types that can be combined
This commit is contained in:
parent
1b6d76583c
commit
9976a95b97
@ -705,8 +705,9 @@ class MyTimelineView(NavigationView):
|
||||
category_boxes[category] = category_box
|
||||
box.pack_start(category_box, False, False, 0)
|
||||
|
||||
# Create checkbox for event type
|
||||
checkbox = Gtk.CheckButton(label=str(event_type_obj))
|
||||
# Create checkbox for event type with human-readable name
|
||||
event_type_name = self._get_event_type_display_name(event_type_obj)
|
||||
checkbox = Gtk.CheckButton(label=event_type_name)
|
||||
event_type_checkboxes[event_type_obj] = checkbox
|
||||
category_boxes[category].pack_start(checkbox, False, False, 0)
|
||||
|
||||
@ -1329,6 +1330,71 @@ class MyTimelineView(NavigationView):
|
||||
return True
|
||||
return person_handle in self.person_filter
|
||||
|
||||
def _get_event_type_display_name(self, event_type: EventType) -> str:
|
||||
"""
|
||||
Get human-readable display name for an event type.
|
||||
|
||||
Args:
|
||||
event_type: The event type (integer or EventType object).
|
||||
|
||||
Returns:
|
||||
str: Human-readable name for the event type.
|
||||
"""
|
||||
# Normalize to integer first
|
||||
event_type_value = self._normalize_event_type(event_type)
|
||||
|
||||
# Map EventType integer values to their human-readable names
|
||||
event_type_names = {
|
||||
EventType.BIRTH: _("Birth"),
|
||||
EventType.DEATH: _("Death"),
|
||||
EventType.BURIAL: _("Burial"),
|
||||
EventType.CREMATION: _("Cremation"),
|
||||
EventType.ADOPT: _("Adoption"),
|
||||
EventType.MARRIAGE: _("Marriage"),
|
||||
EventType.DIVORCE: _("Divorce"),
|
||||
EventType.ENGAGEMENT: _("Engagement"),
|
||||
EventType.MARR_SETTL: _("Marriage Settlement"),
|
||||
EventType.MARR_LIC: _("Marriage License"),
|
||||
EventType.MARR_CONTR: _("Marriage Contract"),
|
||||
EventType.MARR_BANNS: _("Marriage Banns"),
|
||||
EventType.DIV_FILING: _("Divorce Filing"),
|
||||
EventType.ANNULMENT: _("Annulment"),
|
||||
EventType.MARR_ALT: _("Marriage (Alternative)"),
|
||||
EventType.BAPTISM: _("Baptism"),
|
||||
EventType.ADULT_CHRISTEN: _("Adult Christening"),
|
||||
EventType.CONFIRMATION: _("Confirmation"),
|
||||
EventType.CHRISTEN: _("Christening"),
|
||||
EventType.FIRST_COMMUN: _("First Communion"),
|
||||
EventType.BLESS: _("Blessing"),
|
||||
EventType.BAR_MITZVAH: _("Bar Mitzvah"),
|
||||
EventType.BAS_MITZVAH: _("Bat Mitzvah"),
|
||||
EventType.RELIGION: _("Religion"),
|
||||
EventType.ORDINATION: _("Ordination"),
|
||||
EventType.OCCUPATION: _("Occupation"),
|
||||
EventType.RETIREMENT: _("Retirement"),
|
||||
EventType.ELECTED: _("Elected"),
|
||||
EventType.MILITARY_SERV: _("Military Service"),
|
||||
EventType.EDUCATION: _("Education"),
|
||||
EventType.GRADUATION: _("Graduation"),
|
||||
EventType.DEGREE: _("Degree"),
|
||||
EventType.EMIGRATION: _("Emigration"),
|
||||
EventType.IMMIGRATION: _("Immigration"),
|
||||
EventType.NATURALIZATION: _("Naturalization"),
|
||||
EventType.PROBATE: _("Probate"),
|
||||
EventType.WILL: _("Will"),
|
||||
EventType.RESIDENCE: _("Residence"),
|
||||
EventType.CENSUS: _("Census"),
|
||||
EventType.PROPERTY: _("Property"),
|
||||
EventType.CAUSE_DEATH: _("Cause of Death"),
|
||||
EventType.MED_INFO: _("Medical Information"),
|
||||
EventType.NOB_TITLE: _("Nobility Title"),
|
||||
EventType.NUM_MARRIAGES: _("Number of Marriages"),
|
||||
EventType.UNKNOWN: _("Unknown"),
|
||||
EventType.CUSTOM: _("Custom"),
|
||||
}
|
||||
|
||||
return event_type_names.get(event_type_value, _("Unknown Event"))
|
||||
|
||||
def _get_event_category(self, event_type: EventType) -> str:
|
||||
"""
|
||||
Get the category for an event type.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user