summaryrefslogtreecommitdiffstats
path: root/sync/src/sync_group.c
diff options
context:
space:
mode:
Diffstat (limited to 'sync/src/sync_group.c')
-rw-r--r--sync/src/sync_group.c45
1 files changed, 38 insertions, 7 deletions
diff --git a/sync/src/sync_group.c b/sync/src/sync_group.c
index db34e13..adf9d49 100644
--- a/sync/src/sync_group.c
+++ b/sync/src/sync_group.c
@@ -397,6 +397,10 @@ sync_group_get_osync_group (SyncGroup *group)
static gboolean
sync_group_started_idle (SyncGroup *group)
{
+ gchar *name = sync_group_get_name (group);
+ g_debug ("Group '%s' emitting started signal", name);
+ g_free (name);
+
g_signal_emit (group, signals[STARTED], 0);
return FALSE;
@@ -407,6 +411,10 @@ sync_group_progress_idle (SyncGroup *group)
{
SyncGroupPrivate *priv = GROUP_PRIVATE (group);
+ gchar *name = sync_group_get_name (group);
+ g_debug ("Group '%s' emitting progress signal", name);
+ g_free (name);
+
g_mutex_lock (priv->mutex);
g_signal_emit (group, signals[PROGRESS], 0, priv->changes /
(gdouble)priv->max_changes);
@@ -419,6 +427,10 @@ sync_group_progress_idle (SyncGroup *group)
static gboolean
sync_group_conflict_idle (SyncGroup *group)
{
+ gchar *name = sync_group_get_name (group);
+ g_debug ("Group '%s' emitting conflict signal", name);
+ g_free (name);
+
g_signal_emit (group, signals[CONFLICT], 0);
return FALSE;
@@ -429,14 +441,20 @@ sync_group_free_engine (SyncGroup *group)
{
SyncGroupPrivate *priv = GROUP_PRIVATE (group);
- osengine_finalize (priv->engine);
- osengine_free (priv->engine);
- priv->engine = NULL;
+ if (priv->engine) {
+ osengine_finalize (priv->engine);
+ osengine_free (priv->engine);
+ priv->engine = NULL;
+ }
}
static gboolean
sync_group_finished_idle (SyncGroup *group)
{
+ gchar *name = sync_group_get_name (group);
+ g_debug ("Group '%s' emitting finished signal", name);
+ g_free (name);
+
sync_group_free_engine (group);
g_signal_emit (group, signals[FINISHED], 0);
@@ -448,9 +466,13 @@ sync_group_failed_idle (SyncGroup *group)
{
SyncGroupPrivate *priv = GROUP_PRIVATE (group);
+ gchar *name = sync_group_get_name (group);
+ g_debug ("Group '%s' emitting failed signal", name);
+ g_free (name);
+
sync_group_free_engine (group);
g_signal_emit (group, signals[FAILED], 0, priv->error ?
- priv->error : "");
+ priv->error : "Unknown error");
g_free (priv->error);
priv->error = NULL;
@@ -619,10 +641,12 @@ sync_enginestatus_cb (OSyncEngine *engine, OSyncEngineUpdate *status,
break;
#endif
case ENG_SYNC_SUCCESSFULL:
+ g_debug ("Sync successful");
g_idle_add ((GSourceFunc)
sync_group_finished_idle, group);
break;
case ENG_ERROR:
+ g_debug ("Error");
g_idle_add ((GSourceFunc)
sync_group_failed_idle, group);
break;
@@ -761,6 +785,8 @@ sync_group_sync (SyncGroup *group, gboolean wait)
g_debug ("Sync started");
} else {
+ g_debug ("Auto-sync waiting...");
+
if (!osengine_wait_sync_end (priv->engine, &error)) {
g_warning ("osengine_wait_sync_end unsuccessful: %s",
osync_error_print (&error));
@@ -841,12 +867,17 @@ sync_group_resolve_conflict (SyncGroup *group, SyncGroupConflictRes res)
priv->mapping = NULL;
}
-void
+gboolean
sync_group_abort (SyncGroup *group)
{
SyncGroupPrivate *priv = GROUP_PRIVATE (group);
- if (priv->engine) osengine_abort (priv->engine);
- else g_warning ("%s called, but no sync in progress", G_STRFUNC);
+ if (priv->engine) {
+ osengine_abort (priv->engine);
+ return TRUE;
+ } else {
+ g_warning ("%s called, but no sync in progress", G_STRFUNC);
+ return FALSE;
+ }
}
void sync_group_remove_item (SyncGroup *group,