merge with dev

This commit is contained in:
Desmis 2017-04-13 11:12:05 +02:00
commit ce3351d50f
19 changed files with 568 additions and 239 deletions

View File

@ -99,6 +99,11 @@ if(APPLE)
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /usr/lib/libstdc++.6.dylib") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /usr/lib/libstdc++.6.dylib")
message(STATUS "CMAKE_CXX_COMPILER is MacPorts GCC.\n CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}") message(STATUS "CMAKE_CXX_COMPILER is MacPorts GCC.\n CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
endif() endif()
# Set minimum system version
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.9")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=10.9")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -headerpad_max_install_names")
endif() endif()
option(USE_EXPERIMENTAL_LANG_VERSIONS "Build with -std=c++0x" OFF) option(USE_EXPERIMENTAL_LANG_VERSIONS "Build with -std=c++0x" OFF)

View File

@ -12,7 +12,7 @@
# Copyright 2010 henrik andersson # Copyright 2010 henrik andersson
#============================================================================= #=============================================================================
SET(MACINTEGRATION_FIND_REQUIRED ${MacIntegration_FIND_REQUIRED}) set(MACINTEGRATION_FIND_REQUIRED ${MacIntegration_FIND_REQUIRED})
find_path(MACINTEGRATION_INCLUDE_DIR gtkosxapplication.h PATH_SUFFIXES gtkmacintegration gtkmacintegration-gtk3) find_path(MACINTEGRATION_INCLUDE_DIR gtkosxapplication.h PATH_SUFFIXES gtkmacintegration gtkmacintegration-gtk3)
mark_as_advanced(MACINTEGRATION_INCLUDE_DIR) mark_as_advanced(MACINTEGRATION_INCLUDE_DIR)
@ -26,7 +26,7 @@ mark_as_advanced(MACINTEGRATION_LIBRARY)
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MACINTEGRATION DEFAULT_MSG MACINTEGRATION_LIBRARY MACINTEGRATION_INCLUDE_DIR) find_package_handle_standard_args(MACINTEGRATION DEFAULT_MSG MACINTEGRATION_LIBRARY MACINTEGRATION_INCLUDE_DIR)
IF(MACINTEGRATION_FOUND) if(MACINTEGRATION_FOUND)
SET(MacIntegration_LIBRARIES ${MACINTEGRATION_LIBRARY}) set(MacIntegration_LIBRARIES ${MACINTEGRATION_LIBRARY})
SET(MacIntegration_INCLUDE_DIRS ${MACINTEGRATION_INCLUDE_DIR}) set(MacIntegration_INCLUDE_DIRS ${MACINTEGRATION_INCLUDE_DIR})
ENDIF(MACINTEGRATION_FOUND) endif()

View File

