static void cb_cache_maintain_home_cancel (GenericDialog * gd, gpointer data) { CMData *cm = data; cm->gd = NULL; cache_maintain_home_close (cm); }
static void cache_maintain_home_close_cb(GenericDialog *gd, gpointer data) { CMData *cm = data; if (!gtk_widget_get_sensitive(cm->button_close)) return; cache_maintain_home_close(cm); }
static void cache_maintain_home_close_cb(GenericDialog *gd, gpointer data) { CMData *cm = data; #if GTK_CHECK_VERSION(2,20,0) if (!gtk_widget_get_sensitive(cm->button_close)) return; #else if (!GTK_WIDGET_SENSITIVE(cm->button_close)) return; #endif cache_maintain_home_close(cm); }
static gint cb_cache_maintain_home (gpointer data) { CMData *cm = data; GList *dlist = NULL; GList *list = NULL; gchar *path; gint just_done = FALSE; gint still_have_a_file = TRUE; gint base_length; if (cm->type == CACHE_THUMBS) base_length = strlen (home_dir ()) + strlen ("/") + strlen (PORNVIEW_RC_DIR_THUMBS); else base_length = strlen (home_dir ()) + strlen ("/") + strlen (PORNVIEW_RC_DIR_COMMENTS); if (!cm->list) { cm->idle_id = -1; cache_maintain_home_close (cm); return FALSE; } path = cm->list->data; if (g_list_find (cm->done_list, path) == NULL) { cm->done_list = g_list_prepend (cm->done_list, path); if (path_list (path, &list, &dlist)) { GList *work; just_done = TRUE; still_have_a_file = FALSE; work = list; while (work) { gchar *path_buf = work->data; gchar *dot; dot = extension_find_dot (path_buf); if (dot) *dot = '\0'; if (cm->clear || (strlen (path_buf) > base_length && !isfile (path_buf + base_length))) { if (dot) *dot = '.'; if (unlink (path_buf) < 0) printf ("failed to delete:%s\n", path_buf); } else { still_have_a_file = TRUE; } work = work->next; } } } path_list_free (list); cm->list = g_list_concat (dlist, cm->list); if (cm->list && g_list_find (cm->done_list, cm->list->data) != NULL) { /* * check if the dir is empty */ if (cm->list->data == path && just_done) { if (!still_have_a_file && !dlist && cm->list->next && rmdir (path) < 0) { printf ("Unable to delete dir: %s\n", path); } } else { /* * must re-check for an empty dir */ path = cm->list->data; if (isempty (path) && cm->list->next && rmdir (path) < 0) { printf ("Unable to delete dir: %s\n", path); } } path = cm->list->data; cm->done_list = g_list_remove (cm->done_list, path); cm->list = g_list_remove (cm->list, path); g_free (path); } if (cm->list) { const gchar *buf; path = cm->list->data; if (strlen (path) > base_length) { buf = path + base_length; } else { buf = "..."; } gtk_entry_set_text (GTK_ENTRY (cm->entry), buf); } return TRUE; }