diff options
Diffstat (limited to 'sync/src/sync_item.c')
-rw-r--r-- | sync/src/sync_item.c | 67 |
1 files changed, 3 insertions, 64 deletions
diff --git a/sync/src/sync_item.c b/sync/src/sync_item.c index 324972c..4565749 100644 --- a/sync/src/sync_item.c +++ b/sync/src/sync_item.c @@ -4,7 +4,7 @@ #include "sync_item.h" #include "sync_group.h" -G_DEFINE_TYPE (SyncItem, sync_item, G_TYPE_INITIALLY_UNOWNED); +G_DEFINE_TYPE (SyncItem, sync_item, G_TYPE_OBJECT); #define ITEM_PRIVATE(o) \ (G_TYPE_INSTANCE_GET_PRIVATE ((o), SYNC_TYPE_ITEM, SyncItemPrivate)) @@ -17,7 +17,6 @@ enum { PROP_DATA, PROP_DATA_FREE_FUNC, PROP_MEMBER_FUNC, - PROP_GROUP, }; struct _SyncItemPrivate @@ -27,8 +26,6 @@ struct _SyncItemPrivate gpointer data; SyncItemMemberFunc get_member; SyncItemDataFreeFunc free_data; - SyncGroup *group; - OSyncMember *member; }; static void @@ -70,10 +67,6 @@ sync_item_set_property (GObject *object, sync_item_set_member_func ( item, g_value_get_pointer (value)); break; - case PROP_GROUP : - sync_item_set_group (item, - SYNC_GROUP (g_value_get_object (value))); - break; default : G_OBJECT_WARN_INVALID_PROPERTY_ID ( object, prop_id, pspec); @@ -107,10 +100,6 @@ sync_item_get_property (GObject *object, g_value_set_pointer ( value, sync_item_get_member_func (item)); break; - case PROP_GROUP : - g_value_set_object ( - value, sync_item_get_group (item)); - break; default : G_OBJECT_WARN_INVALID_PROPERTY_ID ( object, prop_id, pspec); @@ -168,15 +157,6 @@ sync_item_class_init (SyncItemClass *klass) ("Member Function"), ("Function pointer to retrieve OSyncMember."), G_PARAM_READWRITE)); - g_object_class_install_property ( - object_class, - PROP_GROUP, - g_param_spec_object ( - "group", - ("SyncGroup"), - ("SyncGroup this item belongs to."), - SYNC_TYPE_GROUP, - G_PARAM_READWRITE)); g_type_class_add_private (klass, sizeof (SyncItemPrivate)); @@ -236,26 +216,11 @@ sync_item_get_member_func (SyncItem *item) } OSyncMember * -sync_item_get_member (SyncItem *item) +sync_item_create_member (SyncItem *item, SyncGroup *group) { SyncItemPrivate *priv = ITEM_PRIVATE (item); - if (!priv->group) { - g_warning ("%s called on SyncItem with no group", G_STRFUNC); - return NULL; - } - - if (!priv->member) - priv->member = priv->get_member (item); - - return priv->member; -} - -SyncGroup * -sync_item_get_group (SyncItem *item) -{ - SyncItemPrivate *priv = ITEM_PRIVATE (item); - return priv->group; + return priv->get_member (item, group); } void @@ -296,29 +261,3 @@ sync_item_set_member_func (SyncItem *item, SyncItemPrivate *priv = ITEM_PRIVATE (item); priv->get_member = member_func; } - -void -sync_item_set_group (SyncItem *item, SyncGroup *group) -{ - SyncItemPrivate *priv = ITEM_PRIVATE (item); - if (priv->group) { - g_warning ("SyncItem already contained in a group"); - return; - } - priv->group = group; -} - -void -sync_item_ungroup (SyncItem *item) -{ - SyncItemPrivate *priv = ITEM_PRIVATE (item); - if (priv->group) { - /* Removing the item from the group frees the group, which in - * turn frees the member. - */ - sync_group_remove_item (priv->group, item); - priv->group = NULL; - priv->member = NULL; - } else - g_warning ("%s called on SyncItem with no group", G_STRFUNC); -} |