@ -1,69 +1,72 @@
file (GLOB LANGUAGEFILES "languages/*") file(GLOB LANGUAGEFILES "languages/*")
file (GLOB SOUNDFILES "sounds/*") file(GLOB SOUNDFILES "sounds/*")
file (GLOB INPUTICCFILES "iccprofiles/input/*") file(GLOB INPUTICCFILES "iccprofiles/input/*")
file (GLOB OUTPUTICCFILES "iccprofiles/output/*") file(GLOB OUTPUTICCFILES "iccprofiles/output/*")
file (GLOB DCPFILES "dcpprofiles/*") file(GLOB DCPFILES "dcpprofiles/*")
file (GLOB FONTS "fonts/*") file(GLOB FONTS "fonts/*")
set (PROFILESDIR "profiles")
set(PROFILESDIR "profiles")
set(IMAGESDIR "images")
# THEMEDIR includes subfolders for image resources for some themes; doing the normal glob won't work. # THEMEDIR includes subfolders for image resources for some themes; doing the normal glob won't work.
set (THEMEDIR "themes") set(THEMEDIR "themes")
set (IMAGESDIR "images")
if (WIN32) if(WIN32)
set(OPTIONSFILE "options/options.win") set(OPTIONSFILE "options/options.win")
elseif (APPLE) elseif(APPLE)
set(OPTIONSFILE "options/options.osx") set(OPTIONSFILE "options/options.osx")
else (WIN32) else()
set(OPTIONSFILE "options/options.lin") set(OPTIONSFILE "options/options.lin")
endif (WIN32) endif()
if (WIN32) if(WIN32)
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/WindowsInnoSetup.iss" DESTINATION ${BINDIR}) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/WindowsInnoSetup.iss" DESTINATION ${BINDIR})
endif (WIN32) endif()
if (UNIX) if(UNIX)
configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/icons/rawtherapee.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/icons/rawtherapee.desktop.in" "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop")
install (FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR}) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR})
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi16-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi16-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi24-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi24-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi32-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/32x32/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi32-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/32x32/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi48-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi48-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi128-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi128-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png)
install (FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi256-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/icons/hi256-app-rawtherapee.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png)
endif (UNIX) endif()
install (FILES ${IMAGEFILES} DESTINATION "${DATADIR}/images") install(FILES ${IMAGEFILES} DESTINATION "${DATADIR}/images")
install (FILES ${LANGUAGEFILES} DESTINATION "${DATADIR}/languages") install(FILES ${LANGUAGEFILES} DESTINATION "${DATADIR}/languages")
install (FILES ${SOUNDFILES} DESTINATION "${DATADIR}/sounds") install(FILES ${SOUNDFILES} DESTINATION "${DATADIR}/sounds")
install (FILES ${INPUTICCFILES} DESTINATION "${DATADIR}/iccprofiles/input") install(FILES ${INPUTICCFILES} DESTINATION "${DATADIR}/iccprofiles/input")
install (FILES ${OUTPUTICCFILES} DESTINATION "${DATADIR}/iccprofiles/output") install(FILES ${OUTPUTICCFILES} DESTINATION "${DATADIR}/iccprofiles/output")
install (FILES ${DCPFILES} DESTINATION "${DATADIR}/dcpprofiles") install(FILES ${DCPFILES} DESTINATION "${DATADIR}/dcpprofiles")
if (WIN32) install(FILES ${OPTIONSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME options)
install (FILES ${FONTS} DESTINATION "${DATADIR}/fonts") if(WIN32)
endif (WIN32) install(FILES ${FONTS} DESTINATION "${DATADIR}/fonts")
install (DIRECTORY ${PROFILESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.pp3") endif()
install (DIRECTORY ${THEMEDIR} DESTINATION "${DATADIR}")
install (DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "index.theme")
install (DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.png")
install (FILES ${OPTIONSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ RENAME options)
if (APPLE) install(DIRECTORY ${PROFILESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.pp3")
# CMake escapes first item quote character. Do not remove 'DUMMY_VARIABLE='. install(DIRECTORY ${THEMEDIR} DESTINATION "${DATADIR}")
set (MACOSX_BUNDLE_COMMAND DUMMY_VARIABLE= install(DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "index.theme")
install(DIRECTORY ${IMAGESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.png")
if(APPLE)
# CMake escapes first item quote character. Do not remove 'DUMMY_VARIABLE='
set(MACOSX_BUNDLE_COMMAND DUMMY_VARIABLE=
PROJECT_NAME="${PROJECT_NAME}" PROJECT_NAME="${PROJECT_NAME}"
PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}" PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}"
CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}"
GTK_PREFIX="${GTK_PREFIX}") GTK_PREFIX="${GTK_PREFIX}")
if (PROC_BIT_DEPTH MATCHES 32) if(PROC_BIT_DEPTH MATCHES 32)
list (APPEND MACOSX_BUNDLE_COMMAND PROC_BIT_DEPTH=32) list(APPEND MACOSX_BUNDLE_COMMAND PROC_BIT_DEPTH=32)
elseif (PROC_BIT_DEPTH MATCHES 64) else()
list (APPEND MACOSX_BUNDLE_COMMAND PROC_BIT_DEPTH=64) list(APPEND MACOSX_BUNDLE_COMMAND PROC_BIT_DEPTH=64)
endif (PROC_BIT_DEPTH MATCHES 32) endif()
list (APPEND MACOSX_BUNDLE_COMMAND sh "${PROJECT_SOURCE_DIR}/tools/osx/macosx_bundle.sh") list(APPEND MACOSX_BUNDLE_COMMAND sh "${PROJECT_SOURCE_DIR}/tools/osx/macosx_bundle.sh")
add_custom_target(macosx_bundle add_custom_target(macosx_bundle
COMMAND ${MACOSX_BUNDLE_COMMAND} COMMAND ${MACOSX_BUNDLE_COMMAND}
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
COMMENT "Creating Mac OS X bundle") COMMENT "Creating macOS bundle")
endif (APPLE) endif()

View File

@ -1,46 +1,141 @@
include_directories (${EXTRA_INCDIR} ${GTHREAD_INCLUDE_DIRS} ${GOBJECT_INCLUDE_DIRS} ${GLIB2_INCLUDE_DIRS} include_directories(${EXTRA_INCDIR}
${GLIBMM_INCLUDE_DIRS} ${IPTCDATA_INCLUDE_DIRS} ${LCMS_INCLUDE_DIRS} ${EXPAT_INCLUDE_DIRS} ${FFTW3F_INCLUDE_DIRS} ${EXPAT_INCLUDE_DIRS}
${GTKMM_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS}) ${FFTW3F_INCLUDE_DIRS}
link_directories ("${PROJECT_SOURCE_DIR}/rtexif" ${EXTRA_LIBDIR} ${GTHREAD_LIBRARY_DIRS} ${GLIB2_INCLUDE_DIRS}
${GOBJECT_LIBRARY_DIRS} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS} ${GLIBMM_INCLUDE_DIRS}
${IPTCDATA_LIBRARY_DIRS} ${LCMS_LIBRARY_DIRS} ${EXPAT_LIBRARY_DIRS} ${FFTW3F_LIBRARY_DIRS}) ${GOBJECT_INCLUDE_DIRS}
${GTHREAD_INCLUDE_DIRS}
set (CAMCONSTSFILE "camconst.json") ${GTKMM_INCLUDE_DIRS}
${GTK_INCLUDE_DIRS}
set (RTENGINESOURCEFILES colortemp.cc curves.cc flatcurves.cc diagonalcurves.cc dcraw.cc iccstore.cc color.cc ${IPTCDATA_INCLUDE_DIRS}
dfmanager.cc ffmanager.cc gauss.cc rawimage.cc image8.cc image16.cc imagefloat.cc imagedata.cc imageio.cc improcfun.cc init.cc dcrop.cc ${LCMS_INCLUDE_DIRS}
loadinitial.cc procparams.cc rawimagesource.cc demosaic_algos.cc shmap.cc simpleprocess.cc refreshmap.cc
fast_demo.cc amaze_demosaic_RT.cc CA_correct_RT.cc cfa_linedn_RT.cc green_equil_RT.cc hilite_recon.cc expo_before_b.cc
stdimagesource.cc myfile.cc iccjpeg.cc improccoordinator.cc pipettebuffer.cc coord.cc
processingjob.cc rtthumbnail.cc utils.cc labimage.cc slicer.cc cieimage.cc iplocallab.cc
iplab2rgb.cc ipsharpen.cc iptransform.cc ipresize.cc ipvibrance.cc icons.cc
imagedimensions.cc jpeg_ijg/jpeg_memsrc.cc jdatasrc.cc iimage.cc
EdgePreservingDecomposition.cc cplx_wavelet_dec.cc FTblockDN.cc
PF_correct_RT.cc previewimage.cc ipwavelet.cc
dirpyr_equalizer.cc
calc_distort.cc lcp.cc dcp.cc ipretinex.cc
cJSON.c camconst.cc
klt/convolve.cc klt/error.cc klt/klt.cc klt/klt_util.cc klt/pnmio.cc klt/pyramid.cc klt/selectGoodFeatures.cc
klt/storeFeatures.cc klt/trackFeatures.cc klt/writeFeatures.cc
clutstore.cc
ciecam02.cc
pixelshift.cc
) )
include_directories (BEFORE "${CMAKE_CURRENT_BINARY_DIR}") link_directories("${PROJECT_SOURCE_DIR}/rtexif"
${EXPAT_LIBRARY_DIRS}
${EXTRA_LIBDIR}
${FFTW3F_LIBRARY_DIRS}
${GLIB2_LIBRARY_DIRS}
${GLIBMM_LIBRARY_DIRS}
${GOBJECT_LIBRARY_DIRS}
${GTHREAD_LIBRARY_DIRS}
${IPTCDATA_LIBRARY_DIRS}
${LCMS_LIBRARY_DIRS}
)
add_library (rtengine ${RTENGINESOURCEFILES}) set(CAMCONSTSFILE "camconst.json")
add_dependencies (rtengine UpdateInfo)
#It may be nice to store library version too set(RTENGINESOURCEFILES
IF (BUILD_SHARED_LIBS) CA_correct_RT.cc
EdgePreservingDecomposition.cc
FTblockDN.cc
PF_correct_RT.cc
amaze_demosaic_RT.cc
cJSON.c
calc_distort.cc
camconst.cc
cfa_linedn_RT.cc
ciecam02.cc
cieimage.cc
clutstore.cc
color.cc
colortemp.cc
coord.cc
cplx_wavelet_dec.cc
curves.cc
dcp.cc
dcraw.cc
dcrop.cc
demosaic_algos.cc
dfmanager.cc
diagonalcurves.cc
dirpyr_equalizer.cc
expo_before_b.cc
fast_demo.cc
ffmanager.cc
flatcurves.cc
gauss.cc
green_equil_RT.cc
hilite_recon.cc
iccjpeg.cc
iccstore.cc
icons.cc
iimage.cc
image16.cc
image8.cc
imagedata.cc
imagedimensions.cc
imagefloat.cc
imageio.cc
improccoordinator.cc
improcfun.cc
init.cc
iplab2rgb.cc
iplocallab.cc
ipresize.cc
ipretinex.cc
ipsharpen.cc
iptransform.cc
ipvibrance.cc
ipwavelet.cc
jdatasrc.cc
jpeg_ijg/jpeg_memsrc.cc
klt/convolve.cc
klt/error.cc
klt/klt.cc
klt/klt_util.cc
klt/pnmio.cc
klt/pyramid.cc
klt/selectGoodFeatures.cc
klt/storeFeatures.cc
klt/trackFeatures.cc
klt/writeFeatures.cc
labimage.cc
lcp.cc
loadinitial.cc
myfile.cc
pipettebuffer.cc
pixelshift.cc
previewimage.cc
processingjob.cc
procparams.cc
rawimage.cc
rawimagesource.cc
refreshmap.cc
rtthumbnail.cc
shmap.cc
simpleprocess.cc
slicer.cc
stdimagesource.cc
utils.cc
)
include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}")
add_library(rtengine ${RTENGINESOURCEFILES})
add_dependencies(rtengine UpdateInfo)
# It may be nice to store library version too
if(BUILD_SHARED_LIBS)
install (TARGETS rtengine DESTINATION ${LIBDIR}) install (TARGETS rtengine DESTINATION ${LIBDIR})
ENDIF (BUILD_SHARED_LIBS) endif()
set_target_properties (rtengine PROPERTIES COMPILE_FLAGS "${RTENGINE_CXX_FLAGS}") set_target_properties(rtengine PROPERTIES COMPILE_FLAGS "${RTENGINE_CXX_FLAGS}")
target_link_libraries (rtengine rtexif ${EXTRA_LIB} ${GOBJECT_LIBRARIES} ${GTHREAD_LIBRARIES} target_link_libraries(rtengine rtexif
${GLIB2_LIBRARIES} ${GLIBMM_LIBRARIES} ${LCMS_LIBRARIES} ${EXPAT_LIBRARIES} ${FFTW3F_LIBRARIES} ${IPTCDATA_LIBRARIES} ${EXPAT_LIBRARIES}
${JPEG_LIBRARIES} ${PNG_LIBRARIES} ${TIFF_LIBRARIES} ${ZLIB_LIBRARIES}) ${EXTRA_LIB}
${FFTW3F_LIBRARIES}
${GLIB2_LIBRARIES}
${GLIBMM_LIBRARIES}
${GOBJECT_LIBRARIES}
${GTHREAD_LIBRARIES}
${IPTCDATA_LIBRARIES}
${JPEG_LIBRARIES}
${LCMS_LIBRARIES}
${PNG_LIBRARIES}
${TIFF_LIBRARIES}
${ZLIB_LIBRARIES}
)
install (FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)

View File

@ -302,6 +302,8 @@ public:
if (loadAll) { if (loadAll) {
loadProfiles(stdProfilesDir, nullptr, nullptr, &fileStdProfilesFileNames, true); loadProfiles(stdProfilesDir, nullptr, nullptr, &fileStdProfilesFileNames, true);
} }
defaultMonitorProfile = settings->monitorProfile;
} }
cmsHPROFILE workingSpace(const Glib::ustring& name) const cmsHPROFILE workingSpace(const Glib::ustring& name) const
@ -534,6 +536,16 @@ public:
return getProofIntents(getProfile(name)); return getProofIntents(getProfile(name));
} }
Glib::ustring getDefaultMonitorProfileName() const
{
return defaultMonitorProfile;
}
void setDefaultMonitorProfileName(const Glib::ustring &name)
{
defaultMonitorProfile = name;
}
private: private:
using ProfileMap = std::map<Glib::ustring, cmsHPROFILE>; using ProfileMap = std::map<Glib::ustring, cmsHPROFILE>;
using MatrixMap = std::map<Glib::ustring, TMatrix>; using MatrixMap = std::map<Glib::ustring, TMatrix>;
@ -617,6 +629,18 @@ rtengine::ProfileContent rtengine::ICCStore::getContent(const Glib::ustring& nam
return implementation->getContent(name); return implementation->getContent(name);
} }
Glib::ustring rtengine::ICCStore::getDefaultMonitorProfileName() const
{
return implementation->getDefaultMonitorProfileName();
}
void rtengine::ICCStore::setDefaultMonitorProfileName(const Glib::ustring &name)
{
implementation->setDefaultMonitorProfileName(name);
}
cmsHPROFILE rtengine::ICCStore::getXYZProfile() const cmsHPROFILE rtengine::ICCStore::getXYZProfile() const
{ {
return implementation->getXYZProfile(); return implementation->getXYZProfile();

View File

@ -78,6 +78,9 @@ public:
cmsHPROFILE getStdProfile(const Glib::ustring& name) const; cmsHPROFILE getStdProfile(const Glib::ustring& name) const;
ProfileContent getContent(const Glib::ustring& name) const; ProfileContent getContent(const Glib::ustring& name) const;
Glib::ustring getDefaultMonitorProfileName() const;
void setDefaultMonitorProfileName(const Glib::ustring &name);
cmsHPROFILE getXYZProfile() const; cmsHPROFILE getXYZProfile() const;
cmsHPROFILE getsRGBProfile() const; cmsHPROFILE getsRGBProfile() const;

View File

@ -28,11 +28,18 @@
#include <shlobj.h> #include <shlobj.h>
#endif #endif
#include "settings.h"
using namespace std; using namespace std;
using namespace rtengine; using namespace rtengine;
namespace rtengine {
extern const Settings* settings;
}
LCPModelCommon::LCPModelCommon() : LCPModelCommon::LCPModelCommon() :
foc_len_x(-1.0f), foc_len_x(-1.0f),
foc_len_y(-1.0f), foc_len_y(-1.0f),
@ -603,7 +610,9 @@ void LCPProfile::calcParams(int mode, float focalLength, float focusDist, float
//printf("LCP mode=%i, dist: %g found frames: Fno %g-%g; FocLen %g-%g; Dist %g-%g with weight %g\n", mode, focusDist, pLow->aperture, pHigh->aperture, pLow->focLen, pHigh->focLen, pLow->focDist, pHigh->focDist, facLow); //printf("LCP mode=%i, dist: %g found frames: Fno %g-%g; FocLen %g-%g; Dist %g-%g with weight %g\n", mode, focusDist, pLow->aperture, pHigh->aperture, pLow->focLen, pHigh->focLen, pLow->focDist, pHigh->focDist, facLow);
} else { } else {
printf("Error: LCP file contained no %s parameters\n", mode == 0 ? "vignette" : mode == 1 ? "distortion" : "CA" ); if (settings->verbose) {
printf("Error: LCP file contained no %s parameters\n", mode == 0 ? "vignette" : mode == 1 ? "distortion" : "CA" );
}
} }
} }

