manager: migrate :objects-added signal
GcalManager:objects-added signal pass a list of struct containing ECalComponents for the event widgets. This ECalComponent instance will be owned and released by the event widget. Look at: GcalEventWidget::finalize
This commit is contained in:
+13
-14
@@ -22,9 +22,6 @@
|
|||||||
|
|
||||||
#include <glib/gi18n.h>
|
#include <glib/gi18n.h>
|
||||||
|
|
||||||
#include <libecal/libecal.h>
|
|
||||||
#include <libedataserver/libedataserver.h>
|
|
||||||
|
|
||||||
typedef struct _RetryOpenData
|
typedef struct _RetryOpenData
|
||||||
{
|
{
|
||||||
ESource *source;
|
ESource *source;
|
||||||
@@ -364,34 +361,36 @@ on_view_objects_added (ECalClientView *view,
|
|||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
GcalManagerPrivate *priv;
|
GcalManagerPrivate *priv;
|
||||||
|
|
||||||
|
ESource *source;
|
||||||
GcalManagerUnit *unit;
|
GcalManagerUnit *unit;
|
||||||
|
|
||||||
const gchar *source_uid;
|
|
||||||
GSList *l;
|
GSList *l;
|
||||||
GSList *events_data;
|
GSList *events_data;
|
||||||
|
|
||||||
ECalClient *client;
|
ECalClient *client;
|
||||||
gchar *event_uuid;
|
|
||||||
|
|
||||||
priv = gcal_manager_get_instance_private (GCAL_MANAGER (user_data));
|
priv = gcal_manager_get_instance_private (GCAL_MANAGER (user_data));
|
||||||
events_data = NULL;
|
events_data = NULL;
|
||||||
|
|
||||||
client = e_cal_client_view_ref_client (view);
|
client = e_cal_client_view_ref_client (view);
|
||||||
source_uid =
|
source = e_client_get_source (E_CLIENT (client));
|
||||||
e_source_get_uid (e_client_get_source (E_CLIENT (client)));
|
|
||||||
|
|
||||||
unit = (GcalManagerUnit*)
|
unit = (GcalManagerUnit*) g_hash_table_lookup (priv->clients,
|
||||||
g_hash_table_lookup (priv->clients,
|
source);
|
||||||
e_client_get_source (E_CLIENT (client)));
|
|
||||||
|
|
||||||
for (l = objects; l != NULL; l = l->next)
|
for (l = objects; l != NULL; l = l->next)
|
||||||
{
|
{
|
||||||
if (l->data != NULL && unit->enabled)
|
if (l->data != NULL && unit->enabled)
|
||||||
{
|
{
|
||||||
event_uuid = g_strdup_printf ("%s:%s",
|
GcalEventData *data;
|
||||||
source_uid,
|
|
||||||
icalcomponent_get_uid (l->data));
|
data = g_new0 (GcalEventData, 1);
|
||||||
events_data = g_slist_append (events_data, event_uuid);
|
data->source = source;
|
||||||
|
data->event_component =
|
||||||
|
e_cal_component_new_from_icalcomponent (
|
||||||
|
icalcomponent_new_clone (l->data));
|
||||||
|
events_data = g_slist_append (events_data, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,9 @@
|
|||||||
#include <gtk/gtk.h>
|
#include <gtk/gtk.h>
|
||||||
#include <glib-object.h>
|
#include <glib-object.h>
|
||||||
|
|
||||||
|
#include <libedataserver/libedataserver.h>
|
||||||
|
#include <libecal/libecal.h>
|
||||||
|
|
||||||
#include <libical/icaltime.h>
|
#include <libical/icaltime.h>
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
@@ -54,6 +57,12 @@ struct _GcalManagerClass
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
ESource *source;
|
||||||
|
ECalComponent *event_component;
|
||||||
|
} GcalEventData;
|
||||||
|
|
||||||
GType gcal_manager_get_type (void);
|
GType gcal_manager_get_type (void);
|
||||||
|
|
||||||
GcalManager* gcal_manager_new (void);
|
GcalManager* gcal_manager_new (void);
|
||||||
|
|||||||
Reference in New Issue
Block a user