Author: akv
Date: 2013-04-27 15:21:04 +0200 (Sat, 27 Apr 2013)
New Revision: 4370

Modified:
   branches/4175-enfuse/
   branches/4175-enfuse/librawstudio/conf_interface.h
   branches/4175-enfuse/src/rs-actions.c
Log:
Added size slider for enfuse-dialog.


Property changes on: branches/4175-enfuse
___________________________________________________________________
Modified: svn:mergeinfo
   - /trunk:4176-4346
   + /trunk:4176-4369

Modified: branches/4175-enfuse/librawstudio/conf_interface.h
===================================================================
--- branches/4175-enfuse/librawstudio/conf_interface.h  2013-04-26 22:22:09 UTC 
(rev 4369)
+++ branches/4175-enfuse/librawstudio/conf_interface.h  2013-04-27 13:21:04 UTC 
(rev 4370)
@@ -77,6 +77,7 @@
 #define CONF_ENFUSE_METHOD "conf_enfuse_method"
 #define CONF_ENFUSE_ALIGN_IMAGES "conf_enfuse_align_images"
 #define CONF_ENFUSE_EXTEND "conf_enfuse_extend"
+#define CONF_ENFUSE_SIZE "conf_enfuse_size"
 
 #define DEFAULT_CONF_EXPORT_FILENAME "%f_%2c"
 #define DEFAULT_CONF_BATCH_DIRECTORY "batch_exports/"
@@ -111,6 +112,7 @@
 #define DEFAULT_CONF_ENFUSE_METHOD 0
 #define DEFAULT_CONF_ENFUSE_ALIGN_IMAGES TRUE
 #define DEFAULT_CONF_ENFUSE_EXTEND TRUE
+#define DEFAULT_CONF_ENFUSE_SIZE 0
 
 /* get the last working directory from gconf */
 void rs_set_last_working_directory(const char *lwd);

Modified: branches/4175-enfuse/src/rs-actions.c
===================================================================
--- branches/4175-enfuse/src/rs-actions.c       2013-04-26 22:22:09 UTC (rev 
4369)
+++ branches/4175-enfuse/src/rs-actions.c       2013-04-27 13:21:04 UTC (rev 
4370)
@@ -1526,6 +1526,15 @@
   GList *selected_names = rs_store_get_selected_names(rs->store);
   guint priority = rs_store_get_current_priority(rs->store);
 
+  gchar *temp = g_list_nth_data(selected_names, 0);
+  RS_PHOTO *temp_photo = rs_photo_load_from_file(temp);
+  gint maxsize = 0;
+  if (temp_photo->input->w < temp_photo->input->h)
+    maxsize = temp_photo->input->h;
+  else
+    maxsize = temp_photo->input->w;
+  rs_photo_close(temp_photo);
+
   /* a bit of cleanup before we start enfusing */
   rs_photo_close(rs->photo);
   rs_preview_widget_set_photo((RSPreviewWidget *) rs->preview, NULL);
@@ -1562,6 +1571,20 @@
   GtkWidget *extend_check = checkbox_from_conf(CONF_ENFUSE_EXTEND, _("Extend 
exposure (only for exposure blending)"), DEFAULT_CONF_ENFUSE_EXTEND);
   gtk_box_pack_start(GTK_BOX(vbox), extend_check, TRUE, TRUE, 5);
 
+  gint size_value = DEFAULT_CONF_ENFUSE_SIZE;
+  if (!rs_conf_get_integer(CONF_ENFUSE_SIZE, &size_value))
+    size_value = DEFAULT_CONF_ENFUSE_SIZE;
+  if (size_value == 0)
+    size_value = maxsize;
+
+  GtkWidget *size_scale = gtk_hscale_new_with_range(300, maxsize, 1.0);
+  gtk_range_set_value(GTK_RANGE(size_scale), size_value);
+  GtkWidget *size_label = gtk_label_new("Size:");
+  GtkWidget *size_box = gtk_hbox_new(FALSE, 5);
+  gtk_box_pack_start(GTK_BOX(size_box), size_label, FALSE, TRUE, 5);
+  gtk_box_pack_start(GTK_BOX(size_box), size_scale, TRUE, TRUE, 5);
+  gtk_box_pack_start(GTK_BOX(vbox), size_box, TRUE, TRUE, 5);
+
   gtk_container_add(GTK_CONTAINER(content), vbox);
   gtk_widget_show_all(dialog);
 
@@ -1572,9 +1595,15 @@
       rs_preview_widget_unlock_renderer((RSPreviewWidget *) rs->preview);
       return;
     }
+  gint size = gtk_range_get_value(GTK_RANGE(size_scale));
   gtk_widget_destroy(dialog);
 
-  gchar *filename = rs_enfuse(rs, selected_names, FALSE, 1000);
+  /* to make it easier to adjust when using different size images next time */
+  if (size == maxsize)
+    size = 0;
+  rs_conf_set_integer(CONF_ENFUSE_SIZE, size);
+
+  gchar *filename = rs_enfuse(rs, selected_names, FALSE, size);
   g_list_free(selected_names);
   rs_cache_save_flags(filename, &priority, NULL, &enfuse);
 


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

Reply via email to