View File

@ -1040,7 +1040,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei
ImProcFunctions ipf (&params, false); ImProcFunctions ipf (&params, false);
ipf.setScale (sqrt(double(fw * fw + fh * fh)) / sqrt(double(thumbImg->getWidth() * thumbImg->getWidth() + thumbImg->getHeight() * thumbImg->getHeight()))*scale); ipf.setScale (sqrt(double(fw * fw + fh * fh)) / sqrt(double(thumbImg->getWidth() * thumbImg->getWidth() + thumbImg->getHeight() * thumbImg->getHeight()))*scale);
ipf.updateColorProfiles (options.rtSettings.monitorProfile, options.rtSettings.monitorIntent, false, false); ipf.updateColorProfiles (ICCStore::getInstance()->getDefaultMonitorProfileName(), options.rtSettings.monitorIntent, false, false);
LUTu hist16 (65536); LUTu hist16 (65536);

View File

@ -1,23 +1,19 @@
add_library (rtexif rtexif.cc stdattribs.cc nikonattribs.cc canonattribs.cc pentaxattribs.cc fujiattribs.cc sonyminoltaattribs.cc olympusattribs.cc kodakattribs.cc) add_library(rtexif rtexif.cc stdattribs.cc nikonattribs.cc canonattribs.cc pentaxattribs.cc fujiattribs.cc sonyminoltaattribs.cc olympusattribs.cc kodakattribs.cc)
add_dependencies (rtexif UpdateInfo) add_dependencies(rtexif UpdateInfo)
IF (WIN32) if(WIN32)
set_target_properties (rtexif PROPERTIES COMPILE_FLAGS " -ffast-math -fexpensive-optimizations") set_target_properties(rtexif PROPERTIES COMPILE_FLAGS " -ffast-math -fexpensive-optimizations")
include_directories (${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS} include_directories(${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS})
${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS}) link_directories(. "${PROJECT_SOURCE_DIR}/rtexif" ${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS} ${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS})
link_directories (. "${PROJECT_SOURCE_DIR}/rtexif" ${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS}
${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS})
#set_target_properties (rth PROPERTIES LINK_FLAGS "-mwindows") #set_target_properties (rth PROPERTIES LINK_FLAGS "-mwindows")
ELSE (WIN32) else()
set_target_properties (rtexif PROPERTIES COMPILE_FLAGS " -ffast-math -fexpensive-optimizations -fPIC") set_target_properties(rtexif PROPERTIES COMPILE_FLAGS " -ffast-math -fexpensive-optimizations -fPIC")
include_directories (${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} include_directories(${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS})
${GLIBMM_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS}) link_directories(${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS} ${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS})
link_directories (${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} endif()
${GLIBMM_LIBRARY_DIRS} ${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS})
ENDIF (WIN32)
include_directories (BEFORE "${CMAKE_CURRENT_BINARY_DIR}") include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}")
IF (BUILD_SHARED_LIBS) if(BUILD_SHARED_LIBS)
INSTALL(TARGETS rtexif DESTINATION ${LIBDIR}) install(TARGETS rtexif DESTINATION ${LIBDIR})
ENDIF (BUILD_SHARED_LIBS) endif()

