static void action_task_purge_cb (GtkAction *action, ETaskShellView *task_shell_view) { EShellView *shell_view; EShellWindow *shell_window; GtkWidget *content_area; GtkWidget *dialog; GtkWidget *widget; gboolean active; gint response; shell_view = E_SHELL_VIEW (task_shell_view); shell_window = e_shell_view_get_shell_window (shell_view); if (!e_task_shell_view_get_confirm_purge (task_shell_view)) goto purge; /* XXX This needs reworked. The dialog looks like ass. */ dialog = gtk_message_dialog_new ( GTK_WINDOW (shell_window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_YES_NO, "%s", _("This operation will permanently erase all tasks " "marked as completed. If you continue, you will not be able " "to recover these tasks.\n\nReally erase these tasks?")); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_NO); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); widget = gtk_check_button_new_with_label (_("Do not ask me again")); gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 6); gtk_widget_show (widget); response = gtk_dialog_run (GTK_DIALOG (dialog)); active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)); gtk_widget_destroy (dialog); if (response != GTK_RESPONSE_YES) return; if (active) e_task_shell_view_set_confirm_purge (task_shell_view, FALSE); purge: e_task_shell_view_delete_completed (task_shell_view); }
static void task_shell_view_get_property (GObject *object, guint property_id, GValue *value, GParamSpec *pspec) { switch (property_id) { case PROP_CONFIRM_PURGE: g_value_set_boolean ( value, e_task_shell_view_get_confirm_purge ( E_TASK_SHELL_VIEW (object))); return; } G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); }