window: unmark disabled sources checkbox
Calendars selector menu needs to know which source is enable to properly mark the checkbox
This commit is contained in:
+3
-2
@@ -292,7 +292,6 @@ on_client_connected (GObject *source_object,
|
|||||||
unit->client = g_object_ref (client);
|
unit->client = g_object_ref (client);
|
||||||
|
|
||||||
g_hash_table_insert (priv->clients, source, unit);
|
g_hash_table_insert (priv->clients, source, unit);
|
||||||
g_signal_emit (GCAL_MANAGER (user_data), signals[SOURCE_ADDED], 0, source);
|
|
||||||
|
|
||||||
g_debug ("Source %s (%s) connected",
|
g_debug ("Source %s (%s) connected",
|
||||||
e_source_get_display_name (source),
|
e_source_get_display_name (source),
|
||||||
@@ -312,6 +311,8 @@ on_client_connected (GObject *source_object,
|
|||||||
e_cal_data_model_add_client (priv->e_data_model, client);
|
e_cal_data_model_add_client (priv->e_data_model, client);
|
||||||
e_cal_data_model_add_client (priv->search_data_model, client);
|
e_cal_data_model_add_client (priv->search_data_model, client);
|
||||||
}
|
}
|
||||||
|
g_signal_emit (GCAL_MANAGER (user_data), signals[SOURCE_ADDED], 0, source, unit->enabled);
|
||||||
|
|
||||||
g_clear_object (&client);
|
g_clear_object (&client);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -492,7 +493,7 @@ gcal_manager_class_init (GcalManagerClass *klass)
|
|||||||
signals[SOURCE_ADDED] = g_signal_new ("source-added", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST,
|
signals[SOURCE_ADDED] = g_signal_new ("source-added", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST,
|
||||||
G_STRUCT_OFFSET (GcalManagerClass, source_added),
|
G_STRUCT_OFFSET (GcalManagerClass, source_added),
|
||||||
NULL, NULL, NULL,
|
NULL, NULL, NULL,
|
||||||
G_TYPE_NONE, 1, G_TYPE_POINTER);
|
G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_BOOLEAN);
|
||||||
|
|
||||||
signals[SOURCE_REMOVED] = g_signal_new ("source-removed", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST,
|
signals[SOURCE_REMOVED] = g_signal_new ("source-removed", GCAL_TYPE_MANAGER, G_SIGNAL_RUN_LAST,
|
||||||
G_STRUCT_OFFSET (GcalManagerClass, source_removed),
|
G_STRUCT_OFFSET (GcalManagerClass, source_removed),
|
||||||
|
|||||||
+1
-1
@@ -47,7 +47,7 @@ struct _GcalManagerClass
|
|||||||
|
|
||||||
/* signals */
|
/* signals */
|
||||||
void (*source_activated) (GcalManager *manager, ESource *source, gboolean active);
|
void (*source_activated) (GcalManager *manager, ESource *source, gboolean active);
|
||||||
void (*source_added) (GcalManager *manager, ESource *source);
|
void (*source_added) (GcalManager *manager, ESource *source, gboolean enabled);
|
||||||
void (*source_removed) (GcalManager *manager, ESource *source);
|
void (*source_removed) (GcalManager *manager, ESource *source);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -168,6 +168,7 @@ static void hide_notification (GtkWidget *b
|
|||||||
/* calendar management */
|
/* calendar management */
|
||||||
static void add_source (GcalManager *manager,
|
static void add_source (GcalManager *manager,
|
||||||
ESource *source,
|
ESource *source,
|
||||||
|
gboolean enabled,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
static void remove_source (GcalManager *manager,
|
static void remove_source (GcalManager *manager,
|
||||||
@@ -678,6 +679,7 @@ hide_notification (GtkWidget *button,
|
|||||||
static void
|
static void
|
||||||
add_source (GcalManager *manager,
|
add_source (GcalManager *manager,
|
||||||
ESource *source,
|
ESource *source,
|
||||||
|
gboolean enabled,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
GcalWindowPrivate *priv;
|
GcalWindowPrivate *priv;
|
||||||
@@ -693,7 +695,7 @@ add_source (GcalManager *manager,
|
|||||||
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
priv = gcal_window_get_instance_private (GCAL_WINDOW (user_data));
|
||||||
|
|
||||||
/* create the action itself */
|
/* create the action itself */
|
||||||
action = g_simple_action_new_stateful (e_source_get_uid (source), NULL, g_variant_new_boolean (TRUE));
|
action = g_simple_action_new_stateful (e_source_get_uid (source), NULL, g_variant_new_boolean (enabled));
|
||||||
g_signal_connect (action, "change-state", G_CALLBACK (on_calendar_toggled), user_data);
|
g_signal_connect (action, "change-state", G_CALLBACK (on_calendar_toggled), user_data);
|
||||||
g_action_map_add_action (G_ACTION_MAP (user_data), G_ACTION (action));
|
g_action_map_add_action (G_ACTION_MAP (user_data), G_ACTION (action));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user