views/month: Implement get_children_by_uuid
Closes: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1057
This commit is contained in:
@@ -28,6 +28,7 @@
|
|||||||
#include "gcal-month-cell.h"
|
#include "gcal-month-cell.h"
|
||||||
#include "gcal-month-view-row.h"
|
#include "gcal-month-view-row.h"
|
||||||
#include "gcal-range-tree.h"
|
#include "gcal-range-tree.h"
|
||||||
|
#include "gcal-utils.h"
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@@ -764,3 +765,13 @@ gcal_month_view_row_update_style_for_date (GcalMonthViewRow *self,
|
|||||||
gcal_month_cell_set_different_month (GCAL_MONTH_CELL (self->day_cells[i]), different_month);
|
gcal_month_cell_set_different_month (GCAL_MONTH_CELL (self->day_cells[i]), different_month);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GList*
|
||||||
|
gcal_month_view_row_get_children_by_uuid (GcalMonthViewRow *self,
|
||||||
|
GcalRecurrenceModType mod,
|
||||||
|
const gchar *uuid)
|
||||||
|
{
|
||||||
|
g_assert (GCAL_IS_MONTH_VIEW_ROW (self));
|
||||||
|
|
||||||
|
return filter_children_by_uid_and_modtype (GTK_WIDGET (self), mod, uuid);
|
||||||
|
}
|
||||||
|
|||||||
@@ -53,4 +53,8 @@ void gcal_month_view_row_remove_event (GcalMonthViewR
|
|||||||
void gcal_month_view_row_update_style_for_date (GcalMonthViewRow *self,
|
void gcal_month_view_row_update_style_for_date (GcalMonthViewRow *self,
|
||||||
GDateTime *date);
|
GDateTime *date);
|
||||||
|
|
||||||
|
GList* gcal_month_view_row_get_children_by_uuid (GcalMonthViewRow *self,
|
||||||
|
GcalRecurrenceModType mod,
|
||||||
|
const gchar *uuid);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|||||||
@@ -1045,7 +1045,25 @@ gcal_month_view_get_children_by_uuid (GcalView *view,
|
|||||||
GcalRecurrenceModType mod,
|
GcalRecurrenceModType mod,
|
||||||
const gchar *uuid)
|
const gchar *uuid)
|
||||||
{
|
{
|
||||||
return filter_children_by_uid_and_modtype (GTK_WIDGET (view), mod, uuid);
|
g_autoptr (GList) children = NULL;
|
||||||
|
GcalMonthView *self;
|
||||||
|
|
||||||
|
GCAL_ENTRY;
|
||||||
|
|
||||||
|
self = GCAL_MONTH_VIEW (view);
|
||||||
|
|
||||||
|
for (guint i = 0; i < self->week_rows->len; i++)
|
||||||
|
{
|
||||||
|
g_autoptr (GList) row_children = NULL;
|
||||||
|
GcalMonthViewRow *row;
|
||||||
|
|
||||||
|
row = g_ptr_array_index (self->week_rows, i);
|
||||||
|
row_children = gcal_month_view_row_get_children_by_uuid (row, mod, uuid);
|
||||||
|
|
||||||
|
children = g_list_concat (children, g_steal_pointer (&row_children));
|
||||||
|
}
|
||||||
|
|
||||||
|
GCAL_RETURN (g_steal_pointer (&children));
|
||||||
}
|
}
|
||||||
|
|
||||||
static GDateTime*
|
static GDateTime*
|
||||||
|
|||||||
Reference in New Issue
Block a user