GtkWidget* eog_save_as_dialog_new (GtkWindow *main, GList *images, GFile *base_file) { GtkBuilder *xml; GtkWidget *dlg; SaveAsData *data; GtkWidget *label; xml = gtk_builder_new_from_resource ("/org/gnome/eog/ui/eog-multiple-save-as-dialog.ui"); gtk_builder_set_translation_domain (xml, GETTEXT_PACKAGE); dlg = GTK_WIDGET (g_object_ref (gtk_builder_get_object (xml, "eog_multiple_save_as_dialog"))); gtk_window_set_transient_for (GTK_WINDOW (dlg), GTK_WINDOW (main)); gtk_window_set_position (GTK_WINDOW (dlg), GTK_WIN_POS_CENTER_ON_PARENT); data = g_slice_new0 (SaveAsData); /* init widget references */ data->dir_chooser = GTK_WIDGET (gtk_builder_get_object (xml, "dir_chooser")); data->token_entry = GTK_WIDGET (gtk_builder_get_object (xml, "token_entry")); data->replace_spaces_check = GTK_WIDGET (gtk_builder_get_object (xml, "replace_spaces_check")); data->counter_spin = GTK_WIDGET (gtk_builder_get_object (xml, "counter_spin")); data->preview_label = GTK_WIDGET (gtk_builder_get_object (xml, "preview_label")); data->format_combobox = GTK_WIDGET (gtk_builder_get_object (xml, "format_combobox")); /* init preview information */ data->idle_id = 0; data->n_images = g_list_length (images); data->nth_image = (int) ((float) data->n_images * rand() / (float) (RAND_MAX+1.0)); g_assert (data->nth_image >= 0 && data->nth_image < data->n_images); data->image = g_object_ref (EOG_IMAGE (g_list_nth_data (images, data->nth_image))); g_object_set_data_full (G_OBJECT (dlg), "data", data, destroy_data_cb); g_signal_connect (G_OBJECT (data->format_combobox), "changed", (GCallback) on_format_combobox_changed, dlg); g_signal_connect (G_OBJECT (data->token_entry), "changed", (GCallback) on_token_entry_changed, dlg); g_signal_connect (G_OBJECT (data->replace_spaces_check), "toggled", (GCallback) on_replace_spaces_check_clicked, dlg); g_signal_connect (G_OBJECT (data->counter_spin), "changed", (GCallback) on_counter_spin_changed, dlg); label = GTK_WIDGET (gtk_builder_get_object (xml, "preview_label_from")); gtk_label_set_text (GTK_LABEL (label), eog_image_get_caption (data->image)); prepare_format_combobox (data); set_default_values (dlg, base_file); g_object_unref (xml); return dlg; }
/** * eog_list_store_new_from_glist: * @list: (element-type EogImage): a %NULL-terminated list of #EogImage's. * * Creates a new #EogListStore from a list of #EogImage's. * The given list must be %NULL-terminated. * * Returns: a new #EogListStore. **/ GtkListStore * eog_list_store_new_from_glist (GList *list) { GList *it; GtkListStore *store = eog_list_store_new (); for (it = list; it != NULL; it = it->next) { eog_list_store_append_image (EOG_LIST_STORE (store), EOG_IMAGE (it->data)); } return store; }