View File

@ -1,93 +1,276 @@
# common source files for both CLI and non-CLI execautables # Common source files for both CLI and non-CLI execautables
set (CLISOURCEFILES set(CLISOURCEFILES
paramsedited.cc options.cc multilangmgr.cc pathutils.cc edit.cc threadutils.cc edit.cc
main-cli.cc) main-cli.cc
multilangmgr.cc
options.cc
paramsedited.cc
pathutils.cc
threadutils.cc
)
set (NONCLISOURCEFILES set(NONCLISOURCEFILES
editwindow.cc batchtoolpanelcoord.cc paramsedited.cc cropwindow.cc previewhandler.cc previewwindow.cc navigator.cc indclippedpanel.cc previewmodepanel.cc filterpanel.cc adjuster.cc
exportpanel.cc cursormanager.cc rtwindow.cc renamedlg.cc recentbrowser.cc placesbrowser.cc filepanel.cc editorpanel.cc batchqueuepanel.cc checkbox.cc batchqueue.cc
ilabel.cc thumbbrowserbase.cc adjuster.cc filebrowserentry.cc filebrowser.cc filethumbnailbuttonset.cc batchqueuebuttonset.cc
cachemanager.cc cacheimagedata.cc shcselector.cc perspective.cc thresholdselector.cc thresholdadjuster.cc batchqueueentry.cc
clipboard.cc thumbimageupdater.cc bqentryupdater.cc lensgeom.cc coloredbar.cc edit.cc coordinateadjuster.cc batchqueuepanel.cc
coarsepanel.cc cacorrection.cc chmixer.cc blackwhite.cc batchtoolpanelcoord.cc
resize.cc icmpanel.cc crop.cc shadowshighlights.cc bayerpreprocess.cc
impulsedenoise.cc dirpyrdenoise.cc epd.cc bayerprocess.cc
exifpanel.cc toolpanel.cc lensprofile.cc lockablecolorpicker.cc bayerrawexposure.cc
sharpening.cc vibrance.cc rgbcurves.cc colortoning.cc blackwhite.cc
whitebalance.cc vignetting.cc gradient.cc pcvignette.cc rotate.cc distortion.cc bqentryupdater.cc
crophandler.cc dirbrowser.cc browserfilter.cc
curveeditor.cc curveeditorgroup.cc diagonalcurveeditorsubgroup.cc flatcurveeditorsubgroup.cc cacheimagedata.cc
filecatalog.cc extprog.cc cachemanager.cc
previewloader.cc rtimage.cc inspector.cc cacorrection.cc
histogrampanel.cc history.cc imagearea.cc checkbox.cc
imageareapanel.cc iptcpanel.cc labcurve.cc main.cc chmixer.cc
multilangmgr.cc mycurve.cc myflatcurve.cc mydiagonalcurve.cc options.cc retinex.cc clipboard.cc
preferences.cc profilepanel.cc saveasdlg.cc coarsepanel.cc
saveformatpanel.cc soundman.cc splash.cc colorappearance.cc
thumbnail.cc tonecurve.cc toolbar.cc coloredbar.cc
pathutils.cc guiutils.cc threadutils.cc zoompanel.cc toolpanelcoord.cc colortoning.cc
thumbbrowserentrybase.cc batchqueueentry.cc coordinateadjuster.cc
batchqueue.cc lwbutton.cc lwbuttonset.cc crop.cc
batchqueuebuttonset.cc browserfilter.cc exiffiltersettings.cc crophandler.cc
profilestore.cc partialpastedlg.cc cropwindow.cc
sensorbayer.cc sensorxtrans.cc preprocess.cc bayerpreprocess.cc bayerprocess.cc bayerrawexposure.cc xtransprocess.cc xtransrawexposure.cc cursormanager.cc
darkframe.cc flatfield.cc rawcacorrection.cc rawexposure.cc wavelet.cc curveeditor.cc
dirpyrequalizer.cc hsvequalizer.cc defringe.cc curveeditorgroup.cc
popupcommon.cc popupbutton.cc popuptogglebutton.cc sharpenedge.cc sharpenmicro.cc colorappearance.cc locallab.cc darkframe.cc
filmsimulation.cc prsharpening.cc defringe.cc
dynamicprofile.cc dynamicprofilepanel.cc) diagonalcurveeditorsubgroup.cc
dirbrowser.cc
dirpyrdenoise.cc
dirpyrequalizer.cc
distortion.cc
dynamicprofile.cc
dynamicprofilepanel.cc
edit.cc
editorpanel.cc
editwindow.cc
epd.cc
exiffiltersettings.cc
exifpanel.cc
exportpanel.cc
extprog.cc
filebrowser.cc
filebrowserentry.cc
filecatalog.cc
filepanel.cc
filethumbnailbuttonset.cc
filmsimulation.cc
filterpanel.cc
flatcurveeditorsubgroup.cc
flatfield.cc
gradient.cc
guiutils.cc
histogrampanel.cc
history.cc
hsvequalizer.cc
icmpanel.cc
ilabel.cc
imagearea.cc
imageareapanel.cc
impulsedenoise.cc
indclippedpanel.cc
inspector.cc
iptcpanel.cc
labcurve.cc
lensgeom.cc
lensprofile.cc
locallab.cc
lockablecolorpicker.cc
lwbutton.cc
lwbuttonset.cc
main.cc
multilangmgr.cc
mycurve.cc
mydiagonalcurve.cc
myflatcurve.cc
navigator.cc
options.cc
paramsedited.cc
partialpastedlg.cc
pathutils.cc
pcvignette.cc
perspective.cc
placesbrowser.cc
popupbutton.cc
popupcommon.cc
popuptogglebutton.cc
preferences.cc
preprocess.cc
previewhandler.cc
previewloader.cc
previewmodepanel.cc
previewwindow.cc
profilepanel.cc
profilestore.cc
prsharpening.cc
rawcacorrection.cc
rawexposure.cc
recentbrowser.cc
renamedlg.cc
resize.cc
retinex.cc
rgbcurves.cc
rotate.cc
rtimage.cc
rtwindow.cc
saveasdlg.cc
saveformatpanel.cc
sensorbayer.cc
sensorxtrans.cc
shadowshighlights.cc
sharpenedge.cc
sharpening.cc
sharpenmicro.cc
shcselector.cc
soundman.cc
splash.cc
threadutils.cc
thresholdadjuster.cc
thresholdselector.cc
thumbbrowserbase.cc
thumbbrowserentrybase.cc
thumbimageupdater.cc
thumbnail.cc
tonecurve.cc
toolbar.cc
toolpanel.cc
toolpanelcoord.cc
vibrance.cc
vignetting.cc
wavelet.cc
whitebalance.cc
xtransprocess.cc
xtransrawexposure.cc
zoompanel.cc
)
include_directories (BEFORE "${CMAKE_CURRENT_BINARY_DIR}") include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}")
if (APPLE) if(APPLE)
find_package (MacIntegration REQUIRED) find_package(MacIntegration REQUIRED)
# At the time of writing Cmake has no module finder for gtkmacintegration so here we have it hard-coded, if installed via macports it should be in /opt/local/... # At the time of writing CMake has no module finder for gtkmacintegration so here we have it hard-coded, if installed via macports it should be in /opt/local/...
set (EXTRA_LIB_RTGUI ${MacIntegration_LIBRARIES}) set(EXTRA_LIB_RTGUI ${MacIntegration_LIBRARIES})
set (EXTRA_INCDIR ${EXTRA_INCDIR} ${MacIntegration_INCLUDE_DIRS}) set(EXTRA_INCDIR ${EXTRA_INCDIR} ${MacIntegration_INCLUDE_DIRS})
endif (APPLE) endif()
if (WIN32)
set (EXTRA_SRC_CLI myicon.rc)
set (EXTRA_SRC_NONCLI myicon.rc windirmonitor.cc)
set (EXTRA_LIB_RTGUI winmm)
include_directories (${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS}
${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS} ${GIO_INCLUDE_DIRS} ${GIOMM_INCLUDE_DIRS})
link_directories (. "${PROJECT_SOURCE_DIR}/rtexif" ${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS}
${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS} ${GIO_LIBRARY_DIRS} ${GIOMM_LIBRARY_DIRS})
#set_target_properties (rth PROPERTIES LINK_FLAGS "-mwindows")
else (WIN32)
include_directories (${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS}
${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS} ${GIO_INCLUDE_DIRS} ${GIOMM_INCLUDE_DIRS} ${IPTCDATA_INCLUDE_DIRS}
${LCMS_INCLUDE_DIRS} ${EXPAT_INCLUDE_DIRS} ${FFTW3F_LIBRARY_DIRS} ${GTHREAD_INCLUDE_DIRS} ${GOBJECT_INCLUDE_DIRS}
${CANBERRA-GTK_INCLUDE_DIRS})
link_directories (${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS}
${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS} ${GIO_LIBRARY_DIRS} ${GIOMM_LIBRARY_DIRS} ${IPTCDATA_LIBRARY_DIRS}
${LCMS_LIBRARY_DIRS} ${EXPAT_LIBRARY_DIRS} ${FFTW3F_LIBRARY_DIRS} ${GTHREAD_LIBRARY_DIRS} ${GOBJECT_LIBRARY_DIRS}
${CANBERRA-GTK_LIBRARY_DIRS})
endif (WIN32)
# create config.h which defines where data are stored
configure_file ("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/config.h")
# create new executables targets if(WIN32)
add_executable (rth ${EXTRA_SRC_NONCLI} ${NONCLISOURCEFILES}) set(EXTRA_SRC_CLI myicon.rc)
#add_executable (rth-cli ${EXTRA_SRC_CLI} ${CLISOURCEFILES}) set(EXTRA_SRC_NONCLI myicon.rc windirmonitor.cc)
set(EXTRA_LIB_RTGUI winmm)
include_directories(${EXTRA_INCDIR}
${GIOMM_INCLUDE_DIRS}
${GIO_INCLUDE_DIRS}
${GLIB2_INCLUDE_DIRS}
${GLIBMM_INCLUDE_DIRS}
${GTKMM_INCLUDE_DIRS}
${GTK_INCLUDE_DIRS}
)
link_directories(. "${PROJECT_SOURCE_DIR}/rtexif"
${EXTRA_LIBDIR}
${GIOMM_LIBRARY_DIRS}
${GIO_LIBRARY_DIRS}
${GLIB2_LIBRARY_DIRS}
${GLIBMM_LIBRARY_DIRS}
${GTKMM_LIBRARY_DIRS}
${GTK_LIBRARY_DIRS}
)
#set_target_properties(rth PROPERTIES LINK_FLAGS "-mwindows")
else()
include_directories(${EXTRA_INCDIR}
${CANBERRA-GTK_INCLUDE_DIRS}
${EXPAT_INCLUDE_DIRS}
${FFTW3F_LIBRARY_DIRS}
${GIOMM_INCLUDE_DIRS}
${GIO_INCLUDE_DIRS}
${GLIB2_INCLUDE_DIRS}
${GLIBMM_INCLUDE_DIRS}
${GOBJECT_INCLUDE_DIRS}
${GTHREAD_INCLUDE_DIRS}
${GTKMM_INCLUDE_DIRS}
${GTK_INCLUDE_DIRS}
${IPTCDATA_INCLUDE_DIRS}
${LCMS_INCLUDE_DIRS}
)
link_directories(${EXTRA_LIBDIR}
${CANBERRA-GTK_LIBRARY_DIRS}
${EXPAT_LIBRARY_DIRS}
${FFTW3F_LIBRARY_DIRS}
${GIOMM_LIBRARY_DIRS}
${GIO_LIBRARY_DIRS}
${GLIB2_LIBRARY_DIRS}
${GLIBMM_LIBRARY_DIRS}
${GOBJECT_LIBRARY_DIRS}
${GTHREAD_LIBRARY_DIRS}
${GTKMM_LIBRARY_DIRS}
${GTK_LIBRARY_DIRS}
${IPTCDATA_LIBRARY_DIRS}
${LCMS_LIBRARY_DIRS}
)
endif()
# add dependencies to executables targets # Create config.h which defines where data are stored
add_dependencies (rth UpdateInfo) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/config.h")
#add_dependencies (rth-cli UpdateInfo)
# set executables targets properties, i.e. output filename and compile flags # Create new executables targets
set_target_properties (rth PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS}" OUTPUT_NAME rawtherapee) add_executable(rth ${EXTRA_SRC_NONCLI} ${NONCLISOURCEFILES})
#set_target_properties (rth-cli PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS}" OUTPUT_NAME rawtherapee-cli) #add_executable(rth-cli ${EXTRA_SRC_CLI} ${CLISOURCEFILES})
# add linked libraries dependencies to executables targets # Add dependencies to executables targets
target_link_libraries (rth rtengine ${JPEG_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${TIFF_LIBRARIES} ${GOBJECT_LIBRARIES} ${GTHREAD_LIBRARIES} add_dependencies(rth UpdateInfo)
${GLIB2_LIBRARIES} ${GLIBMM_LIBRARIES} ${GTK_LIBRARIES} ${GTKMM_LIBRARIES} ${GIO_LIBRARIES} ${GIOMM_LIBRARIES} ${LCMS_LIBRARIES} ${EXPAT_LIBRARIES} #add_dependencies(rth-cli UpdateInfo)
${FFTW3F_LIBRARIES} ${IPTCDATA_LIBRARIES} ${CANBERRA-GTK_LIBRARIES} ${EXTRA_LIB_RTGUI})
#target_link_libraries (rth-cli rtengine ${JPEG_LIBRARIES} ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${TIFF_LIBRARIES} ${GOBJECT_LIBRARIES} ${GTHREAD_LIBRARIES} # Set executables targets properties, i.e. output filename and compile flags
# ${GLIB2_LIBRARIES} ${GLIBMM_LIBRARIES} ${CAIROMM_LIBRARIES} ${GIO_LIBRARIES} ${GIOMM_LIBRARIES} ${LCMS_LIBRARIES} ${EXPAT_LIBRARIES} set_target_properties(rth PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS}" OUTPUT_NAME rawtherapee)
# ${FFTW3F_LIBRARIES} ${IPTCDATA_LIBRARIES} ${EXTRA_LIB_RTGUI}) #set_target_properties(rth-cli PROPERTIES COMPILE_FLAGS "${CMAKE_CXX_FLAGS}" OUTPUT_NAME rawtherapee-cli)
# install executables # Add linked libraries dependencies to executables targets
install (TARGETS rth DESTINATION ${BINDIR}) target_link_libraries(rth rtengine
#install (TARGETS rth-cli DESTINATION ${BINDIR}) ${CANBERRA-GTK_LIBRARIES}
${EXPAT_LIBRARIES}
${EXTRA_LIB_RTGUI}
${FFTW3F_LIBRARIES}
${GIOMM_LIBRARIES}
${GIO_LIBRARIES}
${GLIB2_LIBRARIES}
${GLIBMM_LIBRARIES}
${GOBJECT_LIBRARIES}
${GTHREAD_LIBRARIES}
${GTKMM_LIBRARIES}
${GTK_LIBRARIES}
${IPTCDATA_LIBRARIES}
${JPEG_LIBRARIES}
${LCMS_LIBRARIES}
${PNG_LIBRARIES}
${TIFF_LIBRARIES}
${ZLIB_LIBRARIES}
)
#target_link_libraries(rth-cli rtengine
# ${CAIROMM_LIBRARIES}
# ${EXPAT_LIBRARIES}
# ${EXTRA_LIB_RTGUI}
# ${FFTW3F_LIBRARIES}
# ${GIOMM_LIBRARIES}
# ${GIO_LIBRARIES}
# ${GLIB2_LIBRARIES}
# ${GLIBMM_LIBRARIES}
# ${GOBJECT_LIBRARIES}
# ${GTHREAD_LIBRARIES}
# ${IPTCDATA_LIBRARIES}
# ${JPEG_LIBRARIES}
# ${LCMS_LIBRARIES}
# ${PNG_LIBRARIES}
# ${TIFF_LIBRARIES}
# ${ZLIB_LIBRARIES}
# )
# Install executables
install(TARGETS rth DESTINATION ${BINDIR})
#install(TARGETS rth-cli DESTINATION ${BINDIR})

View File

@ -160,7 +160,12 @@ private:
Glib::ustring defprofname; Glib::ustring defprofname;
if (find_default_monitor_profile(profileBox.get_root_window()->gobj(), defprof, defprofname)) { if (find_default_monitor_profile(profileBox.get_root_window()->gobj(), defprof, defprofname)) {
profileBox.append (M ("MONITOR_PROFILE_SYSTEM") + " (" + defprofname + ")"); profileBox.append (M ("MONITOR_PROFILE_SYSTEM") + " (" + defprofname + ")");
profileBox.set_active (options.rtSettings.autoMonitorProfile ? 1 : 0); if (options.rtSettings.autoMonitorProfile) {
rtengine::ICCStore::getInstance()->setDefaultMonitorProfileName(defprof);
profileBox.set_active(1);
} else {
profileBox.set_active(0);
}
} else { } else {
profileBox.set_active (0); profileBox.set_active (0);
} }
@ -402,7 +407,7 @@ public:
ConnectionBlocker profileBlocker (profileConn); ConnectionBlocker profileBlocker (profileConn);
if (!defprof.empty() && options.rtSettings.autoMonitorProfile) { if (!defprof.empty() && options.rtSettings.autoMonitorProfile) {
setActiveTextOrIndex (profileBox, options.rtSettings.monitorProfile, 1); profileBox.set_active(1);
} else { } else {
setActiveTextOrIndex (profileBox, options.rtSettings.monitorProfile, 0); setActiveTextOrIndex (profileBox, options.rtSettings.monitorProfile, 0);
} }
@ -426,6 +431,23 @@ public:
updateParameters (); updateParameters ();
} }
void defaultMonitorProfileChanged(const Glib::ustring &profile_name, bool auto_monitor_profile)
{
ConnectionBlocker profileBlocker (profileConn);
if (auto_monitor_profile && !defprof.empty()) {
rtengine::ICCStore::getInstance()->setDefaultMonitorProfileName(defprof);
#ifndef __APPLE__
profileBox.set_active(1);
#endif
} else {
rtengine::ICCStore::getInstance()->setDefaultMonitorProfileName(profile_name);
#ifndef __APPLE__
setActiveTextOrIndex(profileBox, profile_name, 0);
#endif
}
}
}; };
EditorPanel::EditorPanel (FilePanel* filePanel) EditorPanel::EditorPanel (FilePanel* filePanel)
@ -2214,3 +2236,10 @@ void EditorPanel::updateHistogramPosition (int oldPosition, int newPosition)
iareapanel->imageArea->setPointerMotionHListener (histogramPanel); iareapanel->imageArea->setPointerMotionHListener (histogramPanel);
} }
void EditorPanel::defaultMonitorProfileChanged(const Glib::ustring &profile_name, bool auto_monitor_profile)
{
colorMgmtToolBar->defaultMonitorProfileChanged(profile_name, auto_monitor_profile);
}

