Author: post
Date: 2011-03-06 18:51:42 +0100 (Sun, 06 Mar 2011)
New Revision: 3840

Modified:
   trunk/src/rs-camera-db.c
   trunk/src/rs-camera-db.h
Log:
Add function to retrieve camera defaults from DB.

Modified: trunk/src/rs-camera-db.c
===================================================================
--- trunk/src/rs-camera-db.c    2011-03-06 15:43:00 UTC (rev 3839)
+++ trunk/src/rs-camera-db.c    2011-03-06 17:51:42 UTC (rev 3840)
@@ -185,7 +185,7 @@
                                -1);
                        if (db_make && db_model && g_str_equal(needle_make, 
db_make) && g_str_equal(needle_model, db_model))
                        {
-                               gpointer profile = 
rs_photo_get_dcp_profile(photo); /* FIXME: Support ICC profiles */
+                               gpointer profile = 
rs_photo_get_dcp_profile(photo);
 
                                gtk_list_store_set(camera_db->cameras, &iter,
                                        COLUMN_PROFILE, profile,
@@ -213,7 +213,7 @@
 }
 
 gboolean
-rs_camera_db_photo_set_defaults(RSCameraDb *camera_db, RS_PHOTO *photo)
+rs_camera_db_photo_get_defaults(RSCameraDb *camera_db, RS_PHOTO *photo, 
RSSettings **dest_settings, gpointer *dest_profile)
 {
        g_return_val_if_fail(RS_IS_PHOTO(photo), FALSE);
        g_return_val_if_fail(RS_IS_METADATA(photo->metadata), FALSE);
@@ -235,28 +235,14 @@
                                -1);
                        if (db_make && db_model && g_str_equal(needle_make, 
db_make) && g_str_equal(needle_model, db_model))
                        {
-                               gint i;
-                               gpointer p;
-                               RSSettings *s[3];
 
                                gtk_tree_model_get(model, &iter,
-                                       COLUMN_PROFILE, &p,
-                                       COLUMN_SETTINGS0, &s[0],
-                                       COLUMN_SETTINGS1, &s[1],
-                                       COLUMN_SETTINGS2, &s[2],
+                                       COLUMN_PROFILE, dest_profile,
+                                       COLUMN_SETTINGS0, &dest_settings[0],
+                                       COLUMN_SETTINGS1, &dest_settings[1],
+                                       COLUMN_SETTINGS2, &dest_settings[2],
                                        -1);
 
-                               if (RS_IS_DCP_FILE(p))
-                                       rs_photo_set_dcp_profile(photo, p);
-                               /* FIXME: support ICC */
-
-                               for(i=0;i<3;i++)
-                                       if (RS_IS_SETTINGS(s[i]))
-                                           {
-                                                       rs_settings_copy(s[i], 
MASK_ALL, photo->settings[i]);
-                                                       g_object_unref(s[i]);
-                                               }
-
                                found = TRUE;
                        }
                        g_free(db_make);
@@ -269,6 +255,33 @@
        return found;
 }
 
+gboolean
+rs_camera_db_photo_set_defaults(RSCameraDb *camera_db, RS_PHOTO *photo)
+{
+       g_return_val_if_fail(RS_IS_PHOTO(photo), FALSE);
+       g_return_val_if_fail(RS_IS_METADATA(photo->metadata), FALSE);
+
+       gpointer p;
+       RSSettings *s[3];
+       gboolean found = rs_camera_db_photo_get_defaults(camera_db, photo, s, 
&p);
+
+       if (!found)
+               return FALSE;
+
+       if (RS_IS_DCP_FILE(p))
+               rs_photo_set_dcp_profile(photo, p);
+
+       gint i;
+       for(i=0;i<3;i++)
+               if (RS_IS_SETTINGS(s[i]))
+               {
+                       rs_settings_copy(s[i], MASK_ALL, photo->settings[i]);
+                       g_object_unref(s[i]);
+               }
+
+       return found;
+}
+
 static void
 load_db(RSCameraDb *camera_db)
 {

Modified: trunk/src/rs-camera-db.h
===================================================================
--- trunk/src/rs-camera-db.h    2011-03-06 15:43:00 UTC (rev 3839)
+++ trunk/src/rs-camera-db.h    2011-03-06 17:51:42 UTC (rev 3840)
@@ -46,6 +46,9 @@
 
 void rs_camera_db_save_defaults(RSCameraDb *camera_db, RS_PHOTO *photo);
 
+gboolean
+rs_camera_db_photo_get_defaults(RSCameraDb *camera_db, RS_PHOTO *photo, 
RSSettings **dest_settings, gpointer *dest_profile);
+
 gboolean rs_camera_db_photo_set_defaults(RSCameraDb *camera_db, RS_PHOTO 
*photo);
 
 G_END_DECLS


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

Reply via email to