manager: notify when sources are enabled/disabled

Add the new signal for GcalManager::source-enabled that
notifies connected widgets about the source change. With
that, we can keep checkboxes syncronizes.
This commit is contained in:
Georges Basile Stavracas Neto
2015-05-25 12:35:58 -04:00
committed by Erick Pérez Castellanos
parent 023a79a90f
commit 2b4e46a4b6
4 changed files with 49 additions and 0 deletions
+10
View File
@@ -103,6 +103,7 @@ enum
SOURCE_ACTIVATED,
SOURCE_ADDED,
SOURCE_REMOVED,
SOURCE_ENABLED,
LOAD_COMPLETED,
QUERY_COMPLETED,
GOA_CLIENT_READY,
@@ -670,6 +671,11 @@ gcal_manager_class_init (GcalManagerClass *klass)
NULL, NULL, NULL,
G_TYPE_NONE, 1, G_TYPE_POINTER);
signals[SOURCE_ENABLED] = g_signal_new ("source-enabled", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GcalManagerClass, source_enabled),
NULL, NULL, NULL,
G_TYPE_NONE, 2, E_TYPE_SOURCE, G_TYPE_BOOLEAN);
signals[LOAD_COMPLETED] = g_signal_new ("load-completed", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GcalManagerClass, load_completed),
NULL, NULL, NULL,
@@ -1246,6 +1252,8 @@ gcal_manager_enable_source (GcalManager *manager,
g_strfreev (priv->disabled_sources);
priv->disabled_sources = new_disabled_sources;
g_signal_emit (manager, signals[SOURCE_ENABLED], 0, source, TRUE);
/* sync settings value */
g_settings_set_strv (priv->settings, "disabled-sources", (const gchar * const *) priv->disabled_sources);
}
@@ -1290,6 +1298,8 @@ gcal_manager_disable_source (GcalManager *manager,
g_strfreev (priv->disabled_sources);
priv->disabled_sources = new_disabled_sources;
g_signal_emit (manager, signals[SOURCE_ENABLED], 0, source, FALSE);
/* sync settings value */
g_settings_set_strv (priv->settings, "disabled-sources", (const gchar * const *) priv->disabled_sources);
}