Author: akv
Date: 2010-06-19 22:59:12 +0200 (Sat, 19 Jun 2010)
New Revision: 3434

Modified:
   trunk/src/rs-actions.c
Log:
Moved duplicate-code to a new function.

Modified: trunk/src/rs-actions.c
===================================================================
--- trunk/src/rs-actions.c      2010-06-19 20:05:40 UTC (rev 3433)
+++ trunk/src/rs-actions.c      2010-06-19 20:59:12 UTC (rev 3434)
@@ -628,16 +628,9 @@
        gui_setprio(rs, PRIO_U);
 }
 
-ACTION(auto_wb)
+void
+set_wb_on_multiple_photos(GList *selected, gint current_setting, const gchar 
*wb_ascii)
 {
-       if (RS_IS_PHOTO(rs->photo))
-       {
-               gui_status_notify(_("Adjusting to auto white balance"));
-               rs_photo_set_wb_auto(rs->photo, rs->current_setting);
-       }
-
-       /* Apply to all selected photos */
-       GList *selected = rs_store_get_selected_names(rs->store);
        gint num_selected = g_list_length(selected);
 
        if (num_selected > 1)
@@ -651,14 +644,26 @@
                        photo = rs_photo_new();
                        photo->filename = g_strdup(g_list_nth_data(selected, 
cur));
                        load_mask = rs_cache_load(photo);
-                       
rs_settings_set_wb(photo->settings[rs->current_setting], 0.0, 0.0, 
PRESET_WB_AUTO);
+                       rs_settings_set_wb(photo->settings[current_setting], 
0.0, 0.0, wb_ascii);
                        rs_cache_save(photo, load_mask | MASK_WB);
                        g_object_unref(photo);
                }
-               g_list_free(selected);
        }
+       g_list_free(selected);
 }
 
+ACTION(auto_wb)
+{
+       if (RS_IS_PHOTO(rs->photo))
+       {
+               gui_status_notify(_("Adjusting to auto white balance"));
+               rs_photo_set_wb_auto(rs->photo, rs->current_setting);
+       }
+
+       /* Apply to all selected photos */
+       set_wb_on_multiple_photos(rs_store_get_selected_names(rs->store), 
rs->current_setting, PRESET_WB_AUTO);
+}
+
 ACTION(camera_wb)
 {
        if (RS_IS_PHOTO(rs->photo))
@@ -673,26 +678,7 @@
        }
 
        /* Apply to all selected photos */
-       GList *selected = rs_store_get_selected_names(rs->store);
-       gint num_selected = g_list_length(selected);
-
-       if (num_selected > 1)
-       {
-               RS_PHOTO *photo;
-               gint cur, load_mask;
-
-               for(cur=0;cur<num_selected;cur++)
-               {
-                       /* This is nothing but a hack around rs_cache_*() */
-                       photo = rs_photo_new();
-                       photo->filename = g_strdup(g_list_nth_data(selected, 
cur));
-                       load_mask = rs_cache_load(photo);
-                       
rs_settings_set_wb(photo->settings[rs->current_setting], 0.0, 0.0, 
PRESET_WB_CAMERA);
-                       rs_cache_save(photo, load_mask | MASK_WB);
-                       g_object_unref(photo);
-               }
-               g_list_free(selected);
-       }
+       set_wb_on_multiple_photos(rs_store_get_selected_names(rs->store), 
rs->current_setting, PRESET_WB_CAMERA);
 }
 
 ACTION(crop)


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

Reply via email to