void gth_browser_activate_go_to_container_from_catalog (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GthBrowser *browser = GTH_BROWSER (user_data); GList *items; GList *file_list = NULL; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); if (file_list != NULL) { GthFileData *first_file = file_list->data; GFile *parent; parent = g_file_get_parent (first_file->file); gth_browser_go_to (browser, parent, first_file->file); g_object_unref (parent); } _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
static gboolean update_file_list (gpointer user_data) { DialogData *data = user_data; LoaderData *loader_data; GList *items; GList *file_data_list; if (data->update_selectection_event != 0) { g_source_remove (data->update_selectection_event); data->update_selectection_event = 0; } cancel_file_list_loading (data); loader_data = g_new0 (LoaderData, 1); loader_data->data = dialog_data_ref (data); items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (data->browser))); file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (data->browser)), items); loader_data->files = gth_file_data_list_to_file_list (file_data_list); data->loader = gth_load_file_data_task_new (loader_data->files, "*"); g_signal_connect (data->loader, "completed", G_CALLBACK (loader_completed_cb), loader_data); gth_browser_exec_task (data->browser, data->loader, FALSE); _g_object_list_unref (file_data_list); _gtk_tree_path_list_free (items); return FALSE; }
void gth_browser_activate_action_tool_resize_images (GtkAction *action, GthBrowser *browser) { GList *items; GList *file_list; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); dlg_resize_images (browser, file_list); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_trash (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GthBrowser *browser = GTH_BROWSER (user_data); GList *items; GList *file_list; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); gth_file_mananger_trash_files (GTK_WINDOW (browser), file_list); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_action_export_facebook (GtkAction *action, GthBrowser *browser) { GList *items; GList *file_list; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); if (file_list == NULL) file_list = gth_file_store_get_visibles (gth_browser_get_file_store (browser)); dlg_export_to_facebook (browser, file_list); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_action_edit_add_to_catalog (GtkAction *action, GthBrowser *browser) { GList *items; GList *file_list = NULL; GList *files; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); files = gth_file_data_list_to_file_list (file_list); dlg_add_to_catalog (browser, files); _g_object_list_unref (files); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_action_edit_remove_from_catalog (GtkAction *action, GthBrowser *browser) { GList *items; GList *file_data_list; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); gth_catalog_manager_remove_files (GTK_WINDOW (browser), gth_browser_get_location_data (browser), file_data_list); _g_object_list_unref (file_data_list); _gtk_tree_path_list_free (items); }
void rs__gth_browser_file_list_rename_cb (GthBrowser *browser) { GList *items; GList *file_data_list; GList *file_list; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); file_list = gth_file_data_list_to_file_list (file_data_list); if (file_list != NULL) dlg_rename_series (browser, file_list); _g_object_list_unref (file_list); _g_object_list_unref (file_data_list); _gtk_tree_path_list_free (items); }
static GList * get_selected_file_list (DialogData *data) { GList *file_list = NULL; GtkWidget *file_view; GList *items; file_view = gth_file_list_get_view (GTH_FILE_LIST (data->file_list)); items = gth_file_selection_get_selected (GTH_FILE_SELECTION (file_view)); if (items != NULL) file_list = gth_file_list_get_files (GTH_FILE_LIST (data->file_list), items); else file_list = gth_file_store_get_visibles (GTH_FILE_STORE (gth_file_view_get_model (GTH_FILE_VIEW (file_view)))); _gtk_tree_path_list_free (items); return file_list; }
void gth_browser_activate_export_23 (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GthBrowser *browser = GTH_BROWSER (user_data); GList *items; GList *file_list; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); if (file_list == NULL) file_list = gth_file_store_get_visibles (gth_browser_get_file_store (browser)); dlg_export_to_flickr (&www_23hq_com, browser, file_list); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
static void copy_selected_files_to_folder (GthBrowser *browser, gboolean move) { GList *items; GList *file_list; GList *files; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); files = gth_file_data_list_to_file_list (file_list); copy_to_folder_dialog (browser, files, move); _g_object_list_unref (files); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_add_to_catalog (GthBrowser *browser, GFile *catalog) { GList *items; GList *file_list; GList *files; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); files = gth_file_data_list_to_file_list (file_list); if (files != NULL) add_to_catalog (browser, catalog, files); _g_object_list_unref (files); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
static GList * get_files_to_download (DialogData *data) { GthFileView *file_view; GList *selected; GList *file_list; file_view = (GthFileView *) gth_file_list_get_view (GTH_FILE_LIST (data->file_list)); selected = gth_file_selection_get_selected (GTH_FILE_SELECTION (file_view)); if (selected != NULL) file_list = gth_file_list_get_files (GTH_FILE_LIST (data->file_list), selected); else file_list = gth_file_store_get_visibles (GTH_FILE_STORE (gth_file_view_get_model (file_view))); _gtk_tree_path_list_free (selected); return file_list; }
void gth_browser_activate_duplicate (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GthBrowser *browser = GTH_BROWSER (user_data); GList *items; GList *file_list; GthTask *task; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); task = gth_duplicate_task_new (file_list); gth_browser_exec_task (browser, task, GTH_TASK_FLAGS_DEFAULT); g_object_unref (task); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_action_tool_reset_orientation (GtkAction *action, GthBrowser *browser) { GList *items; GList *file_data_list; GList *file_list; GthTask *task; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); file_list = gth_file_data_list_to_file_list (file_data_list); task = gth_reset_orientation_task_new (browser, file_list); gth_browser_exec_task (browser, task, FALSE); g_object_unref (task); _g_object_list_unref (file_list); _g_object_list_unref (file_data_list); _gtk_tree_path_list_free (items); }
static void activate_open_with_application_item (GtkMenuItem *menuitem, gpointer data) { GthBrowser *browser = data; GList *items; GList *file_list; GList *uris; GList *scan; GAppInfo *appinfo; GdkAppLaunchContext *context; GError *error = NULL; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); uris = NULL; for (scan = file_list; scan; scan = scan->next) { GthFileData *file_data = scan->data; uris = g_list_prepend (uris, g_file_get_uri (file_data->file)); } uris = g_list_reverse (uris); appinfo = g_object_get_data (G_OBJECT (menuitem), "appinfo"); g_return_if_fail (G_IS_APP_INFO (appinfo)); context = gdk_display_get_app_launch_context (gtk_widget_get_display (GTK_WIDGET (browser))); gdk_app_launch_context_set_timestamp (context, 0); gdk_app_launch_context_set_icon (context, g_app_info_get_icon (appinfo)); if (! g_app_info_launch_uris (appinfo, uris, G_APP_LAUNCH_CONTEXT (context), &error)) { _gtk_error_dialog_from_gerror_show (GTK_WINDOW (browser), _("Could not perform the operation"), error); g_clear_error (&error); } g_object_unref (context); g_list_free (uris); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_action_file_print (GtkAction *action, GthBrowser *browser) { GList *items; GList *file_list; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); if (file_list != NULL) { GthImagePrintJob *print_job; print_job = gth_image_print_job_new (file_list); gth_image_print_job_run (print_job, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, browser); } _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_edit_copy (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GthBrowser *browser = GTH_BROWSER (user_data); GtkWidget *focused_widget; GList *items; GList *file_list; focused_widget = gtk_window_get_focus (GTK_WINDOW (browser)); if ((focused_widget != NULL) && GTK_IS_EDITABLE (focused_widget)) return; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); _gth_browser_clipboard_copy_or_cut (browser, file_list, FALSE); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_action_tool_import_embedded_metadata (GtkAction *action, GthBrowser *browser) { GList *items; GList *file_data_list; GthTask *task; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); /* use all the files if no file or only one file is selected */ if ((file_data_list == NULL) || (file_data_list->next == NULL)) { _g_object_list_unref (file_data_list); file_data_list = gth_file_store_get_visibles (gth_browser_get_file_store (browser)); } task = gth_import_metadata_task_new (browser, file_data_list); gth_browser_exec_task (browser, task, FALSE); g_object_unref (task); _g_object_list_unref (file_data_list); _gtk_tree_path_list_free (items); }
static void update_status (DialogData *data) { GtkWidget *file_view; int n_selected; goffset size; GList *selected; GList *file_list; GList *scan; char *ssize; char *status; file_view = gth_file_list_get_view (GTH_FILE_LIST (data->file_list)); selected = gth_file_selection_get_selected (GTH_FILE_SELECTION (file_view)); if (selected != NULL) file_list = gth_file_list_get_files (GTH_FILE_LIST (data->file_list), selected); else file_list = gth_file_store_get_visibles (GTH_FILE_STORE (gth_file_view_get_model (GTH_FILE_VIEW (file_view)))); n_selected = 0; size = 0; for (scan = file_list; scan; scan = scan->next) { GthFileData *file_data = scan->data; size += g_file_info_get_size (file_data->info); n_selected += 1; } ssize = g_format_size (size); /* translators: %d is the number of files, %s the total size */ status = g_strdup_printf (_("Files to import: %d (%s)"), n_selected, ssize); gtk_label_set_text (GTK_LABEL (GET_WIDGET ("status_label")), status); g_free (status); g_free (ssize); _g_object_list_unref (file_list); _gtk_tree_path_list_free (selected); }
void gth_browser_activate_add_to_selection (GthBrowser *browser, int n_selection) { char *uri; GFile *folder; GList *items; GList *file_list = NULL; GList *files; uri = g_strdup_printf ("selection:///%d", n_selection); folder = g_file_new_for_uri (uri); items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); files = gth_file_data_list_to_file_list (file_list); gth_selections_manager_add_files (folder, files, -1); _g_object_list_unref (files); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); g_object_unref (folder); g_free (uri); }
void gth_browser_activate_action_go_to_container (GtkAction *action, GthBrowser *browser) { GList *items; GList *file_list = NULL; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); if (file_list != NULL) { GthFileData *first_file = file_list->data; GFile *parent; parent = g_file_get_parent (first_file->file); gth_browser_go_to (browser, parent, first_file->file); g_object_unref (parent); } _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_action_tool_desktop_background (GtkAction *action, GthBrowser *browser) { WallpaperData *wdata; gboolean saving_wallpaper = FALSE; GList *items; GList *file_list; GthFileData *file_data; const char *mime_type; wdata = wallpaper_data_new (browser); items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); file_data = (file_list != NULL) ? file_list->data : NULL; mime_type = (file_data != NULL) ? gth_file_data_get_mime_type (file_data) : NULL; if (gth_main_extension_is_active ("image_viewer") && (gth_browser_get_file_modified (browser) || ! _gdk_pixbuf_mime_type_is_readable (mime_type))) { GtkWidget *viewer_page; viewer_page = gth_browser_get_viewer_page (browser); if (viewer_page != NULL) { GthImage *image; GthTask *task; image = gth_image_new_for_surface (gth_image_viewer_page_get_image (GTH_IMAGE_VIEWER_PAGE (viewer_page))); file_data = gth_file_data_new (wdata->new_style.file, NULL); task = gth_save_image_task_new (image, "image/jpeg", file_data, GTH_OVERWRITE_RESPONSE_YES); g_signal_connect (task, "completed", G_CALLBACK (save_wallpaper_task_completed_cb), wdata); gth_browser_exec_task (GTH_BROWSER (browser), task, FALSE); saving_wallpaper = TRUE; _g_object_unref (task); g_object_unref (image); } } if (saving_wallpaper) return; if (file_data == NULL) return; if (g_file_is_native (file_data->file)) { _g_object_unref (wdata->new_style.file); wdata->new_style.file = g_file_dup (file_data->file); wallpaper_data_set (wdata); } else g_file_copy_async (file_data->file, wdata->new_style.file, G_FILE_COPY_OVERWRITE, G_PRIORITY_DEFAULT, NULL, NULL, NULL, copy_wallpaper_ready_cb, wdata); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
gpointer fm__gth_browser_file_list_key_press_cb (GthBrowser *browser, GdkEventKey *event) { gpointer result = NULL; guint modifiers; GList *items; GList *file_data_list; GList *file_list; modifiers = gtk_accelerator_get_default_mod_mask (); switch (event->keyval) { case GDK_KEY_g: if ((event->state & modifiers) == 0) { items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); file_list = gth_file_data_list_to_file_list (file_data_list); _g_launch_command (GTK_WIDGET (browser), "gimp %U", "Gimp", file_list); _g_object_list_unref (file_list); _g_object_list_unref (file_data_list); _gtk_tree_path_list_free (items); result = GINT_TO_POINTER (1); } break; case GDK_KEY_Delete: if (((event->state & modifiers) == 0) || ((event->state & modifiers) == GDK_SHIFT_MASK) || ((event->state & modifiers) == GDK_CONTROL_MASK)) { GthFileSource *source; GthFileData *location; if ((event->state & modifiers) == 0) { /* Removes the files from the current location, * for example: when viewing a catalog removes * the files from the catalog; when viewing a * folder removes the files from the folder. */ source = gth_browser_get_location_source (browser); location = gth_browser_get_location_data (browser); } else { /* When a key modifier is active, use the VFS * file source to delete the files from the * disk. */ source = gth_main_get_file_source_for_uri ("file:///"); location = NULL; } if (source == NULL) return result; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); if (items == NULL) return result; file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); gth_file_source_remove (source, location, file_data_list, (event->state & modifiers) == GDK_SHIFT_MASK, GTK_WINDOW (browser)); result = GINT_TO_POINTER (1); _g_object_list_unref (file_data_list); _gtk_tree_path_list_free (items); } break; } return result; }
static void _gth_browser_update_open_menu (GthBrowser *browser, const char *path) { GtkWidget *openwith_item; GtkWidget *menu; GList *items; GList *file_list; GList *scan; GList *appinfo_list; GHashTable *used_mime_types; GthIconCache *icon_cache; GHashTable *used_apps; openwith_item = gtk_ui_manager_get_widget (gth_browser_get_ui_manager (browser), path); menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (openwith_item)); _gtk_container_remove_children (GTK_CONTAINER (menu), NULL, NULL); items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); appinfo_list = NULL; used_mime_types = g_hash_table_new (g_str_hash, g_str_equal); for (scan = file_list; scan; scan = scan->next) { GthFileData *file_data = scan->data; const char *mime_type; mime_type = gth_file_data_get_mime_type (file_data); if ((mime_type == NULL) || g_content_type_is_unknown (mime_type)) continue; if (g_hash_table_lookup (used_mime_types, mime_type) != NULL) continue; appinfo_list = g_list_concat (appinfo_list, g_app_info_get_all_for_type (mime_type)); g_hash_table_insert (used_mime_types, (gpointer) mime_type, GINT_TO_POINTER (1)); } g_hash_table_destroy (used_mime_types); icon_cache = gth_browser_get_menu_icon_cache (browser); used_apps = g_hash_table_new (g_str_hash, g_str_equal); for (scan = appinfo_list; scan; scan = scan->next) { GAppInfo *appinfo = scan->data; char *label; GtkWidget *menu_item; GIcon *icon; if (strcmp (g_app_info_get_executable (appinfo), "pix") == 0) continue; if (g_hash_table_lookup (used_apps, g_app_info_get_id (appinfo)) != NULL) continue; g_hash_table_insert (used_apps, (gpointer) g_app_info_get_id (appinfo), GINT_TO_POINTER (1)); label = g_strdup_printf ("%s", g_app_info_get_name (appinfo)); menu_item = gtk_image_menu_item_new_with_label (label); icon = g_app_info_get_icon (appinfo); if (icon != NULL) { GdkPixbuf *pixbuf; pixbuf = gth_icon_cache_get_pixbuf (icon_cache, icon); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu_item), gtk_image_new_from_pixbuf (pixbuf)); gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (menu_item), TRUE); g_object_unref (pixbuf); } gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); g_object_set_data_full (G_OBJECT (menu_item), "appinfo", g_object_ref (appinfo), g_object_unref); g_signal_connect (menu_item, "activate", G_CALLBACK (activate_open_with_application_item), browser); g_free (label); } /* if (appinfo_list == NULL) { GtkWidget *menu_item; menu_item = gtk_image_menu_item_new_with_label (_("No application available")); gtk_widget_set_sensitive (menu_item, FALSE); gtk_widget_show (menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); }*/ gtk_widget_set_sensitive (openwith_item, appinfo_list != NULL); gtk_widget_show (openwith_item); g_hash_table_destroy (used_apps); _g_object_list_unref (appinfo_list); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }
void gth_browser_activate_action_view_slideshow (GtkAction *action, GthBrowser *browser) { GList *items; GList *file_list; GthProjector *projector; GtkWidget *slideshow; GthFileData *location; char *transition_id; GList *transitions = NULL; items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); if ((items == NULL) || (items->next == NULL)) file_list = gth_file_store_get_visibles (GTH_FILE_STORE (gth_browser_get_file_store (browser))); else file_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); projector = NULL; #ifdef HAVE_CLUTTER if (ClutterInitResult == CLUTTER_INIT_SUCCESS) projector = &clutter_projector; #endif /* HAVE_CLUTTER */ if (projector == NULL) projector = &default_projector; slideshow = gth_slideshow_new (projector, browser, file_list); location = gth_browser_get_location_data (browser); if (g_file_info_get_attribute_boolean (location->info, "slideshow::personalize")) { gth_slideshow_set_delay (GTH_SLIDESHOW (slideshow), g_file_info_get_attribute_int32 (location->info, "slideshow::delay")); gth_slideshow_set_automatic (GTH_SLIDESHOW (slideshow), g_file_info_get_attribute_boolean (location->info, "slideshow::automatic")); gth_slideshow_set_wrap_around (GTH_SLIDESHOW (slideshow), g_file_info_get_attribute_boolean (location->info, "slideshow::wrap-around")); transition_id = g_strdup (g_file_info_get_attribute_string (location->info, "slideshow::transition")); } else { gth_slideshow_set_delay (GTH_SLIDESHOW (slideshow), (guint) (1000.0 * eel_gconf_get_float (PREF_SLIDESHOW_CHANGE_DELAY, 5.0))); gth_slideshow_set_automatic (GTH_SLIDESHOW (slideshow), eel_gconf_get_boolean (PREF_SLIDESHOW_AUTOMATIC, TRUE)); gth_slideshow_set_wrap_around (GTH_SLIDESHOW (slideshow), eel_gconf_get_boolean (PREF_SLIDESHOW_WRAP_AROUND, FALSE)); transition_id = eel_gconf_get_string (PREF_SLIDESHOW_TRANSITION, DEFAULT_TRANSITION); } if (g_file_info_get_attribute_status (location->info, "slideshow::playlist") == G_FILE_ATTRIBUTE_STATUS_SET) gth_slideshow_set_playlist (GTH_SLIDESHOW (slideshow), g_file_info_get_attribute_stringv (location->info, "slideshow::playlist")); if (strcmp (transition_id, "random") == 0) { GList *scan; transitions = gth_main_get_registered_objects (GTH_TYPE_TRANSITION); for (scan = transitions; scan; scan = scan->next) { GthTransition *transition = scan->data; if (strcmp (gth_transition_get_id (transition), "none") == 0) { transitions = g_list_remove_link (transitions, scan); _g_object_list_unref (scan); break; } } } else { GthTransition *transition = gth_main_get_registered_object (GTH_TYPE_TRANSITION, transition_id); if (transition != NULL) transitions = g_list_append (NULL, transition); else transitions = NULL; } gth_slideshow_set_transitions (GTH_SLIDESHOW (slideshow), transitions); gtk_window_fullscreen (GTK_WINDOW (slideshow)); /*gtk_window_set_default_size (GTK_WINDOW (slideshow), 700, 700);*/ gtk_window_present (GTK_WINDOW (slideshow)); _g_object_list_unref (transitions); g_free (transition_id); _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); }