Author: akv
Date: 2009-12-20 14:30:24 +0100 (Sun, 20 Dec 2009)
New Revision: 2809

Modified:
   trunk/src/rs-library.c
   trunk/src/rs-library.h
Log:
Added library toolbox with helper functions.

Modified: trunk/src/rs-library.c
===================================================================
--- trunk/src/rs-library.c      2009-12-20 13:26:43 UTC (rev 2808)
+++ trunk/src/rs-library.c      2009-12-20 13:30:24 UTC (rev 2809)
@@ -45,6 +45,7 @@
 #include "rs-metadata.h"
 #include "rs-library.h"
 #include "application.h"
+#include "rs-store.h"
 
 void library_sqlite_error(sqlite3 *db, gint result);
 gint library_create_tables(sqlite3 *db);
@@ -612,4 +613,57 @@
        return tags;
 }
 
+
+void 
+library_toolbox_search_changed(GtkEntry *entry, gpointer user_data);
+
+void
+list_photos(gpointer data, gpointer user_data) {
+       g_debug("%s",(gchar *) data);
+}
+
+void
+load_photos(gpointer data, gpointer user_data) {
+       RS_BLOB *rs = user_data;
+       gchar *text = (gchar *) data;
+       rs_store_load_file(rs->store, text);
+       g_free(text);
+}
+
+void 
+search_changed(GtkEntry *entry, gpointer user_data)
+{
+       RS_BLOB *rs = user_data;
+       const gchar *text = gtk_entry_get_text(entry);
+
+       GList *tags = rs_split_string(text, " ");
+
+       GList *photos = rs_library_search(rs->library, tags);
+/*
+       printf("photos: %d\n",g_list_length(photos));
+       g_list_foreach(photos, list_photos, NULL);
+       g_list_foreach(tags, list_photos, NULL);
+*/
+
+       /* FIXME: deselect all photos in store */
+       rs_store_remove(rs->store, NULL, NULL);
+       g_list_foreach(photos, load_photos, rs);
+
+       g_list_free(photos);
+       g_list_free(tags);
+}
+
+GtkWidget *
+rs_library_toolbox_new(RS_BLOB *rs)
+{
+       GtkWidget *box = gtk_vbox_new(FALSE, 0);
+       GtkWidget *search = gtk_entry_new();
+
+       g_signal_connect (search, "changed",
+                         G_CALLBACK (search_changed), rs);
+       gtk_box_pack_start (GTK_BOX(box), search, FALSE, TRUE, 0);
+
+       return box;
+}
+
 /* END PUBLIC FUNCTIONS */

Modified: trunk/src/rs-library.h
===================================================================
--- trunk/src/rs-library.h      2009-12-20 13:26:43 UTC (rev 2808)
+++ trunk/src/rs-library.h      2009-12-20 13:30:24 UTC (rev 2809)
@@ -21,6 +21,7 @@
 #define RS_LIBRARY_H
 
 #include <glib.h>
+#include <gtk/gtk.h>
 #include <rawstudio.h>
 #include "sqlite3.h"
 #include "application.h"
@@ -37,6 +38,7 @@
 void rs_library_photo_default_tags(RS_LIBRARY *library, gchar *photo, 
RSMetadata *metadata);
 GList * rs_library_photo_tags(RS_LIBRARY *library, gchar *photo, gboolean 
autotag);
 GList * rs_library_find_tag(RS_LIBRARY *library, gchar *tag);
+GtkWidget * rs_library_toolbox_new(RS_BLOB *rs);
 
 //void rs_library_delete_tag(gchar *filename, gchar *tag);
 //void rs_library_find_tags(gchar *filename);


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to