static void set_up_actions_directories (NemoActionManager *action_manager) { gchar *sys_path = nemo_action_manager_get_sys_directory_path (); gchar *sys_uri = g_filename_to_uri (sys_path, NULL, NULL); gchar *user_path = g_build_filename (g_get_user_data_dir (), "nemo", "actions", NULL); if (!g_file_test (user_path, G_FILE_TEST_EXISTS)) { g_mkdir_with_parents (user_path, DEFAULT_NEMO_DIRECTORY_MODE); } gchar *user_uri = g_filename_to_uri (user_path, NULL, NULL); if (action_manager->actions_directory_list != NULL) { nemo_directory_list_free (action_manager->actions_directory_list); } NemoDirectory *dir; dir = nemo_directory_get_by_uri (user_uri); add_directory_to_actions_directory_list (action_manager, dir); nemo_directory_unref (dir); dir = nemo_directory_get_by_uri (sys_uri); add_directory_to_actions_directory_list (action_manager, dir); nemo_directory_unref (dir); g_free (sys_path); g_free (sys_uri); g_free (user_path); g_free (user_uri); }
static void merged_finalize (GObject *object) { NemoMergedDirectory *merged; merged = NEMO_MERGED_DIRECTORY (object); g_hash_table_foreach (merged->details->monitors, merged_monitor_destroy_cover, merged); g_hash_table_foreach (merged->details->callbacks, merged_callback_destroy_cover, NULL); g_hash_table_destroy (merged->details->callbacks); g_hash_table_destroy (merged->details->monitors); nemo_directory_list_free (merged->details->directories); g_list_free (merged->details->directories_not_done_loading); G_OBJECT_CLASS (nemo_merged_directory_parent_class)->finalize (object); }
static void nemo_action_manager_dispose (GObject *object) { NemoActionManager *action_manager = NEMO_ACTION_MANAGER (object); if (action_manager->actions_directory_list != NULL) { GList *node, *copy; copy = nemo_directory_list_copy (action_manager->actions_directory_list); for (node = copy; node != NULL; node = node->next) { remove_directory_from_actions_directory_list (action_manager, node->data); } g_list_free (action_manager->actions_directory_list); action_manager->actions_directory_list = NULL; nemo_directory_list_free (copy); } g_signal_handlers_disconnect_by_func (nemo_plugin_preferences, G_CALLBACK (plugin_prefs_changed), action_manager); G_OBJECT_CLASS (parent_class)->dispose (object); }