summaryrefslogtreecommitdiff
path: root/wallpapers.c
diff options
context:
space:
mode:
Diffstat (limited to 'wallpapers.c')
-rw-r--r--wallpapers.c12
1 files changed, 8 insertions, 4 deletions
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) {