event: Receive and operate on GcalCalendar
Instead of receiving an ESource, receive a GcalCalendar and operate on it. Many places needed to be adjusted for that. Tests need to be rethinked.
This commit is contained in:
+10
-8
@@ -751,6 +751,7 @@ on_action_button_clicked_cb (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GcalRecurrenceFrequency freq;
|
GcalRecurrenceFrequency freq;
|
||||||
GcalRecurrence *old_recur;
|
GcalRecurrence *old_recur;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GDateTime *start_date, *end_date;
|
GDateTime *start_date, *end_date;
|
||||||
gboolean was_all_day;
|
gboolean was_all_day;
|
||||||
gboolean all_day;
|
gboolean all_day;
|
||||||
@@ -870,12 +871,15 @@ on_action_button_clicked_cb (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Update the source if needed */
|
/* Update the source if needed */
|
||||||
|
calendar = gcal_event_get_calendar (self->event);
|
||||||
if (self->selected_source &&
|
if (self->selected_source &&
|
||||||
gcal_event_get_source (self->event) != self->selected_source)
|
gcal_calendar_get_source (calendar) != self->selected_source)
|
||||||
{
|
{
|
||||||
if (self->event_is_new)
|
if (self->event_is_new)
|
||||||
{
|
{
|
||||||
gcal_event_set_source (self->event, self->selected_source);
|
calendar = gcal_manager_get_calendar_from_source (gcal_context_get_manager (self->context),
|
||||||
|
self->selected_source);
|
||||||
|
gcal_event_set_calendar (self->event, calendar);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1404,11 +1408,10 @@ gcal_edit_dialog_set_event (GcalEditDialog *self,
|
|||||||
GcalRecurrenceFrequency frequency;
|
GcalRecurrenceFrequency frequency;
|
||||||
GcalRecurrence *recur;
|
GcalRecurrence *recur;
|
||||||
GtkAdjustment *count_adjustment;
|
GtkAdjustment *count_adjustment;
|
||||||
GcalManager *manager;
|
GcalCalendar *calendar;
|
||||||
GDateTime *date_start;
|
GDateTime *date_start;
|
||||||
GDateTime *date_end;
|
GDateTime *date_end;
|
||||||
cairo_surface_t *surface;
|
cairo_surface_t *surface;
|
||||||
ESource *source;
|
|
||||||
const gchar *summary;
|
const gchar *summary;
|
||||||
gboolean all_day;
|
gboolean all_day;
|
||||||
|
|
||||||
@@ -1464,7 +1467,7 @@ gcal_edit_dialog_set_event (GcalEditDialog *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
all_day = gcal_event_get_all_day (event);
|
all_day = gcal_event_get_all_day (event);
|
||||||
source = gcal_event_get_source (event);
|
calendar = gcal_event_get_calendar (event);
|
||||||
|
|
||||||
/* Clear event data */
|
/* Clear event data */
|
||||||
gcal_edit_dialog_clear_data (self);
|
gcal_edit_dialog_clear_data (self);
|
||||||
@@ -1489,7 +1492,7 @@ gcal_edit_dialog_set_event (GcalEditDialog *self,
|
|||||||
gtk_image_set_from_surface (GTK_IMAGE (self->source_image), surface);
|
gtk_image_set_from_surface (GTK_IMAGE (self->source_image), surface);
|
||||||
g_clear_pointer (&surface, cairo_surface_destroy);
|
g_clear_pointer (&surface, cairo_surface_destroy);
|
||||||
|
|
||||||
gtk_label_set_label (GTK_LABEL (self->subtitle_label), e_source_get_display_name (source));
|
gtk_label_set_label (GTK_LABEL (self->subtitle_label), gcal_calendar_get_name (calendar));
|
||||||
|
|
||||||
/* retrieve start and end dates */
|
/* retrieve start and end dates */
|
||||||
date_start = gcal_event_get_date_start (event);
|
date_start = gcal_event_get_date_start (event);
|
||||||
@@ -1536,8 +1539,7 @@ gcal_edit_dialog_set_event (GcalEditDialog *self,
|
|||||||
gcal_event_get_description (event),
|
gcal_event_get_description (event),
|
||||||
-1);
|
-1);
|
||||||
|
|
||||||
manager = gcal_context_get_manager (self->context);
|
set_writable (self, !gcal_calendar_is_read_only (calendar));
|
||||||
set_writable (self, gcal_manager_is_client_writable (manager, source));
|
|
||||||
|
|
||||||
g_clear_pointer (&date_start, g_date_time_unref);
|
g_clear_pointer (&date_start, g_date_time_unref);
|
||||||
g_clear_pointer (&date_end, g_date_time_unref);
|
g_clear_pointer (&date_end, g_date_time_unref);
|
||||||
|
|||||||
@@ -1162,9 +1162,6 @@ gboolean
|
|||||||
gcal_event_widget_equal (GcalEventWidget *widget1,
|
gcal_event_widget_equal (GcalEventWidget *widget1,
|
||||||
GcalEventWidget *widget2)
|
GcalEventWidget *widget2)
|
||||||
{
|
{
|
||||||
if (!e_source_equal (gcal_event_get_source (widget1->event), gcal_event_get_source (widget2->event)))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
return g_strcmp0 (gcal_event_get_uid (widget1->event), gcal_event_get_uid (widget2->event)) == 0;
|
return g_strcmp0 (gcal_event_get_uid (widget1->event), gcal_event_get_uid (widget2->event)) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+45
-48
@@ -55,7 +55,7 @@
|
|||||||
* GError *error;
|
* GError *error;
|
||||||
*
|
*
|
||||||
* error = NULL;
|
* error = NULL;
|
||||||
* event = gcal_event_new (source, component, &error);
|
* event = gcal_event_new (calendar, component, &error);
|
||||||
*
|
*
|
||||||
* if (error)
|
* if (error)
|
||||||
* {
|
* {
|
||||||
@@ -94,7 +94,7 @@ struct _GcalEvent
|
|||||||
GHashTable *alarms;
|
GHashTable *alarms;
|
||||||
|
|
||||||
ECalComponent *component;
|
ECalComponent *component;
|
||||||
ESource *source;
|
GcalCalendar *calendar;
|
||||||
|
|
||||||
GcalRecurrence *recurrence;
|
GcalRecurrence *recurrence;
|
||||||
|
|
||||||
@@ -118,7 +118,7 @@ enum {
|
|||||||
PROP_DATE_END,
|
PROP_DATE_END,
|
||||||
PROP_DATE_START,
|
PROP_DATE_START,
|
||||||
PROP_LOCATION,
|
PROP_LOCATION,
|
||||||
PROP_SOURCE,
|
PROP_CALENDAR,
|
||||||
PROP_SUMMARY,
|
PROP_SUMMARY,
|
||||||
PROP_TIMEZONE,
|
PROP_TIMEZONE,
|
||||||
PROP_UID,
|
PROP_UID,
|
||||||
@@ -264,7 +264,7 @@ gcal_event_update_uid_internal (GcalEvent *self)
|
|||||||
const gchar *source_id;
|
const gchar *source_id;
|
||||||
|
|
||||||
/* Setup event uid */
|
/* Setup event uid */
|
||||||
source_id = self->source ? e_source_get_uid (self->source) : "";
|
source_id = self->calendar ? gcal_calendar_get_id (self->calendar) : "";
|
||||||
id = e_cal_component_get_id (self->component);
|
id = e_cal_component_get_id (self->component);
|
||||||
|
|
||||||
/* Clear the previous uid */
|
/* Clear the previous uid */
|
||||||
@@ -470,7 +470,7 @@ gcal_event_finalize (GObject *object)
|
|||||||
g_clear_pointer (&self->uid, g_free);
|
g_clear_pointer (&self->uid, g_free);
|
||||||
g_clear_pointer (&self->color, gdk_rgba_free);
|
g_clear_pointer (&self->color, gdk_rgba_free);
|
||||||
g_clear_object (&self->component);
|
g_clear_object (&self->component);
|
||||||
g_clear_object (&self->source);
|
g_clear_object (&self->calendar);
|
||||||
g_clear_pointer (&self->recurrence, gcal_recurrence_unref);
|
g_clear_pointer (&self->recurrence, gcal_recurrence_unref);
|
||||||
|
|
||||||
G_OBJECT_CLASS (gcal_event_parent_class)->finalize (object);
|
G_OBJECT_CLASS (gcal_event_parent_class)->finalize (object);
|
||||||
@@ -494,6 +494,10 @@ gcal_event_get_property (GObject *object,
|
|||||||
g_value_set_boxed (value, self->color);
|
g_value_set_boxed (value, self->color);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_CALENDAR:
|
||||||
|
g_value_set_object (value, self->calendar);
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_COMPONENT:
|
case PROP_COMPONENT:
|
||||||
g_value_set_object (value, self->component);
|
g_value_set_object (value, self->component);
|
||||||
break;
|
break;
|
||||||
@@ -514,10 +518,6 @@ gcal_event_get_property (GObject *object,
|
|||||||
g_value_set_string (value, gcal_event_get_location (self));
|
g_value_set_string (value, gcal_event_get_location (self));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_SOURCE:
|
|
||||||
g_value_set_object (value, self->source);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PROP_SUMMARY:
|
case PROP_SUMMARY:
|
||||||
g_value_set_string (value, gcal_event_get_summary (self));
|
g_value_set_string (value, gcal_event_get_summary (self));
|
||||||
break;
|
break;
|
||||||
@@ -553,6 +553,10 @@ gcal_event_set_property (GObject *object,
|
|||||||
gcal_event_set_all_day (self, g_value_get_boolean (value));
|
gcal_event_set_all_day (self, g_value_get_boolean (value));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case PROP_CALENDAR:
|
||||||
|
gcal_event_set_calendar (self, g_value_get_object (value));
|
||||||
|
break;
|
||||||
|
|
||||||
case PROP_COLOR:
|
case PROP_COLOR:
|
||||||
gcal_event_set_color (self, g_value_get_boxed (value));
|
gcal_event_set_color (self, g_value_get_boxed (value));
|
||||||
break;
|
break;
|
||||||
@@ -577,10 +581,6 @@ gcal_event_set_property (GObject *object,
|
|||||||
gcal_event_set_location (self, g_value_get_string (value));
|
gcal_event_set_location (self, g_value_get_string (value));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PROP_SOURCE:
|
|
||||||
gcal_event_set_source (self, g_value_get_object (value));
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PROP_SUMMARY:
|
case PROP_SUMMARY:
|
||||||
gcal_event_set_summary (self, g_value_get_string (value));
|
gcal_event_set_summary (self, g_value_get_string (value));
|
||||||
break;
|
break;
|
||||||
@@ -704,15 +704,15 @@ gcal_event_class_init (GcalEventClass *klass)
|
|||||||
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
|
G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GcalEvent::source:
|
* GcalEvent::calendar:
|
||||||
*
|
*
|
||||||
* The #ESource this event belongs to.
|
* The #GcalCalendar this event belongs to.
|
||||||
*/
|
*/
|
||||||
properties[PROP_SOURCE] = g_param_spec_object ("source",
|
properties[PROP_CALENDAR] = g_param_spec_object ("calendar",
|
||||||
"ESource",
|
"Calendar",
|
||||||
"The ESource this event belongs to",
|
"The calendar this event belongs to",
|
||||||
E_TYPE_SOURCE,
|
GCAL_TYPE_CALENDAR,
|
||||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
|
G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GcalEvent::summary:
|
* GcalEvent::summary:
|
||||||
@@ -767,25 +767,25 @@ gcal_event_init (GcalEvent *self)
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* gcal_event_new:
|
* gcal_event_new:
|
||||||
* @source: (nullable): an #ESource
|
* @calendar: (nullable): a #GcalCalendar
|
||||||
* @component: a #ECalComponent
|
* @component: a #ECalComponent
|
||||||
* @error: (nullable): return location for a #GError
|
* @error: (nullable): return location for a #GError
|
||||||
*
|
*
|
||||||
* Creates a new event which belongs to @source and
|
* Creates a new event which belongs to @calendar and
|
||||||
* is represented by @component. New events will have
|
* is represented by @component. New events will have
|
||||||
* a %NULL @source.
|
* a %NULL @calendar.
|
||||||
*
|
*
|
||||||
* Returns: (transfer full)(nullable): a #GcalEvent
|
* Returns: (transfer full)(nullable): a #GcalEvent
|
||||||
*/
|
*/
|
||||||
GcalEvent*
|
GcalEvent*
|
||||||
gcal_event_new (ESource *source,
|
gcal_event_new (GcalCalendar *calendar,
|
||||||
ECalComponent *component,
|
ECalComponent *component,
|
||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
g_autofree gchar *uuid;
|
g_autofree gchar *uuid;
|
||||||
|
|
||||||
uuid = get_uuid_from_component (source, component);
|
uuid = get_uuid_from_component (gcal_calendar_get_source (calendar), component);
|
||||||
|
|
||||||
if (g_hash_table_contains (event_cache, uuid))
|
if (g_hash_table_contains (event_cache, uuid))
|
||||||
{
|
{
|
||||||
@@ -800,7 +800,7 @@ gcal_event_new (ESource *source,
|
|||||||
event = g_initable_new (GCAL_TYPE_EVENT,
|
event = g_initable_new (GCAL_TYPE_EVENT,
|
||||||
NULL,
|
NULL,
|
||||||
error,
|
error,
|
||||||
"source", source,
|
"calendar", calendar,
|
||||||
"component", component,
|
"component", component,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
@@ -1274,57 +1274,54 @@ gcal_event_set_location (GcalEvent *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gcal_event_get_source:
|
* gcal_event_get_calendar:
|
||||||
* @self: a #GcalEvent
|
* @self: a #GcalEvent
|
||||||
*
|
*
|
||||||
* Retrieves the source of the event.
|
* Retrieves the source of the event.
|
||||||
*
|
*
|
||||||
* Returns: (nullable): an #ESource.
|
* Returns: (nullable): a #GcalCalendar.
|
||||||
*/
|
*/
|
||||||
ESource*
|
GcalCalendar*
|
||||||
gcal_event_get_source (GcalEvent *self)
|
gcal_event_get_calendar (GcalEvent *self)
|
||||||
{
|
{
|
||||||
g_return_val_if_fail (GCAL_IS_EVENT (self), NULL);
|
g_return_val_if_fail (GCAL_IS_EVENT (self), NULL);
|
||||||
|
|
||||||
return self->source;
|
return self->calendar;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gcal_event_set_source:
|
* gcal_event_set_calendar:
|
||||||
* @self: a #GcalEvent
|
* @self: a #GcalEvent
|
||||||
* @source: an #ESource
|
* @calendar: a #GcalCalendar
|
||||||
*
|
*
|
||||||
* Sets the source of this event. The color of the
|
* Sets the calendar of this event. The color of the
|
||||||
* event is automatically tied with the source's
|
* event is automatically tied with the source's
|
||||||
* color.
|
* color.
|
||||||
*
|
*
|
||||||
* The source should only be set once.
|
* The source should only be set once.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gcal_event_set_source (GcalEvent *self,
|
gcal_event_set_calendar (GcalEvent *self,
|
||||||
ESource *source)
|
GcalCalendar *calendar)
|
||||||
{
|
{
|
||||||
g_return_if_fail (GCAL_IS_EVENT (self));
|
g_return_if_fail (GCAL_IS_EVENT (self));
|
||||||
|
|
||||||
if (self->source != source)
|
if (g_set_object (&self->calendar, calendar))
|
||||||
{
|
{
|
||||||
/* Remove previous binding */
|
/* Remove previous binding */
|
||||||
g_clear_pointer (&self->color_binding, g_binding_unbind);
|
g_clear_pointer (&self->color_binding, g_binding_unbind);
|
||||||
|
|
||||||
g_set_object (&self->source, source);
|
if (calendar)
|
||||||
|
|
||||||
if (source)
|
|
||||||
{
|
{
|
||||||
ESourceSelectable *extension;
|
ESourceSelectable *extension;
|
||||||
GdkRGBA color;
|
const GdkRGBA *color;
|
||||||
|
ESource *source;
|
||||||
|
|
||||||
extension = E_SOURCE_SELECTABLE (e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR));
|
color = gcal_calendar_get_color (calendar);
|
||||||
|
gcal_event_set_color (self, (GdkRGBA*) color);
|
||||||
|
|
||||||
/* calendar default color */
|
source = gcal_calendar_get_source (calendar);
|
||||||
if (!gdk_rgba_parse (&color, e_source_selectable_get_color (extension)))
|
extension = e_source_get_extension (source, E_SOURCE_EXTENSION_CALENDAR);
|
||||||
gdk_rgba_parse (&color, "#ffffff");
|
|
||||||
|
|
||||||
gcal_event_set_color (self, &color);
|
|
||||||
|
|
||||||
/* Bind the source's color with this event's color */
|
/* Bind the source's color with this event's color */
|
||||||
self->color_binding = g_object_bind_property_full (extension, "color",
|
self->color_binding = g_object_bind_property_full (extension, "color",
|
||||||
@@ -1336,7 +1333,7 @@ gcal_event_set_source (GcalEvent *self,
|
|||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_SOURCE]);
|
g_object_notify_by_pspec (G_OBJECT (self), properties[PROP_CALENDAR]);
|
||||||
|
|
||||||
gcal_event_update_uid_internal (self);
|
gcal_event_update_uid_internal (self);
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-4
@@ -19,6 +19,7 @@
|
|||||||
#ifndef GCAL_EVENT_H
|
#ifndef GCAL_EVENT_H
|
||||||
#define GCAL_EVENT_H
|
#define GCAL_EVENT_H
|
||||||
|
|
||||||
|
#include "gcal-calendar.h"
|
||||||
#include "gcal-recurrence.h"
|
#include "gcal-recurrence.h"
|
||||||
|
|
||||||
#include <glib-object.h>
|
#include <glib-object.h>
|
||||||
@@ -47,7 +48,7 @@ G_DECLARE_FINAL_TYPE (GcalEvent, gcal_event, GCAL, EVENT, GObject)
|
|||||||
|
|
||||||
GQuark gcal_event_error_quark (void);
|
GQuark gcal_event_error_quark (void);
|
||||||
|
|
||||||
GcalEvent* gcal_event_new (ESource *source,
|
GcalEvent* gcal_event_new (GcalCalendar *calendar,
|
||||||
ECalComponent *component,
|
ECalComponent *component,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
||||||
@@ -96,10 +97,10 @@ const gchar* gcal_event_get_location (GcalEvent
|
|||||||
void gcal_event_set_location (GcalEvent *self,
|
void gcal_event_set_location (GcalEvent *self,
|
||||||
const gchar *location);
|
const gchar *location);
|
||||||
|
|
||||||
ESource* gcal_event_get_source (GcalEvent *self);
|
GcalCalendar* gcal_event_get_calendar (GcalEvent *self);
|
||||||
|
|
||||||
void gcal_event_set_source (GcalEvent *self,
|
void gcal_event_set_calendar (GcalEvent *self,
|
||||||
ESource *source);
|
GcalCalendar *calendar);
|
||||||
|
|
||||||
const gchar* gcal_event_get_summary (GcalEvent *self);
|
const gchar* gcal_event_get_summary (GcalEvent *self);
|
||||||
|
|
||||||
|
|||||||
+50
-22
@@ -60,6 +60,12 @@ typedef struct
|
|||||||
GcalManager *manager;
|
GcalManager *manager;
|
||||||
} MoveEventData;
|
} MoveEventData;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
GcalManager *manager;
|
||||||
|
GList *events;
|
||||||
|
} GatherEventData;
|
||||||
|
|
||||||
struct _GcalManager
|
struct _GcalManager
|
||||||
{
|
{
|
||||||
GObject parent;
|
GObject parent;
|
||||||
@@ -124,13 +130,14 @@ gather_events (ECalDataModel *data_model,
|
|||||||
time_t instance_end,
|
time_t instance_end,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
|
GatherEventData *data = user_data;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
GError *error;
|
GError *error;
|
||||||
GList **result;
|
|
||||||
|
|
||||||
error = NULL;
|
error = NULL;
|
||||||
result = user_data;
|
calendar = g_hash_table_lookup (data->manager->clients, e_client_get_source (E_CLIENT (client)));
|
||||||
event = gcal_event_new (e_client_get_source (E_CLIENT (client)), comp, &error);
|
event = gcal_event_new (calendar, comp, &error);
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
@@ -139,7 +146,7 @@ gather_events (ECalDataModel *data_model,
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
*result = g_list_append (*result, event);/* FIXME: add me sorted */
|
data->events = g_list_append (data->events, event);/* FIXME: add me sorted */
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@@ -309,8 +316,12 @@ on_event_created (GObject *source_object,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
GcalCalendar *calendar;
|
||||||
|
|
||||||
g_object_ref (data->event);
|
g_object_ref (data->event);
|
||||||
gcal_manager_set_default_source (data->manager, gcal_event_get_source (data->event));
|
|
||||||
|
calendar = gcal_event_get_calendar (data->event);
|
||||||
|
gcal_manager_set_default_source (data->manager, gcal_calendar_get_source (calendar));
|
||||||
g_debug ("Event: %s created successfully", new_uid);
|
g_debug ("Event: %s created successfully", new_uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -781,6 +792,15 @@ gcal_manager_get_calendars (GcalManager *self)
|
|||||||
return g_hash_table_get_values (self->clients);
|
return g_hash_table_get_values (self->clients);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GcalCalendar*
|
||||||
|
gcal_manager_get_calendar_from_source (GcalManager *self,
|
||||||
|
ESource *source)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL);
|
||||||
|
|
||||||
|
return g_hash_table_lookup (self->clients, source);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gcal_manager_get_default_source:
|
* gcal_manager_get_default_source:
|
||||||
* @self: a #GcalManager
|
* @self: a #GcalManager
|
||||||
@@ -917,7 +937,10 @@ GList*
|
|||||||
gcal_manager_get_shell_search_events (GcalManager *self)
|
gcal_manager_get_shell_search_events (GcalManager *self)
|
||||||
{
|
{
|
||||||
time_t range_start, range_end;
|
time_t range_start, range_end;
|
||||||
GList *list = NULL;
|
GatherEventData data = {
|
||||||
|
.manager = self,
|
||||||
|
.events = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
|
|
||||||
@@ -930,9 +953,9 @@ gcal_manager_get_shell_search_events (GcalManager *self)
|
|||||||
range_start,
|
range_start,
|
||||||
range_end,
|
range_end,
|
||||||
gather_events,
|
gather_events,
|
||||||
&list);
|
&data);
|
||||||
|
|
||||||
GCAL_RETURN (list);
|
GCAL_RETURN (data.events);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1251,16 +1274,14 @@ gcal_manager_create_event (GcalManager *self,
|
|||||||
ECalComponent *component;
|
ECalComponent *component;
|
||||||
GcalCalendar *calendar;
|
GcalCalendar *calendar;
|
||||||
AsyncOpsData *data;
|
AsyncOpsData *data;
|
||||||
ESource *source;
|
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
|
|
||||||
g_return_if_fail (GCAL_IS_MANAGER (self));
|
g_return_if_fail (GCAL_IS_MANAGER (self));
|
||||||
g_return_if_fail (GCAL_IS_EVENT (event));
|
g_return_if_fail (GCAL_IS_EVENT (event));
|
||||||
|
|
||||||
source = gcal_event_get_source (event);
|
|
||||||
component = gcal_event_get_component (event);
|
component = gcal_event_get_component (event);
|
||||||
calendar = g_hash_table_lookup (self->clients, source);
|
calendar = gcal_event_get_calendar (event);
|
||||||
|
|
||||||
new_event_icalcomp = e_cal_component_get_icalcomponent (component);
|
new_event_icalcomp = e_cal_component_get_icalcomponent (component);
|
||||||
|
|
||||||
@@ -1298,7 +1319,7 @@ gcal_manager_update_event (GcalManager *self,
|
|||||||
g_return_if_fail (GCAL_IS_MANAGER (self));
|
g_return_if_fail (GCAL_IS_MANAGER (self));
|
||||||
g_return_if_fail (GCAL_IS_EVENT (event));
|
g_return_if_fail (GCAL_IS_EVENT (event));
|
||||||
|
|
||||||
calendar = g_hash_table_lookup (self->clients, gcal_event_get_source (event));
|
calendar = gcal_event_get_calendar (event);
|
||||||
component = gcal_event_get_component (event);
|
component = gcal_event_get_component (event);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1351,7 +1372,7 @@ gcal_manager_remove_event (GcalManager *self,
|
|||||||
g_return_if_fail (GCAL_IS_EVENT (event));
|
g_return_if_fail (GCAL_IS_EVENT (event));
|
||||||
|
|
||||||
component = gcal_event_get_component (event);
|
component = gcal_event_get_component (event);
|
||||||
calendar = g_hash_table_lookup (self->clients, gcal_event_get_source (event));
|
calendar = gcal_event_get_calendar (event);
|
||||||
rid = NULL;
|
rid = NULL;
|
||||||
|
|
||||||
e_cal_component_get_uid (component, &uid);
|
e_cal_component_get_uid (component, &uid);
|
||||||
@@ -1428,7 +1449,7 @@ gcal_manager_move_event_to_source (GcalManager *self,
|
|||||||
* created, try to remove the old component. Data loss it the last
|
* created, try to remove the old component. Data loss it the last
|
||||||
* thing we want to happen here.
|
* thing we want to happen here.
|
||||||
*/
|
*/
|
||||||
calendar = g_hash_table_lookup (self->clients, gcal_event_get_source (event));
|
calendar = gcal_event_get_calendar (event);
|
||||||
|
|
||||||
id = e_cal_component_get_id (ecomponent);
|
id = e_cal_component_get_id (ecomponent);
|
||||||
|
|
||||||
@@ -1470,7 +1491,10 @@ gcal_manager_get_events (GcalManager *self,
|
|||||||
icaltimetype *end_date)
|
icaltimetype *end_date)
|
||||||
{
|
{
|
||||||
time_t range_start, range_end;
|
time_t range_start, range_end;
|
||||||
GList *list = NULL;
|
GatherEventData data = {
|
||||||
|
.manager = self,
|
||||||
|
.events = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
|
|
||||||
@@ -1483,9 +1507,9 @@ gcal_manager_get_events (GcalManager *self,
|
|||||||
range_start,
|
range_start,
|
||||||
range_end,
|
range_end,
|
||||||
gather_events,
|
gather_events,
|
||||||
&list);
|
&data);
|
||||||
|
|
||||||
GCAL_RETURN (list);
|
GCAL_RETURN (data.events);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1520,14 +1544,18 @@ gcal_manager_get_event_from_shell_search (GcalManager *self,
|
|||||||
const gchar *uuid)
|
const gchar *uuid)
|
||||||
{
|
{
|
||||||
GcalEvent *new_event;
|
GcalEvent *new_event;
|
||||||
GList *l, *list;
|
GList *l;
|
||||||
time_t range_start, range_end;
|
time_t range_start, range_end;
|
||||||
|
GatherEventData data = {
|
||||||
|
.manager = self,
|
||||||
|
.events = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
|
|
||||||
g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL);
|
g_return_val_if_fail (GCAL_IS_MANAGER (self), NULL);
|
||||||
|
|
||||||
list = NULL;
|
|
||||||
new_event = NULL;
|
new_event = NULL;
|
||||||
|
|
||||||
e_cal_data_model_get_subscriber_range (self->shell_search_data_model,
|
e_cal_data_model_get_subscriber_range (self->shell_search_data_model,
|
||||||
@@ -1539,9 +1567,9 @@ gcal_manager_get_event_from_shell_search (GcalManager *self,
|
|||||||
range_start,
|
range_start,
|
||||||
range_end,
|
range_end,
|
||||||
gather_events,
|
gather_events,
|
||||||
&list);
|
&data);
|
||||||
|
|
||||||
for (l = list; l != NULL; l = g_list_next (l))
|
for (l = data.events; l != NULL; l = g_list_next (l))
|
||||||
{
|
{
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
|
|
||||||
@@ -1554,7 +1582,7 @@ gcal_manager_get_event_from_shell_search (GcalManager *self,
|
|||||||
g_object_unref (event);
|
g_object_unref (event);
|
||||||
}
|
}
|
||||||
|
|
||||||
g_list_free (list);
|
g_list_free (data.events);
|
||||||
|
|
||||||
GCAL_RETURN (new_event);
|
GCAL_RETURN (new_event);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,9 @@ GcalManager* gcal_manager_new (void);
|
|||||||
ESource* gcal_manager_get_source (GcalManager *self,
|
ESource* gcal_manager_get_source (GcalManager *self,
|
||||||
const gchar *uid);
|
const gchar *uid);
|
||||||
|
|
||||||
|
GcalCalendar* gcal_manager_get_calendar_from_source (GcalManager *self,
|
||||||
|
ESource *source);
|
||||||
|
|
||||||
GList* gcal_manager_get_calendars (GcalManager *self);
|
GList* gcal_manager_get_calendars (GcalManager *self);
|
||||||
|
|
||||||
ESource* gcal_manager_get_default_source (GcalManager *self);
|
ESource* gcal_manager_get_default_source (GcalManager *self);
|
||||||
|
|||||||
@@ -639,6 +639,7 @@ edit_or_create_event (GcalQuickAddPopover *self,
|
|||||||
GtkWidget *button)
|
GtkWidget *button)
|
||||||
{
|
{
|
||||||
ECalComponent *component;
|
ECalComponent *component;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GcalManager *manager;
|
GcalManager *manager;
|
||||||
GDateTime *date_start, *date_end;
|
GDateTime *date_start, *date_end;
|
||||||
GTimeZone *tz;
|
GTimeZone *tz;
|
||||||
@@ -652,6 +653,7 @@ edit_or_create_event (GcalQuickAddPopover *self,
|
|||||||
|
|
||||||
manager = gcal_context_get_manager (self->context);
|
manager = gcal_context_get_manager (self->context);
|
||||||
source = g_object_get_data (G_OBJECT (self->selected_row), "source");
|
source = g_object_get_data (G_OBJECT (self->selected_row), "source");
|
||||||
|
calendar = gcal_manager_get_calendar_from_source (manager, source);
|
||||||
|
|
||||||
single_day = gcal_date_time_compare_date (self->date_end, self->date_start) == 0;
|
single_day = gcal_date_time_compare_date (self->date_end, self->date_start) == 0;
|
||||||
all_day = gcal_date_time_compare_date (self->date_end, self->date_start) > 1 ||
|
all_day = gcal_date_time_compare_date (self->date_end, self->date_start) > 1 ||
|
||||||
@@ -692,7 +694,7 @@ edit_or_create_event (GcalQuickAddPopover *self,
|
|||||||
/* Create an ECalComponent from the data above */
|
/* Create an ECalComponent from the data above */
|
||||||
component = build_component_from_details (summary, date_start, date_end);
|
component = build_component_from_details (summary, date_start, date_end);
|
||||||
|
|
||||||
event = gcal_event_new (source, component, NULL);
|
event = gcal_event_new (calendar, component, NULL);
|
||||||
gcal_event_set_all_day (event, all_day);
|
gcal_event_set_all_day (event, all_day);
|
||||||
|
|
||||||
/* If we clicked edit button, send a signal; otherwise, create the event */
|
/* If we clicked edit button, send a signal; otherwise, create the event */
|
||||||
|
|||||||
+8
-2
@@ -891,14 +891,18 @@ create_event_detailed_cb (GcalView *view,
|
|||||||
gpointer end_span,
|
gpointer end_span,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
|
g_autoptr (ESource) default_source = NULL;
|
||||||
GcalWindow *window = GCAL_WINDOW (user_data);
|
GcalWindow *window = GCAL_WINDOW (user_data);
|
||||||
|
GcalCalendar *default_calendar;
|
||||||
GcalManager *manager;
|
GcalManager *manager;
|
||||||
ECalComponent *comp;
|
ECalComponent *comp;
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
|
|
||||||
manager = gcal_context_get_manager (window->context);
|
manager = gcal_context_get_manager (window->context);
|
||||||
comp = build_component_from_details ("", start_span, end_span);
|
comp = build_component_from_details ("", start_span, end_span);
|
||||||
event = gcal_event_new (gcal_manager_get_default_source (manager), comp, NULL);
|
default_source = gcal_manager_get_default_source (manager);
|
||||||
|
default_calendar = gcal_manager_get_calendar_from_source (manager, default_source);
|
||||||
|
event = gcal_event_new (default_calendar, comp, NULL);
|
||||||
|
|
||||||
gcal_edit_dialog_set_event_is_new (GCAL_EDIT_DIALOG (window->edit_dialog), TRUE);
|
gcal_edit_dialog_set_event_is_new (GCAL_EDIT_DIALOG (window->edit_dialog), TRUE);
|
||||||
gcal_edit_dialog_set_event (GCAL_EDIT_DIALOG (window->edit_dialog), event);
|
gcal_edit_dialog_set_event (GCAL_EDIT_DIALOG (window->edit_dialog), event);
|
||||||
@@ -929,6 +933,7 @@ edit_dialog_closed (GtkDialog *dialog,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
GcalRecurrenceModType mod;
|
GcalRecurrenceModType mod;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GcalManager *manager;
|
GcalManager *manager;
|
||||||
GcalWindow *window;
|
GcalWindow *window;
|
||||||
GcalEditDialog *edit_dialog;
|
GcalEditDialog *edit_dialog;
|
||||||
@@ -945,7 +950,8 @@ edit_dialog_closed (GtkDialog *dialog,
|
|||||||
event = gcal_edit_dialog_get_event (edit_dialog);
|
event = gcal_edit_dialog_get_event (edit_dialog);
|
||||||
view = GCAL_VIEW (window->views[window->active_view]);
|
view = GCAL_VIEW (window->views[window->active_view]);
|
||||||
mod = GCAL_RECURRENCE_MOD_THIS_ONLY;
|
mod = GCAL_RECURRENCE_MOD_THIS_ONLY;
|
||||||
source = gcal_event_get_source (event);
|
calendar = gcal_event_get_calendar (event);
|
||||||
|
source = gcal_calendar_get_source (calendar);
|
||||||
|
|
||||||
if (!gcal_edit_dialog_get_recurrence_changed (edit_dialog) &&
|
if (!gcal_edit_dialog_get_recurrence_changed (edit_dialog) &&
|
||||||
gcal_event_has_recurrence (event) &&
|
gcal_event_has_recurrence (event) &&
|
||||||
|
|||||||
@@ -77,14 +77,14 @@ gcal_search_hit_event_get_icon_surface (DzlSuggestion *suggestion,
|
|||||||
{
|
{
|
||||||
GcalSearchHitEvent *self;
|
GcalSearchHitEvent *self;
|
||||||
cairo_surface_t *surface;
|
cairo_surface_t *surface;
|
||||||
ESource *source;
|
const GdkRGBA *color;
|
||||||
GdkRGBA color;
|
GcalCalendar *calendar;
|
||||||
|
|
||||||
self = GCAL_SEARCH_HIT_EVENT (suggestion);
|
self = GCAL_SEARCH_HIT_EVENT (suggestion);
|
||||||
source = gcal_event_get_source (self->event);
|
calendar = gcal_event_get_calendar (self->event);
|
||||||
|
|
||||||
get_color_name_from_source (source, &color);
|
color = gcal_calendar_get_color (calendar);
|
||||||
surface = get_circle_surface_from_color (&color, 16);
|
surface = get_circle_surface_from_color (color, 16);
|
||||||
|
|
||||||
/* Inject our custom style class into the given widget */
|
/* Inject our custom style class into the given widget */
|
||||||
gtk_style_context_add_class (gtk_widget_get_style_context (widget), "calendar-color-image");
|
gtk_style_context_add_class (gtk_widget_get_style_context (widget), "calendar-color-image");
|
||||||
|
|||||||
@@ -21,6 +21,8 @@
|
|||||||
#define G_LOG_DOMAIN "GcalSearchModel"
|
#define G_LOG_DOMAIN "GcalSearchModel"
|
||||||
|
|
||||||
#include "e-cal-data-model.h"
|
#include "e-cal-data-model.h"
|
||||||
|
#include "gcal-application.h"
|
||||||
|
#include "gcal-context.h"
|
||||||
#include "gcal-debug.h"
|
#include "gcal-debug.h"
|
||||||
#include "gcal-search-hit.h"
|
#include "gcal-search-hit.h"
|
||||||
#include "gcal-search-hit-event.h"
|
#include "gcal-search-hit-event.h"
|
||||||
@@ -98,6 +100,8 @@ gcal_search_model_component_added (ECalDataModelSubscriber *subscriber,
|
|||||||
g_autoptr (GcalEvent) event = NULL;
|
g_autoptr (GcalEvent) event = NULL;
|
||||||
g_autoptr (GError) error = NULL;
|
g_autoptr (GError) error = NULL;
|
||||||
GcalSearchModel *self;
|
GcalSearchModel *self;
|
||||||
|
GcalCalendar *calendar;
|
||||||
|
GcalContext *context;
|
||||||
ESource *source;
|
ESource *source;
|
||||||
|
|
||||||
self = GCAL_SEARCH_MODEL (subscriber);
|
self = GCAL_SEARCH_MODEL (subscriber);
|
||||||
@@ -105,8 +109,11 @@ gcal_search_model_component_added (ECalDataModelSubscriber *subscriber,
|
|||||||
if (g_list_model_get_n_items (self->model) > self->max_results)
|
if (g_list_model_get_n_items (self->model) > self->max_results)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
/* FIXME: propagate context to the model properly */
|
||||||
|
context = gcal_application_get_context (GCAL_APPLICATION (g_application_get_default ()));
|
||||||
source = e_client_get_source (E_CLIENT (client));
|
source = e_client_get_source (E_CLIENT (client));
|
||||||
event = gcal_event_new (source, component, &error);
|
calendar = gcal_manager_get_calendar_from_source (gcal_context_get_manager (context), source);
|
||||||
|
event = gcal_event_new (calendar, component, &error);
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1102,13 +1102,13 @@ filter_event_list_by_uid_and_modtype (GList *widgets,
|
|||||||
{
|
{
|
||||||
ECalComponentId *id;
|
ECalComponentId *id;
|
||||||
ECalComponent *component;
|
ECalComponent *component;
|
||||||
ESource *source;
|
GcalCalendar *calendar;
|
||||||
g_autofree gchar *id_prefix;
|
g_autofree gchar *id_prefix;
|
||||||
|
|
||||||
component = gcal_event_get_component (event);
|
component = gcal_event_get_component (event);
|
||||||
source = gcal_event_get_source (event);
|
calendar = gcal_event_get_calendar (event);
|
||||||
id = e_cal_component_get_id (component);
|
id = e_cal_component_get_id (component);
|
||||||
id_prefix = g_strdup_printf ("%s:%s", e_source_get_uid (source), id->uid);
|
id_prefix = g_strdup_printf ("%s:%s", gcal_calendar_get_id (calendar), id->uid);
|
||||||
|
|
||||||
for (l = widgets; l != NULL; l = l->next)
|
for (l = widgets; l != NULL; l = l->next)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -205,6 +205,7 @@ gcal_month_cell_drag_drop (GtkWidget *widget,
|
|||||||
{
|
{
|
||||||
GcalRecurrenceModType mod;
|
GcalRecurrenceModType mod;
|
||||||
GcalMonthCell *self;
|
GcalMonthCell *self;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GtkWidget *event_widget;
|
GtkWidget *event_widget;
|
||||||
GDateTime *start_dt, *end_dt;
|
GDateTime *start_dt, *end_dt;
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
@@ -225,7 +226,8 @@ gcal_month_cell_drag_drop (GtkWidget *widget,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
event = gcal_event_widget_get_event (GCAL_EVENT_WIDGET (event_widget));
|
event = gcal_event_widget_get_event (GCAL_EVENT_WIDGET (event_widget));
|
||||||
source = gcal_event_get_source (event);
|
calendar = gcal_event_get_calendar (event);
|
||||||
|
source = gcal_calendar_get_source (calendar);
|
||||||
|
|
||||||
if (gcal_event_has_recurrence (event) &&
|
if (gcal_event_has_recurrence (event) &&
|
||||||
!ask_recurrence_modification_type (widget, &mod, source))
|
!ask_recurrence_modification_type (widget, &mod, source))
|
||||||
|
|||||||
@@ -1242,6 +1242,7 @@ gcal_month_view_component_added (ECalDataModelSubscriber *subscriber,
|
|||||||
{
|
{
|
||||||
g_autoptr (GcalEvent) event = NULL;
|
g_autoptr (GcalEvent) event = NULL;
|
||||||
GcalMonthView *self;
|
GcalMonthView *self;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GtkWidget *event_widget;
|
GtkWidget *event_widget;
|
||||||
GError *error;
|
GError *error;
|
||||||
|
|
||||||
@@ -1249,7 +1250,9 @@ gcal_month_view_component_added (ECalDataModelSubscriber *subscriber,
|
|||||||
|
|
||||||
error = NULL;
|
error = NULL;
|
||||||
self = GCAL_MONTH_VIEW (subscriber);
|
self = GCAL_MONTH_VIEW (subscriber);
|
||||||
event = gcal_event_new (e_client_get_source (E_CLIENT (client)), comp, &error);
|
calendar = gcal_manager_get_calendar_from_source (gcal_context_get_manager (self->context),
|
||||||
|
e_client_get_source (E_CLIENT (client)));
|
||||||
|
event = gcal_event_new (calendar, comp, &error);
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
@@ -1276,6 +1279,7 @@ gcal_month_view_component_modified (ECalDataModelSubscriber *subscriber,
|
|||||||
{
|
{
|
||||||
g_autoptr (GcalEvent) event = NULL;
|
g_autoptr (GcalEvent) event = NULL;
|
||||||
GcalMonthView *self;
|
GcalMonthView *self;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GtkWidget *new_widget;
|
GtkWidget *new_widget;
|
||||||
GError *error;
|
GError *error;
|
||||||
GList *l;
|
GList *l;
|
||||||
@@ -1284,7 +1288,9 @@ gcal_month_view_component_modified (ECalDataModelSubscriber *subscriber,
|
|||||||
|
|
||||||
error = NULL;
|
error = NULL;
|
||||||
self = GCAL_MONTH_VIEW (subscriber);
|
self = GCAL_MONTH_VIEW (subscriber);
|
||||||
event = gcal_event_new (e_client_get_source (E_CLIENT (client)), comp, &error);
|
calendar = gcal_manager_get_calendar_from_source (gcal_context_get_manager (self->context),
|
||||||
|
e_client_get_source (E_CLIENT (client)));
|
||||||
|
event = gcal_event_new (calendar, comp, &error);
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -978,6 +978,7 @@ gcal_week_grid_drag_drop (GtkWidget *widget,
|
|||||||
g_autoptr (GDateTime) week_start;
|
g_autoptr (GDateTime) week_start;
|
||||||
g_autoptr (GDateTime) dnd_date;
|
g_autoptr (GDateTime) dnd_date;
|
||||||
g_autoptr (GDateTime) new_end;
|
g_autoptr (GDateTime) new_end;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GtkWidget *event_widget;
|
GtkWidget *event_widget;
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
ESource *source;
|
ESource *source;
|
||||||
@@ -1010,7 +1011,8 @@ gcal_week_grid_drag_drop (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
event = gcal_event_widget_get_event (GCAL_EVENT_WIDGET (event_widget));
|
event = gcal_event_widget_get_event (GCAL_EVENT_WIDGET (event_widget));
|
||||||
source = gcal_event_get_source (event);
|
calendar = gcal_event_get_calendar (event);
|
||||||
|
source = gcal_calendar_get_source (calendar);
|
||||||
|
|
||||||
if (gcal_event_has_recurrence (event) &&
|
if (gcal_event_has_recurrence (event) &&
|
||||||
!ask_recurrence_modification_type (widget, &mod, source))
|
!ask_recurrence_modification_type (widget, &mod, source))
|
||||||
|
|||||||
@@ -298,10 +298,13 @@ gcal_week_view_component_added (ECalDataModelSubscriber *subscriber,
|
|||||||
{
|
{
|
||||||
GcalWeekView *self = GCAL_WEEK_VIEW (subscriber);
|
GcalWeekView *self = GCAL_WEEK_VIEW (subscriber);
|
||||||
g_autoptr (GcalEvent) event = NULL;
|
g_autoptr (GcalEvent) event = NULL;
|
||||||
|
GcalCalendar *calendar;
|
||||||
|
|
||||||
GCAL_ENTRY;
|
GCAL_ENTRY;
|
||||||
|
|
||||||
event = gcal_event_new (e_client_get_source (E_CLIENT (client)), comp, NULL);
|
calendar = gcal_manager_get_calendar_from_source (gcal_context_get_manager (self->context),
|
||||||
|
e_client_get_source (E_CLIENT (client)));
|
||||||
|
event = gcal_event_new (calendar, comp, NULL);
|
||||||
|
|
||||||
if (gcal_event_is_multiday (event) || gcal_event_get_all_day (event))
|
if (gcal_event_is_multiday (event) || gcal_event_get_all_day (event))
|
||||||
gcal_week_header_add_event (GCAL_WEEK_HEADER (self->header), event);
|
gcal_week_header_add_event (GCAL_WEEK_HEADER (self->header), event);
|
||||||
|
|||||||
@@ -308,14 +308,14 @@ add_event_to_day_array (GcalYearView *year_view,
|
|||||||
{
|
{
|
||||||
g_autoptr (GDateTime) second_date = NULL;
|
g_autoptr (GDateTime) second_date = NULL;
|
||||||
g_autoptr (GDateTime) date = NULL;
|
g_autoptr (GDateTime) date = NULL;
|
||||||
GcalManager *manager;
|
GcalCalendar *calendar;
|
||||||
GtkWidget *child_widget;
|
GtkWidget *child_widget;
|
||||||
GDateTime *dt_start, *dt_end;
|
GDateTime *dt_start, *dt_end;
|
||||||
gboolean is_readonly;
|
gboolean is_readonly;
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
manager = gcal_context_get_manager (year_view->context);
|
calendar = gcal_event_get_calendar (event);
|
||||||
is_readonly = !gcal_manager_is_client_writable (manager, gcal_event_get_source (event));
|
is_readonly = gcal_calendar_is_read_only (calendar);
|
||||||
|
|
||||||
child_widget = gcal_event_widget_new (year_view->context, event);
|
child_widget = gcal_event_widget_new (year_view->context, event);
|
||||||
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (child_widget), is_readonly);
|
gcal_event_widget_set_read_only (GCAL_EVENT_WIDGET (child_widget), is_readonly);
|
||||||
@@ -1469,6 +1469,7 @@ navigator_drag_drop_cb (GcalYearView *self,
|
|||||||
{
|
{
|
||||||
GcalRecurrenceModType mod;
|
GcalRecurrenceModType mod;
|
||||||
GcalEventWidget *event_widget;
|
GcalEventWidget *event_widget;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GcalEvent *event;
|
GcalEvent *event;
|
||||||
GDateTime *start_dt, *end_dt;
|
GDateTime *start_dt, *end_dt;
|
||||||
GDateTime *drop_date;
|
GDateTime *drop_date;
|
||||||
@@ -1476,7 +1477,8 @@ navigator_drag_drop_cb (GcalYearView *self,
|
|||||||
|
|
||||||
event_widget = GCAL_EVENT_WIDGET (gtk_drag_get_source_widget (context));
|
event_widget = GCAL_EVENT_WIDGET (gtk_drag_get_source_widget (context));
|
||||||
event = gcal_event_widget_get_event (event_widget);
|
event = gcal_event_widget_get_event (event_widget);
|
||||||
source = gcal_event_get_source (event);
|
calendar = gcal_event_get_calendar (event);
|
||||||
|
source = gcal_calendar_get_source (calendar);
|
||||||
mod = GCAL_RECURRENCE_MOD_THIS_ONLY;
|
mod = GCAL_RECURRENCE_MOD_THIS_ONLY;
|
||||||
|
|
||||||
if (gcal_event_has_recurrence (event) &&
|
if (gcal_event_has_recurrence (event) &&
|
||||||
@@ -1798,6 +1800,7 @@ gcal_year_view_component_added (ECalDataModelSubscriber *subscriber,
|
|||||||
ECalComponent *comp)
|
ECalComponent *comp)
|
||||||
{
|
{
|
||||||
g_autoptr (GcalEvent) event = NULL;
|
g_autoptr (GcalEvent) event = NULL;
|
||||||
|
GcalCalendar *calendar;
|
||||||
GcalYearView *self;
|
GcalYearView *self;
|
||||||
GDateTime *event_start, *event_end;
|
GDateTime *event_start, *event_end;
|
||||||
GError *error;
|
GError *error;
|
||||||
@@ -1807,7 +1810,9 @@ gcal_year_view_component_added (ECalDataModelSubscriber *subscriber,
|
|||||||
|
|
||||||
error = NULL;
|
error = NULL;
|
||||||
self = GCAL_YEAR_VIEW (subscriber);
|
self = GCAL_YEAR_VIEW (subscriber);
|
||||||
event = gcal_event_new (e_client_get_source (E_CLIENT (client)), comp, &error);
|
calendar = gcal_manager_get_calendar_from_source (gcal_context_get_manager (self->context),
|
||||||
|
e_client_get_source (E_CLIENT (client)));
|
||||||
|
event = gcal_event_new (calendar, comp, &error);
|
||||||
|
|
||||||
if (error)
|
if (error)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user