View File

@ -129,6 +129,8 @@ public:
void updateTabsUsesIcons (bool useIcons); void updateTabsUsesIcons (bool useIcons);
void updateHistogramPosition (int oldPosition, int newPosition); void updateHistogramPosition (int oldPosition, int newPosition);
void defaultMonitorProfileChanged(const Glib::ustring &profile_name, bool auto_monitor_profile);
Gtk::Paned* catalogPane; Gtk::Paned* catalogPane;
private: private:

View File

@ -119,28 +119,3 @@ void LensGeometry::setBatchMode (bool batchMode)
removeIfThere (this, autoCrop); removeIfThere (this, autoCrop);
} }
void LensGeometry::disableAutoFillIfActive ()
{
const auto func = [](gpointer data) -> gboolean {
GThreadLock lock; // Is this really needed?
LensGeometry* const instance = static_cast<LensGeometry*>(data);
if (!instance->batchMode) {
if (instance->fill->get_active()) {
instance->fillConn.block(true);
instance->fill->set_active(false);
if (instance->listener) {
instance->listener->panelChanged (EvTransAutoFill, M("GENERAL_DISABLED"));
}
instance->fillConn.block(false);
}
}
return FALSE;
};
idle_register.add(func, this);
}

View File

@ -54,7 +54,6 @@ public:
{ {
rlistener = l; rlistener = l;
} }
void disableAutoFillIfActive ();
private: private:
IdleRegister idle_register; IdleRegister idle_register;

