static void set_up_actions (NemoActionManager *action_manager) { GList *dir, *file_list, *node; NemoFile *file; NemoDirectory *directory; if (g_list_length (action_manager->actions) > 0) void_action_list (action_manager); for (dir = action_manager->actions_directory_list; dir != NULL; dir = dir->next) { directory = dir->data; file_list = nemo_directory_get_file_list (directory); for (node = file_list; node != NULL; node = node->next) { file = node->data; if (!g_str_has_suffix (nemo_file_peek_name (file), ".nemo_action") || !nemo_global_preferences_should_load_plugin (nemo_file_peek_name (file), NEMO_PLUGIN_PREFERENCES_DISABLED_ACTIONS)) continue; add_action_to_action_list (action_manager, file); } nemo_file_list_free (file_list); } action_manager->action_list_dirty = FALSE; g_signal_emit (action_manager, signals[CHANGED], 0); }
GList * nemo_directory_match_pattern (NemoDirectory *directory, const char *pattern) { GList *files, *l, *ret; GPatternSpec *spec; ret = NULL; spec = g_pattern_spec_new (pattern); files = nemo_directory_get_file_list (directory); for (l = files; l; l = l->next) { NemoFile *file; char *name; file = NEMO_FILE (l->data); name = nemo_file_get_display_name (file); if (g_pattern_match_string (spec, name)) { ret = g_list_prepend(ret, nemo_file_ref (file)); } g_free (name); } g_pattern_spec_free (spec); nemo_file_list_free (files); return ret; }
static GList * desktop_get_file_list (NemoDirectory *directory) { GList *real_dir_file_list, *desktop_dir_file_list = NULL; real_dir_file_list = nemo_directory_get_file_list (NEMO_DESKTOP_DIRECTORY (directory)->details->real_directory); desktop_dir_file_list = NEMO_DIRECTORY_CLASS (nemo_desktop_directory_parent_class)->get_file_list (directory); return g_list_concat (real_dir_file_list, desktop_dir_file_list); }
static GList * merged_get_file_list (NemoDirectory *directory) { GList *dirs_file_list, *merged_dir_file_list = NULL; GList *dir_list; GList *cur_node; dirs_file_list = NULL; dir_list = NEMO_MERGED_DIRECTORY (directory)->details->directories; for (cur_node = dir_list; cur_node != NULL; cur_node = cur_node->next) { NemoDirectory *cur_dir; cur_dir = NEMO_DIRECTORY (cur_node->data); dirs_file_list = g_list_concat (dirs_file_list, nemo_directory_get_file_list (cur_dir)); } merged_dir_file_list = NEMO_DIRECTORY_CLASS (nemo_merged_directory_parent_class)->get_file_list (directory); return g_list_concat (dirs_file_list, merged_dir_file_list); }
static void real_directory_notify_files_removed (NemoDirectory *real_directory) { GList *files, *l; files = nemo_directory_get_file_list (real_directory); for (l = files; l; l = l->next) { NemoFile *file; char *uri; file = NEMO_FILE (l->data); uri = nemo_file_get_uri (file); nemo_file_unref (file); l->data = uri; } if (files) { nemo_directory_notify_files_removed_by_uri (files); } g_list_free_full (files, g_free); }