From 92e96c5e34fd636425672db3f021723cde85e1c1 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Sun, 7 Feb 2010 13:26:44 +0100 Subject: Recreate the folder tree model when folders has been added. --- wallpapers.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'wallpapers.c') diff --git a/wallpapers.c b/wallpapers.c index 67c9cef..86f7318 100644 --- a/wallpapers.c +++ b/wallpapers.c @@ -13,7 +13,7 @@ #include "wallpapers.h" -void wallpapers_add_dir(const gchar *path, sqlite_uint64 parent, GtkStatusbar *statusbar, gboolean recursive ) { +gboolean wallpapers_add_dir(const gchar *path, sqlite_uint64 parent, GtkStatusbar *statusbar, gboolean recursive ) { static guint context_id = 0; GDir *dir; const gchar *filename; @@ -23,6 +23,7 @@ void wallpapers_add_dir(const gchar *path, sqlite_uint64 parent, GtkStatusbar *s struct stat st; GdkPixbuf *pixbuf; GError *error; + gboolean added = FALSE; gdk_threads_enter(); @@ -41,12 +42,13 @@ void wallpapers_add_dir(const gchar *path, sqlite_uint64 parent, GtkStatusbar *s if(dirid == 0) { dirid = db_add_directory(path, parent); if(dirid == 0) - return; + return FALSE; + added = TRUE; } dir = g_dir_open(path, 0, NULL); if(!dir) - return; + return added; while((filename = g_dir_read_name(dir)) != NULL) { filepath = g_strdup_printf("%s/%s", path, filename); @@ -74,7 +76,7 @@ void wallpapers_add_dir(const gchar *path, sqlite_uint64 parent, GtkStatusbar *s continue; } if(recursive) - wallpapers_add_dir(filepath, dirid, statusbar, recursive); + added |= wallpapers_add_dir(filepath, dirid, statusbar, recursive); g_free(filepath); gdk_threads_enter(); gtk_statusbar_pop(statusbar, context_id); @@ -117,6 +119,8 @@ void wallpapers_add_dir(const gchar *path, sqlite_uint64 parent, GtkStatusbar *s gtk_statusbar_push(statusbar, context_id, msg); g_free(msg); gdk_threads_leave(); + + return added; } void wallpapers_remove_missing(struct directory_t *dir, GtkStatusbar *statusbar, gboolean recursive) { -- cgit v1.2.3