Update of /cvsroot/ufraw/ufraw In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv19645
Modified Files: ufraw_settings.cc ufraw_ufraw.c Log Message: Use channel multipliers from configuration when make and model match. Fix bug where make and model in uf->conf were not from current raw file. Index: ufraw_settings.cc =================================================================== RCS file: /cvsroot/ufraw/ufraw/ufraw_settings.cc,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ufraw_settings.cc 27 Jan 2010 21:23:22 -0000 1.1 +++ ufraw_settings.cc 11 Feb 2010 20:51:26 -0000 1.2 @@ -228,7 +228,8 @@ if (uf == NULL) return; if (uf->rgbMax == 0) { // Raw file was not loaded yet. - uf->WBDirty = true; + if (!wb.IsEqual(uf_manual_wb) && !wb.IsEqual(uf_manual_wb)) + uf->WBDirty = true; // ChannelMultipliers should be calculated later return; } if (mode != NULL) Index: ufraw_ufraw.c =================================================================== RCS file: /cvsroot/ufraw/ufraw/ufraw_ufraw.c,v retrieving revision 1.236 retrieving revision 1.237 diff -u -d -r1.236 -r1.237 --- ufraw_ufraw.c 10 Feb 2010 23:37:02 -0000 1.236 +++ ufraw_ufraw.c 11 Feb 2010 20:51:26 -0000 1.237 @@ -403,15 +403,6 @@ ufobject_copy(uf->conf->ufobject, ufgroup_element(rc->ufobject, ufRawImage)); } - - if (ufobject_name(uf->conf->ufobject) != ufRawImage) - g_warning("uf->conf->ufobject is not a ufRawImage"); - dcraw_data *raw = uf->raw; - // make, model are used in ufraw_image_set_data() - g_strlcpy(uf->conf->make, raw->make, max_name); - g_strlcpy(uf->conf->model, raw->model, max_name); - ufraw_image_set_data(uf->conf->ufobject, uf); - if (conf!=NULL && conf->version!=0) { conf_copy_image(uf->conf, conf); conf_copy_save(uf->conf, conf); @@ -424,6 +415,16 @@ status = conf_set_cmd(uf->conf, cmd); if (status!=UFRAW_SUCCESS) return status; } + if (ufobject_name(uf->conf->ufobject) != ufRawImage) + g_warning("uf->conf->ufobject is not a ufRawImage"); + dcraw_data *raw = uf->raw; + if (strcmp(uf->conf->make, raw->make) != 0 || + strcmp(uf->conf->model, raw->model) != 0) + uf->WBDirty =TRUE; // Re-calculate channel multipliers. + // make, model are used in ufraw_image_set_data() + g_strlcpy(uf->conf->make, raw->make, max_name); + g_strlcpy(uf->conf->model, raw->model, max_name); + ufraw_image_set_data(uf->conf->ufobject, uf); char *absname = uf_file_set_absolute(uf->filename); g_strlcpy(uf->conf->inputFilename, absname, max_path); @@ -660,8 +661,8 @@ if (uf->conf->CropY2 > uf->rotatedHeight) uf->conf->CropY2 = uf->rotatedHeight; - // If we are LoadingID, we want to keep the ChannelMultipliers from it. - if (!uf->LoadingID || uf->WBDirty) { + // Now we can finally calculate the channel multipliers. + if (uf->WBDirty) { UFObject *wb = ufgroup_element(uf->conf->ufobject, ufWB); char *oldWB = g_strdup(ufobject_string_value(wb)); UFObject *wbTuning = ufgroup_element(uf->conf->ufobject, ------------------------------------------------------------------------------ SOLARIS 10 is the OS for Data Centers - provides features such as DTrace, Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW http://p.sf.net/sfu/solaris-dev2dev _______________________________________________ ufraw-cvs mailing list ufraw-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ufraw-cvs