Author: akv
Date: 2013-05-06 13:29:24 +0200 (Mon, 06 May 2013)
New Revision: 4391
Modified:
branches/4175-enfuse/librawstudio/conf_interface.h
branches/4175-enfuse/src/gtk-interface.c
branches/4175-enfuse/src/rs-actions.c
branches/4175-enfuse/src/rs-enfuse.c
Log:
Added checkbox to preferences for wether or not to use cache when running
enfuse.
Modified: branches/4175-enfuse/librawstudio/conf_interface.h
===================================================================
--- branches/4175-enfuse/librawstudio/conf_interface.h 2013-05-06 08:41:18 UTC
(rev 4390)
+++ branches/4175-enfuse/librawstudio/conf_interface.h 2013-05-06 11:29:24 UTC
(rev 4391)
@@ -84,6 +84,7 @@
#define CONF_ENFUSE_EXTEND_NEGATIVE_MULTI "conf_enfuse_extend_negative_multi"
#define CONF_ENFUSE_EXTEND_POSITIVE_MULTI "conf_enfuse_extend_positive_multi"
#define CONF_ENFUSE_EXTEND_STEP_MULTI "conf_enfuse_extend_step_multi"
+#define CONF_ENFUSE_CACHE "conf_enfuse_cache"
#define DEFAULT_CONF_EXPORT_FILENAME "%f_%2c"
#define DEFAULT_CONF_BATCH_DIRECTORY "batch_exports/"
@@ -125,6 +126,7 @@
#define DEFAULT_CONF_ENFUSE_EXTEND_NEGATIVE_MULTI 1.0
#define DEFAULT_CONF_ENFUSE_EXTEND_POSITIVE_MULTI 1.0
#define DEFAULT_CONF_ENFUSE_EXTEND_STEP_MULTI 2.0
+#define DEFAULT_CONF_ENFUSE_CACHE TRUE
/* get the last working directory from gconf */
void rs_set_last_working_directory(const char *lwd);
Modified: branches/4175-enfuse/src/gtk-interface.c
===================================================================
--- branches/4175-enfuse/src/gtk-interface.c 2013-05-06 08:41:18 UTC (rev
4390)
+++ branches/4175-enfuse/src/gtk-interface.c 2013-05-06 11:29:24 UTC (rev
4391)
@@ -938,6 +938,7 @@
GtkWidget *cs_label;
GtkWidget* cs_widget;
GtkWidget *local_cache_check;
+ GtkWidget *enfuse_cache_check;
GtkWidget *system_theme_check;
gchar *str;
@@ -1000,6 +1001,9 @@
local_cache_check = checkbox_from_conf(CONF_CACHEDIR_IS_LOCAL, _("Place
Cache in Home Directory"), FALSE);
gtk_box_pack_start (GTK_BOX (preview_page), local_cache_check, FALSE,
TRUE, 0);
+
+ enfuse_cache_check = checkbox_from_conf(CONF_ENFUSE_CACHE, _("Cache
images when enfusing (speed for memory)"), DEFAULT_CONF_ENFUSE_CACHE);
+ gtk_box_pack_start (GTK_BOX (preview_page), enfuse_cache_check, FALSE,
TRUE, 0);
cs_hbox = gtk_hbox_new(FALSE, 0);
cs_label = gtk_label_new(_("Display Colorspace:"));
Modified: branches/4175-enfuse/src/rs-actions.c
===================================================================
--- branches/4175-enfuse/src/rs-actions.c 2013-05-06 08:41:18 UTC (rev
4390)
+++ branches/4175-enfuse/src/rs-actions.c 2013-05-06 11:29:24 UTC (rev
4391)
@@ -1585,8 +1585,12 @@
GUI_CATCHUP();
/* initialize cache system */
- if (!rs->enfuse_cache)
+ gboolean enfuse_cache = DEFAULT_CONF_ENFUSE_CACHE;
+ rs_conf_get_boolean_with_default(CONF_ENFUSE_CACHE, &enfuse_cache,
DEFAULT_CONF_ENFUSE_CACHE);
+ if (!rs->enfuse_cache && enfuse_cache)
rs->enfuse_cache = g_hash_table_new(enfuse_cache_hash,
enfuse_cache_hash_equal);
+ else
+ printf("Enfuse cache disabled\n");
gui_set_busy(TRUE);
GList *thumbs = get_thumbnails_from_list(selected_names);
Modified: branches/4175-enfuse/src/rs-enfuse.c
===================================================================
--- branches/4175-enfuse/src/rs-enfuse.c 2013-05-06 08:41:18 UTC (rev
4390)
+++ branches/4175-enfuse/src/rs-enfuse.c 2013-05-06 11:29:24 UTC (rev
4391)
@@ -89,13 +89,20 @@
}
gint export_image(gchar *filename, GHashTable *cache, RSOutput *output,
RSFilter *filter, gint snapshot, double exposure, gchar *outputname, gint
boundingbox, RSFilter *resample) {
- RS_PHOTO *photo = (RS_PHOTO *) g_hash_table_lookup(cache, filename);
- if (!photo)
+ RS_PHOTO *photo = NULL;
+
+ if (cache)
{
- photo = rs_photo_load_from_file(filename);
- g_hash_table_insert(cache, filename, photo);
- printf("Adding %s to cache\n", filename);
+ photo = (RS_PHOTO *) g_hash_table_lookup(cache, filename);
+ if (!photo)
+ {
+ photo = rs_photo_load_from_file(filename);
+ g_hash_table_insert(cache, filename, photo);
+ printf("Adding %s to cache\n", filename);
+ }
}
+ else
+ photo = rs_photo_load_from_file(filename);
if (photo)
{
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit