Author: akv
Date: 2009-12-19 23:42:34 +0100 (Sat, 19 Dec 2009)
New Revision: 2800
Modified:
trunk/src/application.h
trunk/src/conf_interface.h
trunk/src/gtk-interface.c
trunk/src/rawstudio.gtkrc
trunk/src/rs-library.c
trunk/src/rs-library.h
trunk/src/rs-store.c
trunk/src/rs-store.h
Log:
Bail out of selection_changed (iconbox) if there ain't any iters left in
selected.
Modified: trunk/src/application.h
===================================================================
--- trunk/src/application.h 2009-12-19 21:57:41 UTC (rev 2799)
+++ trunk/src/application.h 2009-12-19 22:42:34 UTC (rev 2800)
@@ -24,9 +24,9 @@
#include <glib.h>
#include <lcms.h>
#include <stdint.h>
+#include <sqlite3.h>
#include "rs-arch.h"
#include "rs-cms.h"
-#include "rs-library.h"
/* Check for thread support */
#if (!defined(G_THREADS_ENABLED) || defined(G_THREADS_IMPL_NONE))
@@ -53,6 +53,11 @@
gboolean dispose_has_run;
} RS_PHOTO;
+typedef struct
+{
+ sqlite3 *db;
+} RS_LIBRARY;
+
typedef struct {
RS_PHOTO *photo;
RSSettings *settings_buffer;
Modified: trunk/src/conf_interface.h
===================================================================
--- trunk/src/conf_interface.h 2009-12-19 21:57:41 UTC (rev 2799)
+++ trunk/src/conf_interface.h 2009-12-19 22:42:34 UTC (rev 2800)
@@ -71,6 +71,7 @@
#define CONF_LAST_PRIORITY_PAGE "last_priority_page"
#define CONF_STORE_SORT_METHOD "store_sort_method"
#define CONF_LIBRARY_AUTOTAG "library_autotag"
+#define CONF_LENS_CORRECTION_ENABLED "lens_correction_enabled"
#define DEFAULT_CONF_EXPORT_FILENAME "%f_%2c"
#define DEFAULT_CONF_BATCH_DIRECTORY "batch_exports/"
@@ -97,6 +98,7 @@
#define DEFAULT_CONF_USE_SYSTEM_THEME FALSE
#define DEFAULT_CONF_SHOW_FILENAMES FALSE
#define DEFAULT_CONF_LIBRARY_AUTOTAG FALSE
+#define DEFAULT_CONF_LENS_CORRECTION_ENABLED FALSE
/* get the last working directory from gconf */
void rs_set_last_working_directory(const char *lwd);
Modified: trunk/src/gtk-interface.c
===================================================================
--- trunk/src/gtk-interface.c 2009-12-19 21:57:41 UTC (rev 2799)
+++ trunk/src/gtk-interface.c 2009-12-19 22:42:34 UTC (rev 2800)
@@ -42,6 +42,7 @@
#include "rs-actions.h"
#include "rs-dir-selector.h"
#include "rs-toolbox.h"
+#include "rs-library.h"
static GtkStatusbar *statusbar;
static gboolean fullscreen;
@@ -986,6 +987,7 @@
GtkWidget *checkbox_recursive;
GtkWidget *dir_selector_separator;
GtkWidget *dir_selector;
+ GtkWidget *library_vbox;
gint window_width = 0, toolbox_width = 0;
GdkColor dashed_bg = {0, 0, 0, 0 };
GdkColor dashed_fg = {0, 0, 65535, 0};
@@ -1046,6 +1048,10 @@
batchbox = make_batchbox(rs->queue);
+ GtkWidget *open_box = gtk_vbox_new(FALSE, 0);
+ GtkWidget *library_expander = gtk_expander_new(_("Library search"));
+ GtkWidget *directory_expander = gtk_expander_new(_("Directory"));
+
dir_selector_vbox = gtk_vbox_new(FALSE, 0);
checkbox_recursive = checkbox_from_conf(CONF_LOAD_RECURSIVE ,_("Open
recursive"), DEFAULT_CONF_LOAD_RECURSIVE);
dir_selector_separator = gtk_hseparator_new();
@@ -1055,10 +1061,18 @@
gtk_box_pack_start (GTK_BOX(dir_selector_vbox), dir_selector_separator,
FALSE, TRUE, 0);
gtk_box_pack_start (GTK_BOX(dir_selector_vbox), dir_selector, TRUE,
TRUE, 0);
+ directory_expander = gui_box(_("Directory"), dir_selector_vbox,
"OPEN_DIRECTORY_EXPANDER", TRUE);
+
+ library_vbox = rs_library_toolbox_new(rs);
+ library_expander = gui_box(_("Library search"), library_vbox,
"OPEN_LIBRARY_SEARCH_EXPANDER", TRUE);
+
+ gtk_box_pack_start (GTK_BOX(open_box), library_expander, FALSE, TRUE,
0);
+ gtk_box_pack_start (GTK_BOX(open_box), directory_expander, TRUE, TRUE,
0);
+
rs->toolbox = gtk_notebook_new();
gtk_notebook_append_page(GTK_NOTEBOOK(rs->toolbox), tools,
gtk_label_new(_("Tools")));
gtk_notebook_append_page(GTK_NOTEBOOK(rs->toolbox), batchbox,
gtk_label_new(_("Batch")));
- gtk_notebook_append_page(GTK_NOTEBOOK(rs->toolbox), dir_selector_vbox,
gtk_label_new(_("Open")));
+ gtk_notebook_append_page(GTK_NOTEBOOK(rs->toolbox), open_box,
gtk_label_new(_("Open")));
/* Metadata infobox */
infobox = gtk_label_new("");
Modified: trunk/src/rawstudio.gtkrc
===================================================================
--- trunk/src/rawstudio.gtkrc 2009-12-19 21:57:41 UTC (rev 2799)
+++ trunk/src/rawstudio.gtkrc 2009-12-19 22:42:34 UTC (rev 2800)
@@ -29,6 +29,9 @@
bg_pixmap[NORMAL] = "<none>"
+ GtkSettings::set-menu-images = true
+ GtkSettings::set-button-images = true
+
engine "clearlooks" {
}
}
@@ -36,3 +39,5 @@
widget "*" style "rawstudio-style"
class "*" style "rawstudio-style"
widget_class "*" style "rawstudio-style"
+
+
Modified: trunk/src/rs-library.c
===================================================================
--- trunk/src/rs-library.c 2009-12-19 21:57:41 UTC (rev 2799)
+++ trunk/src/rs-library.c 2009-12-19 22:42:34 UTC (rev 2800)
@@ -44,6 +44,8 @@
#include "rawstudio.h"
#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);
@@ -492,7 +494,7 @@
g_free(lens);
}
- if (metadata->focallength > 0)
+ if (metadata->focallength != -1)
{
gchar *text = NULL;
if (metadata->focallength < 50)
@@ -611,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-19 21:57:41 UTC (rev 2799)
+++ trunk/src/rs-library.h 2009-12-19 22:42:34 UTC (rev 2800)
@@ -21,14 +21,11 @@
#define RS_LIBRARY_H
#include <glib.h>
+#include <gtk/gtk.h>
#include <rawstudio.h>
#include "sqlite3.h"
+#include "application.h"
-typedef struct
-{
- sqlite3 *db;
-} RS_LIBRARY;
-
RS_LIBRARY * rs_library_new();
void rs_library_init(RS_LIBRARY *library);
void rs_library_destroy(RS_LIBRARY *library);
@@ -41,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);
Modified: trunk/src/rs-store.c
===================================================================
--- trunk/src/rs-store.c 2009-12-19 21:57:41 UTC (rev 2799)
+++ trunk/src/rs-store.c 2009-12-19 22:42:34 UTC (rev 2800)
@@ -443,6 +443,9 @@
/* Emit signal if only one thumbnail is selected */
if (num_selected == 1)
{
+ if (g_list_nth_data(selected, 0))
+ return;
+
iter = * (GtkTreeIter *) g_list_nth_data(selected, 0);
/* Get type of row */
gtk_tree_model_get(model, &iter, TYPE_COLUMN, &type, -1);
Modified: trunk/src/rs-store.h
===================================================================
--- trunk/src/rs-store.h 2009-12-19 21:57:41 UTC (rev 2799)
+++ trunk/src/rs-store.h 2009-12-19 22:42:34 UTC (rev 2800)
@@ -220,4 +220,7 @@
extern void
rs_store_group_ungroup_name(RSStore *store, const gchar *filename);
+extern void
+rs_store_load_file(RSStore *store, gchar *fullname);
+
#endif /* RS_STORE_H */
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit