/* Now it's really time to callback to the caller. If going online didn't succeed,
* err will be set. We don't free it, Tinymail does that! If a cancel happened,
* canceled will be set. Etcetera etcetera. */
-
+
+ if (tny_account_get_connection_status (TNY_ACCOUNT (account)) == TNY_CONNECTION_STATUS_CONNECTED)
+ g_debug ("------------ %s %s CONECTADA", __FUNCTION__, tny_account_get_name (TNY_ACCOUNT (account)));
+ else
+ g_debug ("------------ %s %s NO conectada", __FUNCTION__, tny_account_get_name (TNY_ACCOUNT (account)));
+
if (info->callback) {
info->callback (canceled, err, info->parent_window, info->account, info->user_data);
}
static void _insensitive_press_callback (GtkWidget *widget, gpointer user_data);
+static void on_window_destroy (gpointer data,
+ GObject *object);
+
static void _add_rule (ModestDimmingRulesGroup *self,
ModestDimmingRule *rule,
ModestWindow *window);
/* Set window to process dimming rules */
priv->window = MODEST_WINDOW (window);
+ g_object_weak_ref (G_OBJECT (window), on_window_destroy, self);
/* Add dimming rules */
for (i=0; i < n_elements; i++) {
g_return_if_fail (MODEST_IS_DIMMING_RULES_GROUP(self));
priv = MODEST_DIMMING_RULES_GROUP_GET_PRIVATE(self);
+ if (!priv->window)
+ return;
+
/* Init dimming rules init data */
state = modest_ui_dimming_rules_define_dimming_state (priv->window);
modest_window_set_dimming_state (priv->window, state);
if (notification != NULL)
g_free(notification);
}
+
+static void
+on_window_destroy (gpointer data,
+ GObject *object)
+{
+ ModestDimmingRulesGroup *self = MODEST_DIMMING_RULES_GROUP (data);
+ ModestDimmingRulesGroupPrivate *priv = MODEST_DIMMING_RULES_GROUP_GET_PRIVATE (self);
+
+ priv->window = NULL;
+}
modest_window_disable_dimming (MODEST_WINDOW(win));
/* Remove each header. If it's a view window header_view == NULL */
- mail_op = modest_mail_operation_new ((GObject *) win);
+ mail_op = modest_mail_operation_new_with_error_handling ((GObject *) win,
+ modest_ui_actions_disk_operations_error_handler,
+ g_strdup (_("mail_ib_file_operation_failed")),
+ g_free);
modest_mail_operation_queue_add (modest_runtime_get_mail_operation_queue (),
mail_op);
modest_mail_operation_remove_msgs (mail_op, header_list, FALSE);
priv = MODEST_UI_DIMMING_MANAGER_GET_PRIVATE(helper->manager);
g_hash_table_remove (priv->delayed_calls, helper->name);
g_free (helper->name);
+ g_object_unref (helper->manager);
g_slice_free (DelayedDimmingRules, helper);
}
/* Create the helper and start the timeout */
helper = g_slice_new (DelayedDimmingRules);
helper->group = group;
- helper->manager = self;
+ helper->manager = g_object_ref (self);
helper->name = g_strdup (group_name);
new_handler = g_timeout_add_full (G_PRIORITY_DEFAULT, 500, process_dimming_rules_delayed,
helper, process_dimming_rules_delayed_destroyer);