static void finalize (GObject *object) { E2kUserDialog *dialog = E2K_USER_DIALOG (object); g_free (dialog->priv->section_name); g_free (dialog->priv); G_OBJECT_CLASS (parent_class)->finalize (object); }
static void dispose (GObject *object) { E2kUserDialog *dialog = E2K_USER_DIALOG (object); if (dialog->priv->name_selector != NULL) { g_object_unref (dialog->priv->name_selector); dialog->priv->name_selector = NULL; } if (dialog->priv->parent_window) { g_object_weak_unref (G_OBJECT (dialog->priv->parent_window), parent_window_destroyed, dialog); dialog->priv->parent_window = NULL; } G_OBJECT_CLASS (parent_class)->dispose (object); }
static void add_button_clicked_cb (GtkWidget *widget, gpointer data) { ExchangeDelegates *delegates = data; E2kGlobalCatalog *gc; GtkWidget *dialog, *parent_window; const gchar *delegate_exchange_dn; gchar *email; ExchangeDelegatesUser *user, *match; gint response, u; GtkTreeIter iter; if (!get_folder_security (delegates)) return; gc = exchange_account_get_global_catalog (delegates->account); parent_window = gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW); dialog = e2k_user_dialog_new (parent_window, _("Delegate To:"), _("Delegate To")); response = gtk_dialog_run (GTK_DIALOG (dialog)); if (response != GTK_RESPONSE_OK) { gtk_widget_destroy (dialog); return; } email = e2k_user_dialog_get_user (E2K_USER_DIALOG (dialog)); gtk_widget_destroy (dialog); if (email == NULL) return; user = exchange_delegates_user_new_from_gc (gc, email, delegates->creator_entryid); if (!user) { e_alert_run_dialog_for_args (GTK_WINDOW (parent_window), ERROR_DOMAIN ":delegate-error", email, NULL); g_free (email); return; } g_free (email); delegate_exchange_dn = e2k_entryid_to_dn (user->entryid); if (delegate_exchange_dn && !g_ascii_strcasecmp (delegate_exchange_dn, delegates->account->legacy_exchange_dn)) { g_object_unref (user); e_alert_run_dialog_for_args (GTK_WINDOW (parent_window), ERROR_DOMAIN ":delegate-own-error", NULL); return; } for (u = 0; u < delegates->users->len; u++) { match = delegates->users->pdata[u]; if (e2k_sid_binary_sid_equal (e2k_sid_get_binary_sid (user->sid), e2k_sid_get_binary_sid (match->sid))) { e_alert_run_dialog_for_args (GTK_WINDOW (parent_window), ERROR_DOMAIN ":delegate-existing", user->display_name, NULL); g_object_unref (user); exchange_delegates_user_edit (delegates->account, match, parent_window); return; } } if (!exchange_delegates_user_edit (delegates->account, user, parent_window)) { g_object_unref (user); return; } set_perms_for_user (user, delegates); g_signal_connect (user, "edited", G_CALLBACK (set_perms_for_user), delegates); add_remove_user (user, delegates->added_users, delegates->removed_users); g_ptr_array_add (delegates->users, user); /* Add the user to the table */ gtk_list_store_append (delegates->model, &iter); gtk_list_store_set (delegates->model, &iter, 0, user->display_name, -1); }