View File

@ -48,7 +48,10 @@ LensProfilePanel::LensProfilePanel () : FoldableToolPanel(this, "lensprof", M("T
fcbLCPFile->set_show_hidden(true); // ProgramData is hidden on Windows fcbLCPFile->set_show_hidden(true); // ProgramData is hidden on Windows
#endif #endif
fcbLCPFile->set_current_folder(defDir); fcbLCPFile->set_current_folder(defDir);
} else if (!options.lastLensProfileDir.empty()) {
fcbLCPFile->set_current_folder(options.lastLensProfileDir);
} }
bindCurrentFolder(*fcbLCPFile, options.lastLensProfileDir);
hbLCPFile->pack_start(*fcbLCPFile); hbLCPFile->pack_start(*fcbLCPFile);
@ -89,8 +92,9 @@ void LensProfilePanel::read(const rtengine::procparams::ProcParams* pp, const Pa
fcbLCPFile->unselect_filename(fname); fcbLCPFile->unselect_filename(fname);
} else { } else {
Glib::ustring lastFolder = fcbLCPFile->get_current_folder(); Glib::ustring lastFolder = fcbLCPFile->get_current_folder();
fcbLCPFile->set_filename("");
fcbLCPFile->set_current_folder(lastFolder); fcbLCPFile->set_current_folder(lastFolder);
fcbLCPFile->set_filename(lastFolder + "/.");
bindCurrentFolder(*fcbLCPFile, options.lastLensProfileDir);
} }
updateDisabled(false); updateDisabled(false);
@ -144,10 +148,6 @@ void LensProfilePanel::write( rtengine::procparams::ProcParams* pp, ParamsEdited
void LensProfilePanel::onLCPFileChanged() void LensProfilePanel::onLCPFileChanged()
{ {
// Disable Auto-Fill when enabling LCP Distortion Correction, #1791
lensgeomLcpFill->disableAutoFillIfActive();
lcpFileChanged = true; lcpFileChanged = true;
updateDisabled(lcpStore->isValidLCPFileName(fcbLCPFile->get_filename())); updateDisabled(lcpStore->isValidLCPFileName(fcbLCPFile->get_filename()));
@ -170,12 +170,6 @@ void LensProfilePanel::onLCPFileReset()
void LensProfilePanel::onUseDistChanged() void LensProfilePanel::onUseDistChanged()
{ {
// Disable Auto-Fill when enabling LCP Distortion Correction, #1791
if (ckbUseDist->get_active()) {
lensgeomLcpFill->disableAutoFillIfActive();
}
useDistChanged = true; useDistChanged = true;
if (listener) { if (listener) {

View File

@ -727,6 +727,7 @@ void Options::setDefaults ()
lastVibranceCurvesDir = ""; lastVibranceCurvesDir = "";
lastProfilingReferenceDir = ""; lastProfilingReferenceDir = "";
lastBWCurvesDir = ""; lastBWCurvesDir = "";
lastLensProfileDir = "";
maxRecentFolders = 15; maxRecentFolders = 15;
} }
@ -1853,6 +1854,7 @@ int Options::readFromFile (Glib::ustring fname)
safeDirGet (keyFile, "Dialogs", "LastToneCurvesDir", lastToneCurvesDir); safeDirGet (keyFile, "Dialogs", "LastToneCurvesDir", lastToneCurvesDir);
safeDirGet (keyFile, "Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir); safeDirGet (keyFile, "Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir);
safeDirGet (keyFile, "Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir); safeDirGet (keyFile, "Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir);
safeDirGet (keyFile, "Dialogs", "LastLensProfileDir", lastLensProfileDir);
} }
// -------------------------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------------------------
@ -2218,6 +2220,7 @@ int Options::saveToFile (Glib::ustring fname)
keyFile.set_string ("Dialogs", "LastToneCurvesDir", lastToneCurvesDir); keyFile.set_string ("Dialogs", "LastToneCurvesDir", lastToneCurvesDir);
keyFile.set_string ("Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir); keyFile.set_string ("Dialogs", "LastVibranceCurvesDir", lastVibranceCurvesDir);
keyFile.set_string ("Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir); keyFile.set_string ("Dialogs", "LastProfilingReferenceDir", lastProfilingReferenceDir);
keyFile.set_string ("Dialogs", "LastLensProfileDir", lastLensProfileDir);
keyData = keyFile.to_data (); keyData = keyFile.to_data ();

View File

@ -309,6 +309,7 @@ public:
Glib::ustring lastVibranceCurvesDir; Glib::ustring lastVibranceCurvesDir;
Glib::ustring lastProfilingReferenceDir; Glib::ustring lastProfilingReferenceDir;
Glib::ustring lastBWCurvesDir; Glib::ustring lastBWCurvesDir;
Glib::ustring lastLensProfileDir;
size_t maxRecentFolders; // max. number of recent folders stored in options file size_t maxRecentFolders; // max. number of recent folders stored in options file
std::vector<Glib::ustring> recentFolders; // List containing all recent folders std::vector<Glib::ustring> recentFolders; // List containing all recent folders

View File

@ -780,7 +780,9 @@ Gtk::Widget* Preferences::getColorManagementPanel ()
const std::vector<Glib::ustring> profiles = rtengine::ICCStore::getInstance ()->getProfiles (rtengine::ICCStore::ProfileType::MONITOR); const std::vector<Glib::ustring> profiles = rtengine::ICCStore::getInstance ()->getProfiles (rtengine::ICCStore::ProfileType::MONITOR);
for (const auto profile : profiles) { for (const auto profile : profiles) {
monProfile->append (profile); if (profile.find("file:") != 0) {
monProfile->append (profile);
}
} }
// same order as the enum // same order as the enum

View File

@ -657,6 +657,12 @@ void RTWindow::showPreferences ()
delete pref; delete pref;
fpanel->optionsChanged (); fpanel->optionsChanged ();
if (epanel) {
epanel->defaultMonitorProfileChanged(options.rtSettings.monitorProfile, options.rtSettings.autoMonitorProfile);
}
for (const auto &p : epanels) {
p.second->defaultMonitorProfileChanged(options.rtSettings.monitorProfile, options.rtSettings.autoMonitorProfile);
}
} }
void RTWindow::setProgress (double p) void RTWindow::setProgress (double p)