Files
federated-calendar/src/core/gcal-calendar-monitor.h
T
John Cardullo 9d29a7a34e core: Add "expand-recurrences" property to GcalCalendarMonitor and GcalTimeline
Add an "expand-recurrences" boolean property (defaulting to TRUE) to both
GcalCalendarMonitor and GcalTimeline. When set to FALSE:
- Recurring master components are kept as single events without expanding
  each recurrence instance.
- Detached recurrence instances are ignored.
- Pruning outside range retains recurring master events so they are not
  prematurely removed.
- Subscriber filtering permits recurring master events within the
  subscriber model.

This allows consumers like search providers to avoid expanding all recurrence
instances when searching, improving performance and avoiding duplicate hits.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_requests/808>
2026-10-27 11:10:58 -07:00

49 lines
1.9 KiB
C

/* gcal-calendar-monitor.h
*
* Copyright 2020 Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#pragma once
#include <glib-object.h>
#include "gcal-types.h"
#include "gcal-range.h"
G_BEGIN_DECLS
#define GCAL_TYPE_CALENDAR_MONITOR (gcal_calendar_monitor_get_type())
G_DECLARE_FINAL_TYPE (GcalCalendarMonitor, gcal_calendar_monitor, GCAL, CALENDAR_MONITOR, GObject)
GcalCalendarMonitor* gcal_calendar_monitor_new (GcalCalendar *calendar);
void gcal_calendar_monitor_set_range (GcalCalendarMonitor *self,
GcalRange *range);
GcalEvent* gcal_calendar_monitor_get_cached_event (GcalCalendarMonitor *self,
const gchar *event_id);
void gcal_calendar_monitor_set_filter (GcalCalendarMonitor *self,
const gchar *filter);
gboolean gcal_calendar_monitor_is_complete (GcalCalendarMonitor *self);
gboolean gcal_calendar_monitor_get_expand_recurrences (GcalCalendarMonitor *self);
G_END_DECLS