summaryrefslogtreecommitdiffstats
path: root/sync/src/sync_item.c
diff options
context:
space:
mode:
Diffstat (limited to 'sync/src/sync_item.c')
-rw-r--r--sync/src/sync_item.c67
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);
-}