From aac9c13b9f725e7353760079b5d22f6da093640b Mon Sep 17 00:00:00 2001 From: Hombre Date: Tue, 8 Feb 2011 01:25:40 +0100 Subject: [PATCH] Version handling in main window title, About window (now with tabs, including the license) and in PP3 files --- AUTHORS.txt | 2 +- About-Apple.cmake | 23 + About-Linux.cmake | 23 + About-Windows.cmake | 22 + CMakeLists.txt | 65 ++- LICENSE.txt | 78 +-- ProcessorTargets.cmake | 33 ++ rtdata/images/splash.png | Bin 91814 -> 77119 bytes rtdata/languages/Francais | 4 + rtdata/languages/default | 4 + rtengine/CMakeLists.txt | 60 +-- rtengine/procparams.cc | 7 +- rtgui/options.cc | 1023 +++++++++++++++++++------------------ rtgui/preferences.cc | 2 +- rtgui/splash.cc | 119 ++++- rtgui/splash.h | 1 + 16 files changed, 856 insertions(+), 610 deletions(-) create mode 100644 About-Apple.cmake create mode 100644 About-Linux.cmake create mode 100644 About-Windows.cmake create mode 100644 ProcessorTargets.cmake diff --git a/AUTHORS.txt b/AUTHORS.txt index 133bc4a10..9033f39e8 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -1,6 +1,6 @@ Project initiator: - Gabor Horvath + Gábor Horváth Developement contributors, in last name alphabetical order: diff --git a/About-Apple.cmake b/About-Apple.cmake new file mode 100644 index 000000000..c9c379c16 --- /dev/null +++ b/About-Apple.cmake @@ -0,0 +1,23 @@ +# this will generate a target that will never exist, so it will (should) be executed on each build +#WARNING: Actually, only Gcc is supported + +string (TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE) + +set (OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/AboutThisBuild.txt") +set (VERSION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/rtgui/version.h") +set (SHELL "/bin/bash") + +add_custom_target (AboutFile ALL + COMMAND for i in \$\( hg branch \)\; do echo Branch: $i >${OUT_FILE}\; done + COMMAND hg parents --template=\"Version: {latesttag}_{latesttagdistance}\\nChangset: {node}\\n\" >>${OUT_FILE} + COMMAND for i in \$\( gcc -dumpversion \) \;do echo Compiler: GCC $i >>${OUT_FILE} \; done + COMMAND echo Processor: ${PROC_LABEL} >>${OUT_FILE} + COMMAND echo Gtkmm: V${GTKMM_VERSION} >>${OUT_FILE} + COMMAND echo Build flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE} + COMMAND echo Link flags: ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE} + COMMAND if [ \"${OPTION_OMP}\" = \"ON\" ] \; then echo OpenMP support: Yes >>${OUT_FILE} \;else echo OpenMP support: No >>${OUT_FILE} \;fi + COMMAND if [ \"${WITH_MYFILE_MMAP}\" = \"ON\" ] \; then echo MMAP support: Yes >>${OUT_FILE} \; else echo MMAP support: No >>${OUT_FILE} \;fi + COMMAND if [ \"${WITH_RAWZOR}\" = \"ON\" ] \; then echo Rawzor support: Yes >>${OUT_FILE} \;else echo Rawzor support: No >>${OUT_FILE} \;fi + COMMAND hg parents --template=\"// This file is automatically generated by the Makefile \; DO NOT EDIT!\\n// You can \(should\) also tell mercurial to ignore it.\\n\\n\#ifndef _VERSION_\\n\#define _VERSION_\\n\\n\#define VERSION \\"{latesttag}.{latesttagdistance}\\"\\n\#define TAGDISTANCE {latesttagdistance}\\n\\n\#endif\\n\" >${VERSION_FILE} + COMMENT "Creating the about file" +) diff --git a/About-Linux.cmake b/About-Linux.cmake new file mode 100644 index 000000000..c9c379c16 --- /dev/null +++ b/About-Linux.cmake @@ -0,0 +1,23 @@ +# this will generate a target that will never exist, so it will (should) be executed on each build +#WARNING: Actually, only Gcc is supported + +string (TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE) + +set (OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/AboutThisBuild.txt") +set (VERSION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/rtgui/version.h") +set (SHELL "/bin/bash") + +add_custom_target (AboutFile ALL + COMMAND for i in \$\( hg branch \)\; do echo Branch: $i >${OUT_FILE}\; done + COMMAND hg parents --template=\"Version: {latesttag}_{latesttagdistance}\\nChangset: {node}\\n\" >>${OUT_FILE} + COMMAND for i in \$\( gcc -dumpversion \) \;do echo Compiler: GCC $i >>${OUT_FILE} \; done + COMMAND echo Processor: ${PROC_LABEL} >>${OUT_FILE} + COMMAND echo Gtkmm: V${GTKMM_VERSION} >>${OUT_FILE} + COMMAND echo Build flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE} + COMMAND echo Link flags: ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} >>${OUT_FILE} + COMMAND if [ \"${OPTION_OMP}\" = \"ON\" ] \; then echo OpenMP support: Yes >>${OUT_FILE} \;else echo OpenMP support: No >>${OUT_FILE} \;fi + COMMAND if [ \"${WITH_MYFILE_MMAP}\" = \"ON\" ] \; then echo MMAP support: Yes >>${OUT_FILE} \; else echo MMAP support: No >>${OUT_FILE} \;fi + COMMAND if [ \"${WITH_RAWZOR}\" = \"ON\" ] \; then echo Rawzor support: Yes >>${OUT_FILE} \;else echo Rawzor support: No >>${OUT_FILE} \;fi + COMMAND hg parents --template=\"// This file is automatically generated by the Makefile \; DO NOT EDIT!\\n// You can \(should\) also tell mercurial to ignore it.\\n\\n\#ifndef _VERSION_\\n\#define _VERSION_\\n\\n\#define VERSION \\"{latesttag}.{latesttagdistance}\\"\\n\#define TAGDISTANCE {latesttagdistance}\\n\\n\#endif\\n\" >${VERSION_FILE} + COMMENT "Creating the about file" +) diff --git a/About-Windows.cmake b/About-Windows.cmake new file mode 100644 index 000000000..6b75dfcb7 --- /dev/null +++ b/About-Windows.cmake @@ -0,0 +1,22 @@ +# this will generate a target that will never exist, so it will (should) be executed on each build +#WARNING: Actually, only Gcc is supported + +string (TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE) + +set (OUT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/AboutThisBuild.txt") +set (VERSION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/rtgui/version.h") + +add_custom_target (AboutFile ALL + COMMAND for /F \"tokens=*\" %%i in \('hg branch'\) do echo Branch: %%i >${OUT_FILE} + COMMAND hg parents --template=\"Version: {latesttag}_{latesttagdistance}\\nChangset: {node}\\n\" >>${OUT_FILE} + COMMAND for /F \"tokens=*\" %%i in \('gcc -dumpversion'\) do echo Compiler: GCC%%i >>${OUT_FILE} + COMMAND \(echo Processor: ${PROC_LABEL}\) >>${OUT_FILE} + COMMAND \(echo Gtkmm: V${GTKMM_VERSION}\) >>${OUT_FILE} + COMMAND \(echo Build flags: ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} \) >>${OUT_FILE} + COMMAND \(echo Link flags: ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} \) >>${OUT_FILE} + COMMAND (if ${OPTION_OMP}==ON \(echo OpenMP support: Yes\) else \(echo OpenMP support: No\)) >>${OUT_FILE} + COMMAND (if ${WITH_MYFILE_MMAP}==ON \(echo MMAP support: Yes\) else \(echo MMAP support: No\)) >>${OUT_FILE} + COMMAND (if ${WITH_RAWZOR}==ON \(echo Rawzor support: Yes\) else \(echo Rawzor support: No\)) >>${OUT_FILE} + COMMAND hg parents --template=\"// This file is automatically generated by the Makefile \; DO NOT EDIT!\\n// You can \(should\) also tell mercurial to ignore it.\\n\\n\#ifndef _VERSION_\\n\#define _VERSION_\\n\\n\#define VERSION \\"{latesttag}.{latesttagdistance}\\"\\n\#define TAGDISTANCE {latesttagdistance}\\n\\n\#endif\\n\" >${VERSION_FILE} + COMMENT "Creating the about file" +) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e5fcb9b2..a677a6692 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,34 @@ cmake_minimum_required(VERSION 2.6) +# the default target is 'Debug' set (CMAKE_BUILD_TYPE Debug CACHE STRING "One of: None Debug Release RelWithDebInfo MinSizeRel.") +# set the default target processor to 'native', i.e. the one of your own machine. The complete list of targets is in ProcessorTargets.cmake +# you can override the cpu list by setting PROC_TARGET_NUMBER to 0, but you have to provide at least +# the PROC_LABEL value (set to "undefined" by default) in order to provide downloadable builds, +# and evetually provide PROC_FLAGS if you want to manually set the processor specific flags +set (PROC_TARGET_NUMBER 2 CACHE STRING "Selected target processor from the list above (taken from ProcessorTargets.cmake)") + +# The following line set special compilation flags for RTEngine, and will be added to CMAKE_CXX_FLAGS +# It were moved away from rtengine/CMakefiles.txt, because some users may want to remove -ffast_math : +# this flag speeds up the floating-point operations, but with a little bite less precisions. This default value +# gives the same result/behaviour as before. +set (RTENGINE_CXX_FLAGS "-ffast-math -funroll-loops" CACHE STRING "Special compilation flags for RTEngine") + +#loading the processor targets list +set (PROC_LABEL "undefined") +set (PROC_FLAGS "") +if (PROC_TARGET_NUMBER GREATER 0) + include (ProcessorTargets.cmake) + set (PROC_LABEL ${PROC_TARGET_${PROC_TARGET_NUMBER}_LABEL}) + set (PROC_FLAGS ${PROC_TARGET_${PROC_TARGET_NUMBER}_FLAGS}) +endif (PROC_TARGET_NUMBER GREATER 0) + +# adding the proc flags to the build flags +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PROC_FLAGS}") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PROC_FLAGS}") +set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PROC_FLAGS}") + if (APPLE) # SET (CMAKE_OSX_ARCHITECTURES "i386;x86_64;" ) # SET (CMAKE_TRY_COMPILE_OSX_ARCHITECTURES "i386;x86_64;" ) @@ -44,6 +71,30 @@ if (NOT DEFINED LIBDIR) endif (WIN32 OR APPLE) endif (NOT DEFINED LIBDIR) +if (NOT DEFINED DOCDIR) + if (WIN32 OR APPLE) + set (DOCDIR ${CMAKE_CURRENT_SOURCE_DIR}/release/doc) + else (WIN32 OR APPLE) + set (DOCDIR ${CMAKE_INSTALL_PREFIX}/share/doc) + endif (WIN32 OR APPLE) +endif (NOT DEFINED DOCDIR) + +if (NOT DEFINED CREDITSDIR) + if (WIN32 OR APPLE) + set (CREDITSDIR ${CMAKE_CURRENT_SOURCE_DIR}/release) + else (WIN32 OR APPLE) + set (CREDITSDIR ${CMAKE_INSTALL_PREFIX}/share/doc) + endif (WIN32 OR APPLE) +endif (NOT DEFINED CREDITSDIR) + +if (NOT DEFINED LICENCEDIR) + if (WIN32 OR APPLE) + set (LICENCEDIR ${CMAKE_CURRENT_SOURCE_DIR}/release) + else (WIN32 OR APPLE) + set (LICENCEDIR ${CMAKE_INSTALL_PREFIX}/share/doc) + endif (WIN32 OR APPLE) +endif (NOT DEFINED LICENCEDIR) + # check for libraries find_package(PkgConfig) pkg_check_modules (GTK REQUIRED gtk+-2.0>=2.12) @@ -82,6 +133,16 @@ else (WIN32) find_package (ZLIB REQUIRED) endif (WIN32) +#generating AboutThisBuild.txt +if (WIN32) + include (About-Windows.cmake) +elseif (APPLE) + include (About-Apple.cmake) +else (WIN32) + include (About-Linux.cmake) +endif (WIN32) +add_dependencies(AboutFile Debug Release MinSizeRel RelWithDebInfo) + # link rawzor if (WITH_RAWZOR) if (WIN32) @@ -144,7 +205,9 @@ if (UNIX) install (PROGRAMS rtstart DESTINATION ${BINDIR}) endif (UNIX) -install (FILES AUTHORS.txt LICENSE.txt DESTINATION ${BINDIR}) +install (FILES AUTHORS.txt DESTINATION ${CREDITSDIR}) +install (FILES LICENSE.txt DESTINATION ${LICENCEDIR}) +install (FILES AboutThisBuild.txt DESTINATION ${BINDIR}) add_subdirectory (rtexif) add_subdirectory (rtengine) diff --git a/LICENSE.txt b/LICENSE.txt index 94a9ed024..0d50270ac 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,7 +1,26 @@ - GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. + RawTherapee + + +Copyright ©2004-2011 Gábor Horváth + +RawTherapee is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +RawTherapee is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License below for more details. + + + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + + Copyright ©2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -619,56 +638,3 @@ Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/ProcessorTargets.cmake b/ProcessorTargets.cmake new file mode 100644 index 000000000..4ef65a44c --- /dev/null +++ b/ProcessorTargets.cmake @@ -0,0 +1,33 @@ +# We have to create a label variable if we want to display it in AboutThisBuild.txt... + +# This first choice should be used for official releases +set(PROC_TARGET_1_LABEL "generic x86" CACHE STRING "Processor-1 label - should be used for official Windows release") +set(PROC_TARGET_1_FLAGS "-mtune=generic" CACHE STRING "Processor-1 flags") + +# This second choice should be used for your own build only +set(PROC_TARGET_2_LABEL "native" CACHE STRING "Processor-2 label - use it for your own build") +set(PROC_TARGET_2_FLAGS "-march=native" CACHE STRING "Processor-2 flags") + +# The later choices is intended to be used if you want to provide specific builds, but it should match your own processor +# You can cross compile but you have to know what you're doing, this mechanism has not been designed for that + +set(PROC_TARGET_3_LABEL "pentium/no-sse" CACHE STRING "Processor-3 label - use it to provide a pentium/no sse optimized build, if you have this processor") +set(PROC_TARGET_3_FLAGS "-march=pentium -mfpmath=387" CACHE STRING "Processor-3 flags") + +set(PROC_TARGET_4_LABEL "pentium4" CACHE STRING "Processor-4 label - use it to provide a pentium4 optimized build, if you have this processor") +set(PROC_TARGET_4_FLAGS "-march=pentium4 -mfpmath=sse" CACHE STRING "Processor-4 flags") + +set(PROC_TARGET_5_LABEL "core2" CACHE STRING "Processor-5 label - use it to provide a core2 optimized build, if you have this processor") +set(PROC_TARGET_5_FLAGS "-march=core2 -mfpmath=sse" CACHE STRING "Processor-5 flags") + +set(PROC_TARGET_6_LABEL "corei7" CACHE STRING "Processor-6 label - use it to provide a corei7 optimized build, if you have this processor") +set(PROC_TARGET_6_FLAGS "-march=corei7 -mfpmath=sse" CACHE STRING "Processor-6 flags") + +set(PROC_TARGET_7_LABEL "athlon-4" CACHE STRING "Processor-7 label - use it to provide a athlon-4 optimized build, if you have this processor") +set(PROC_TARGET_7_FLAGS "-march=athlon-4 -mfpmath=sse" CACHE STRING "Processor-7 flags") + +set(PROC_TARGET_8_LABEL "athlon64" CACHE STRING "Processor-8 label - use it to provide a athlon64 optimized build, if you have this processor") +set(PROC_TARGET_8_FLAGS "-march=pentium2 -mtune=athlon64 -mfpmath=sse" CACHE STRING "Processor-8 flags") + +#set(PROC_TARGET__LABEL "" CACHE STRING "Processor- label") +#set(PROC_TARGET__FLAGS "" CACHE STRING "Processor- flags") diff --git a/rtdata/images/splash.png b/rtdata/images/splash.png index 3eeae46c8b25d8c6bc53d022037efba1090a473e..8b1559a72e494a01d648696771ebd8e6adc6e2a4 100644 GIT binary patch literal 77119 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 literal 91814 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 z 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 z%0A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 sPUkGQ+iA@A>ScYr9 #include #include +#include #include @@ -221,14 +222,14 @@ raw.preser=0.0; exif.clear (); iptc.clear (); - version = 249; + version = TAGDISTANCE; } int ProcParams::save (Glib::ustring fname) const { SafeKeyFile keyFile; - keyFile.set_integer ("Version", "Version", 20101019); + keyFile.set_integer ("Version", "Version", TAGDISTANCE); // save tonecurve: keyFile.set_boolean ("Exposure", "Auto", toneCurve.autoexp); @@ -492,7 +493,7 @@ int ProcParams::load (Glib::ustring fname) { // load tonecurve: -version = 200; +version = TAGDISTANCE; if (keyFile.has_group ("Version")) { if (keyFile.has_key ("Version", "Version")) version = keyFile.get_integer ("Version", "Version"); } diff --git a/rtgui/options.cc b/rtgui/options.cc index 9e3bd43b6..0294e59b3 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -1,511 +1,512 @@ -/* - * This file is part of RawTherapee. - * - * Copyright (c) 2004-2010 Gabor Horvath - * - * RawTherapee is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * RawTherapee is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with RawTherapee. If not, see . - */ -#include -#include -#include -#include -#include -#include -#include -#include - -Options options; -Glib::ustring versionString = "v3.0 alpha 1"; -Glib::ustring paramFileExtension = ".pp3"; - -Options::Options () { - - setDefaults (); -} - -const char *DefaultLanguage = "English (US)"; - -void Options::setDefaults () { - - font = "sans, 10"; - windowWidth = 900; - windowHeight = 560; - windowMaximized = false; - firstRun = true; - savesParamsAtExit = true; - saveFormat.format = "jpg"; - saveFormat.jpegQuality = 100; - saveFormat.pngCompression = 6; - saveFormat.pngBits = 8; - saveFormat.tiffBits = 8; - saveFormat.tiffUncompressed = true; - saveFormat.saveParams = false; - savePathTemplate = "%p1/converted/%f"; - savePathFolder = ""; - saveUsePathTemplate = true; - defProfRaw = "default"; - defProfImg = "neutral"; - dateFormat = "%y-%m-%d"; - startupDir = 1; - startupPath = ""; - profilePath = "profiles"; - dirBrowserWidth = 200; - dirBrowserHeight = 150; - toolPanelWidth = 300; - browserToolPanelWidth = 300; - browserToolPanelHeight = 300; - historyPanelWidth = 150; - lastScale = 4; - lastCropSize = 1; - fbOnlyRaw = false; - fbShowDateTime = true; - fbShowBasicExif = true; - fbShowHidden = false; - fbArrangement = 0; - multiUser = false; - version = 290; - thumbSize = 80; - thumbSizeTab = 80; - showHistory = true; - showFilePanelState = 0; - showInfo = false; - cropDPI = 300; - showClippedHighlights = false; - showClippedShadows = false; - highlightThreshold = 254; - shadowThreshold = 0; - bgcolor = 0; - blinkClipped = true; - language = DefaultLanguage; - lastSaveAsPath = ""; - theme = ""; - useSystemTheme = false; - maxThumbnailHeight = 400; - maxCacheEntries = 10000; - thumbnailFormat = FT_Custom16; - thumbInterp = 1; - autoSuffix = false; - saveParamsFile = false; - saveParamsCache = true; - paramsLoadLocation = PLL_Cache; - procQueueEnabled = true; - gimpDir = "C:\\Program Files\\GIMP-2.0"; - psDir = "C:\\Program Files\\Adobe\\Adobe Photoshop CS3"; - customEditorProg = "start"; - editorToSendTo = 1; - liveThumbnails = true; - tpOpen.clear (); - //crvOpen.clear (); - parseExtensions.clear (); - parseExtensionsEnabled.clear (); - renameUseTemplates = false; - renameTemplates.clear (); - thumbnailZoomRatios.clear (); - thumbnailZoomRatios.push_back (0.2); - thumbnailZoomRatios.push_back (0.3); - thumbnailZoomRatios.push_back (0.45); - thumbnailZoomRatios.push_back (0.6); - thumbnailZoomRatios.push_back (0.8); - thumbnailZoomRatios.push_back (1.0); - overlayedFileNames = true; - showFileNames = true; - tabbedUI = false; - multiDisplayMode = 0; - - cutOverlayBrush = std::vector (4); - cutOverlayBrush[3] = 0.667; - - int babehav[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}; - baBehav = std::vector (babehav, babehav+ADDSET_PARAM_NUM); - - rtSettings.dualThreadEnabled = true; - rtSettings.darkFramesPath = ""; -#ifdef WIN32 - rtSettings.iccDirectory = "C:/WINDOWS/System32/spool/drivers/color"; -#else - rtSettings.iccDirectory = "/usr/share/color/icc"; -#endif - rtSettings.colorimetricIntent = 1; - rtSettings.monitorProfile = ""; - rtSettings.verbose = false; -} - -Options* Options::copyFrom (Options* other) { - - *this = *other; - return this; -} - -int Options::readFromFile (Glib::ustring fname) { - - rtengine::SafeKeyFile keyFile; - - try { - if( !Glib::file_test(fname,Glib::FILE_TEST_EXISTS)) - return 1; - if (!keyFile.load_from_file (fname)) - return 1; - } - catch (Glib::FileError) { - return 1; - } - - setDefaults (); - -if (keyFile.has_group ("General")) { - if (keyFile.has_key ("General", "TabbedEditor")) tabbedUI= keyFile.get_boolean ("General", "TabbedEditor"); - if (keyFile.has_key ("General", "StartupDirectory") && keyFile.get_string ("General", "StartupDirectory") == "home") - startupDir = STARTUPDIR_HOME; - else if (keyFile.has_key ("General", "StartupDirectory") && keyFile.get_string ("General", "StartupDirectory") == "current") - startupDir = STARTUPDIR_CURRENT; - else if (keyFile.has_key ("General", "StartupDirectory") && keyFile.get_string ("General", "StartupDirectory") == "last") - startupDir = STARTUPDIR_LAST; - else - startupDir = STARTUPDIR_CUSTOM; - - if (keyFile.has_key ("General", "StartupPath")) startupPath = keyFile.get_string ("General", "StartupPath"); - if (keyFile.has_key ("General", "DateFormat")) dateFormat = keyFile.get_string ("General", "DateFormat"); - if (keyFile.has_key ("General", "AdjusterDelay")) Adjuster::delay = keyFile.get_integer ("General", "AdjusterDelay"); - if (keyFile.has_key ("General", "StoreLastProfile")) savesParamsAtExit = keyFile.get_boolean ("General", "StoreLastProfile"); - if (keyFile.has_key ("General", "DualProcSupport")) rtSettings.dualThreadEnabled = keyFile.get_boolean ("General", "DualProcSupport"); - if (keyFile.has_key ("General", "MultiUser")) multiUser = keyFile.get_boolean ("General", "MultiUser"); -// if (keyFile.has_key ("General", "Version")) version = keyFile.get_integer ("General", "Version"); - if (keyFile.has_key ("General", "Language")) language = keyFile.get_string ("General", "Language"); - if (keyFile.has_key ("General", "Theme")) theme = keyFile.get_string ("General", "Theme"); - if (keyFile.has_key ("General", "UseSystemTheme")) useSystemTheme = keyFile.get_boolean ("General", "UseSystemTheme"); - if (keyFile.has_key ("General", "FirstRun")) firstRun = keyFile.get_boolean ("General", "FirstRun"); - if( keyFile.has_key ("General", "DarkFramesPath")) rtSettings.darkFramesPath = keyFile.get_string("General", "DarkFramesPath"); - if( keyFile.has_key ("General", "Verbose")) rtSettings.verbose = keyFile.get_boolean ( "General", "Verbose"); -} - -if (keyFile.has_group ("External Editor")) { - if (keyFile.has_key ("External Editor", "EditorKind")) editorToSendTo = keyFile.get_integer ("External Editor", "EditorKind"); - if (keyFile.has_key ("External Editor", "GimpDir")) gimpDir = keyFile.get_string ("External Editor", "GimpDir"); - if (keyFile.has_key ("External Editor", "PhotoshopDir")) psDir = keyFile.get_string ("External Editor", "PhotoshopDir"); - if (keyFile.has_key ("External Editor", "CustomEditor")) customEditorProg = keyFile.get_string ("External Editor", "CustomEditor"); -} - -if (keyFile.has_group ("Output")) { - if (keyFile.has_key ("Output", "Format")) saveFormat.format = keyFile.get_string ("Output", "Format"); - if (keyFile.has_key ("Output", "JpegQuality")) saveFormat.jpegQuality = keyFile.get_integer ("Output", "JpegQuality"); - if (keyFile.has_key ("Output", "PngCompression")) saveFormat.pngCompression = keyFile.get_integer ("Output", "PngCompression"); - if (keyFile.has_key ("Output", "PngBps")) saveFormat.pngBits = keyFile.get_integer ("Output", "PngBps"); - if (keyFile.has_key ("Output", "TiffBps")) saveFormat.tiffBits = keyFile.get_integer ("Output", "TiffBps"); - if (keyFile.has_key ("Output", "TiffUncompressed")) saveFormat.tiffUncompressed= keyFile.get_boolean ("Output", "TiffUncompressed"); - if (keyFile.has_key ("Output", "SaveProcParams")) saveFormat.saveParams = keyFile.get_boolean ("Output", "SaveProcParams"); - if (keyFile.has_key ("Output", "Path")) savePathTemplate = keyFile.get_string ("Output", "Path"); - if (keyFile.has_key ("Output", "PathTemplate")) savePathTemplate = keyFile.get_string ("Output", "PathTemplate"); - if (keyFile.has_key ("Output", "PathFolder")) savePathFolder = keyFile.get_string ("Output", "PathFolder"); - if (keyFile.has_key ("Output", "AutoSuffix")) autoSuffix = keyFile.get_boolean("Output", "AutoSuffix"); - if (keyFile.has_key ("Output", "UsePathTemplate")) saveUsePathTemplate = keyFile.get_boolean("Output", "UsePathTemplate"); - if (keyFile.has_key ("Output", "LastSaveAsPath")) lastSaveAsPath = keyFile.get_string ("Output", "LastSaveAsPath"); - if (keyFile.has_key ("Output", "OverwriteOutputFile")) overwriteOutputFile = keyFile.get_boolean("Output", "OverwriteOutputFile"); -} - -if (keyFile.has_group ("Profiles")) { - if (keyFile.has_key ("Profiles", "Directory")) profilePath = keyFile.get_string ("Profiles", "Directory"); - if (keyFile.has_key ("Profiles", "RawDefault")) defProfRaw = keyFile.get_string ("Profiles", "RawDefault"); - if (keyFile.has_key ("Profiles", "ImgDefault")) defProfImg = keyFile.get_string ("Profiles", "ImgDefault"); - if (keyFile.has_key ("Profiles", "SaveParamsWithFile")) saveParamsFile = keyFile.get_boolean ("Profiles", "SaveParamsWithFile"); - if (keyFile.has_key ("Profiles", "SaveParamsToCache")) saveParamsCache = keyFile.get_boolean ("Profiles", "SaveParamsToCache"); - if (keyFile.has_key ("Profiles", "LoadParamsFromLocation")) paramsLoadLocation = (PPLoadLocation)keyFile.get_integer ("Profiles", "LoadParamsFromLocation"); - if (keyFile.has_key ("Profiles", "CustomProfileBuilder")) customProfileBuilder = keyFile.get_string ("Profiles", "CustomProfileBuilder"); -} - -if (keyFile.has_group ("File Browser")) { - if (keyFile.has_key ("File Browser", "ThumbnailSize")) thumbSize = keyFile.get_integer ("File Browser", "ThumbnailSize"); - if (keyFile.has_key ("File Browser", "ThumbnailSizeTab")) thumbSizeTab = keyFile.get_integer ("File Browser", "ThumbnailSizeTab"); - if (keyFile.has_key ("File Browser", "BrowseOnlyRaw")) fbOnlyRaw = keyFile.get_boolean ("File Browser", "BrowseOnlyRaw"); - if (keyFile.has_key ("File Browser", "BrowserShowsDate")) fbShowDateTime = keyFile.get_boolean ("File Browser", "BrowserShowsDate"); - if (keyFile.has_key ("File Browser", "BrowserShowsExif")) fbShowBasicExif = keyFile.get_boolean ("File Browser", "BrowserShowsExif"); - if (keyFile.has_key ("File Browser", "BrowserShowsHidden")) fbShowHidden = keyFile.get_boolean ("File Browser", "BrowserShowsHidden"); - if (keyFile.has_key ("File Browser", "MaxPreviewHeight")) maxThumbnailHeight = keyFile.get_integer ("File Browser", "MaxPreviewHeight"); - if (keyFile.has_key ("File Browser", "MaxCacheEntries")) maxCacheEntries = keyFile.get_integer ("File Browser", "MaxCacheEntries"); - if (keyFile.has_key ("File Browser", "ThumbnailFormat")) thumbnailFormat = (ThFileType)keyFile.get_integer ("File Browser", "ThumbnailFormat"); - if (keyFile.has_key ("File Browser", "ParseExtensions")) parseExtensions = keyFile.get_string_list ("File Browser", "ParseExtensions"); - if (keyFile.has_key ("File Browser", "ParseExtensionsEnabled")) parseExtensionsEnabled = keyFile.get_integer_list ("File Browser", "ParseExtensionsEnabled"); - if (keyFile.has_key ("File Browser", "ThumbnailArrangement")) fbArrangement = keyFile.get_integer ("File Browser", "ThumbnailArrangement"); - if (keyFile.has_key ("File Browser", "ThumbnailInterpolation")) thumbInterp = keyFile.get_integer ("File Browser", "ThumbnailInterpolation"); - if (keyFile.has_key ("File Browser", "LiveThumbnails")) liveThumbnails = keyFile.get_boolean ("File Browser", "LiveThumbnails"); - if (keyFile.has_key ("File Browser", "FavoriteDirs")) favoriteDirs = keyFile.get_string_list ("File Browser", "FavoriteDirs"); - if (keyFile.has_key ("File Browser", "RenameTemplates")) renameTemplates = keyFile.get_string_list ("File Browser", "RenameTemplates"); - if (keyFile.has_key ("File Browser", "RenameUseTemplates")) renameUseTemplates = keyFile.get_boolean ("File Browser", "RenameUseTemplates"); - if (keyFile.has_key ("File Browser", "ThumbnailZoomRatios"))thumbnailZoomRatios= keyFile.get_double_list ("File Browser", "ThumbnailZoomRatios"); - if (keyFile.has_key ("File Browser", "OverlayedFileNames")) overlayedFileNames = keyFile.get_boolean ("File Browser", "OverlayedFileNames"); - if (keyFile.has_key ("File Browser", "ShowFileNames")) showFileNames = keyFile.get_boolean ("File Browser", "ShowFileNames"); - if (keyFile.has_key ("File Browser", "InternalThumbIfUntouched")) internalThumbIfUntouched = keyFile.get_boolean ("File Browser", "InternalThumbIfUntouched"); -} - -if (keyFile.has_group ("Clipping Indication")) { - if (keyFile.has_key ("Clipping Indication", "HighlightThreshold")) highlightThreshold= keyFile.get_integer ("Clipping Indication", "HighlightThreshold"); - if (keyFile.has_key ("Clipping Indication", "ShadowThreshold")) shadowThreshold = keyFile.get_integer ("Clipping Indication", "ShadowThreshold"); - if (keyFile.has_key ("Clipping Indication", "BlinkClipped")) blinkClipped = keyFile.get_boolean ("Clipping Indication", "BlinkClipped"); -} - -if (keyFile.has_group ("GUI")) { - if (keyFile.has_key ("GUI", "Font")) font = keyFile.get_string ("GUI", "Font"); - if (keyFile.has_key ("GUI", "WindowWidth")) windowWidth = keyFile.get_integer ("GUI", "WindowWidth"); - if (keyFile.has_key ("GUI", "WindowHeight")) windowHeight = keyFile.get_integer ("GUI", "WindowHeight"); - if (keyFile.has_key ("GUI", "WindowMaximized")) windowMaximized = keyFile.get_boolean ("GUI", "WindowMaximized"); - if (keyFile.has_key ("GUI", "DirBrowserWidth")) dirBrowserWidth = keyFile.get_integer ("GUI", "DirBrowserWidth"); - if (keyFile.has_key ("GUI", "DirBrowserHeight")) dirBrowserHeight = keyFile.get_integer ("GUI", "DirBrowserHeight"); - if (keyFile.has_key ("GUI", "SaveAsDialogWidth")) saveAsDialogWidth = keyFile.get_integer ("GUI", "SaveAsDialogWidth"); - if (keyFile.has_key ("GUI", "SaveAsDialogHeight")) saveAsDialogHeight = keyFile.get_integer ("GUI", "SaveAsDialogHeight"); - if (keyFile.has_key ("GUI", "ToolPanelWidth")) toolPanelWidth = keyFile.get_integer ("GUI", "ToolPanelWidth"); - if (keyFile.has_key ("GUI", "BrowserToolPanelWidth"))browserToolPanelWidth = keyFile.get_integer ("GUI", "BrowserToolPanelWidth"); - if (keyFile.has_key ("GUI", "BrowserToolPanelHeight"))browserToolPanelHeight = keyFile.get_integer ("GUI", "BrowserToolPanelHeight"); - if (keyFile.has_key ("GUI", "HistoryPanelWidth")) historyPanelWidth = keyFile.get_integer ("GUI", "HistoryPanelWidth"); - if (keyFile.has_key ("GUI", "LastPreviewScale")) lastScale = keyFile.get_integer ("GUI", "LastPreviewScale"); - if (keyFile.has_key ("GUI", "LastCropSize")) lastCropSize = keyFile.get_integer ("GUI", "LastCropSize"); - if (keyFile.has_key ("GUI", "ShowHistory")) showHistory = keyFile.get_boolean ("GUI", "ShowHistory"); - if (keyFile.has_key ("GUI", "ShowFilePanelState")) showFilePanelState= keyFile.get_integer ("GUI", "ShowFilePanelState"); - if (keyFile.has_key ("GUI", "ShowInfo")) showInfo = keyFile.get_boolean ("GUI", "ShowInfo"); - if (keyFile.has_key ("GUI", "MainNBVertical")) mainNBVertical = keyFile.get_boolean ("GUI", "MainNBVertical"); - if (keyFile.has_key ("GUI", "ShowClippedHighlights"))showClippedHighlights = keyFile.get_boolean ("GUI", "ShowClippedHighlights"); - if (keyFile.has_key ("GUI", "ShowClippedShadows")) showClippedShadows= keyFile.get_boolean ("GUI", "ShowClippedShadows"); - if (keyFile.has_key ("GUI", "FrameColor")) bgcolor = keyFile.get_integer ("GUI", "FrameColor"); - if (keyFile.has_key ("GUI", "ProcessingQueueEnbled"))procQueueEnabled = keyFile.get_boolean ("GUI", "ProcessingQueueEnbled"); - if (keyFile.has_key ("GUI", "ToolPanelsExpanded")) tpOpen = keyFile.get_integer_list ("GUI", "ToolPanelsExpanded"); - if (keyFile.has_key ("GUI", "MultiDisplayMode")) multiDisplayMode = keyFile.get_integer ("GUI", "MultiDisplayMode"); - //if (keyFile.has_key ("GUI", "CurvePanelsExpanded")) crvOpen = keyFile.get_integer_list ("GUI", "CurvePanelsExpanded"); - if (keyFile.has_key ("GUI", "CutOverlayBrush")) cutOverlayBrush = keyFile.get_double_list ("GUI", "CutOverlayBrush"); -} - - - -if (keyFile.has_group ("Crop Settings")) { - if (keyFile.has_key ("Crop Settings", "DPI")) cropDPI = keyFile.get_integer ("Crop Settings", "DPI"); -} - -if (keyFile.has_group ("Color Management")) { - if (keyFile.has_key ("Color Management", "ICCDirectory")) rtSettings.iccDirectory = keyFile.get_string ("Color Management", "ICCDirectory"); - if (keyFile.has_key ("Color Management", "MonitorProfile")) rtSettings.monitorProfile = keyFile.get_string ("Color Management", "MonitorProfile"); - if (keyFile.has_key ("Color Management", "Intent")) rtSettings.colorimetricIntent = keyFile.get_integer("Color Management", "Intent"); -} - -if (keyFile.has_group ("Batch Processing")) { - if (keyFile.has_key ("Batch Processing", "AdjusterBehavior")) baBehav = keyFile.get_integer_list ("Batch Processing", "AdjusterBehavior"); -} - - return 0; -} - -int Options::saveToFile (Glib::ustring fname) { - - rtengine::SafeKeyFile keyFile; - keyFile.set_boolean ("General", "TabbedEditor", tabbedUI); - - keyFile.set_boolean ("General", "StoreLastProfile", savesParamsAtExit); - if (startupDir==STARTUPDIR_HOME) - keyFile.set_string ("General", "StartupDirectory", "home"); - else if (startupDir==STARTUPDIR_CURRENT) - keyFile.set_string ("General", "StartupDirectory", "current"); - else if (startupDir==STARTUPDIR_CUSTOM) - keyFile.set_string ("General", "StartupDirectory", "custom"); - else if (startupDir==STARTUPDIR_LAST) - keyFile.set_string ("General", "StartupDirectory", "last"); - keyFile.set_string ("General", "StartupPath", startupPath); - keyFile.set_string ("General", "DateFormat", dateFormat); - keyFile.set_integer ("General", "AdjusterDelay", Adjuster::delay); - keyFile.set_boolean ("General", "DualProcSupport", rtSettings.dualThreadEnabled); - keyFile.set_boolean ("General", "MultiUser", multiUser); - keyFile.set_string ("General", "Language", language); - keyFile.set_string ("General", "Theme", theme); - keyFile.set_boolean ("General", "UseSystemTheme", useSystemTheme); - keyFile.set_integer ("General", "Version", 290); - keyFile.set_boolean ("General", "FirstRun", firstRun); - keyFile.set_string ("General", "DarkFramesPath", rtSettings.darkFramesPath); - keyFile.set_boolean ("General", "Verbose", rtSettings.verbose); - - keyFile.set_integer ("External Editor", "EditorKind", editorToSendTo); - keyFile.set_string ("External Editor", "GimpDir", gimpDir); - keyFile.set_string ("External Editor", "PhotoshopDir", psDir); - keyFile.set_string ("External Editor", "CustomEditor", customEditorProg); - - - keyFile.set_boolean ("File Browser", "BrowseOnlyRaw", fbOnlyRaw); - keyFile.set_boolean ("File Browser", "BrowserShowsDate", fbShowDateTime); - keyFile.set_boolean ("File Browser", "BrowserShowsExif", fbShowBasicExif); - keyFile.set_boolean ("File Browser", "BrowserShowsHidden", fbShowHidden); - keyFile.set_integer ("File Browser", "ThumbnailSize", thumbSize); - keyFile.set_integer ("File Browser", "ThumbnailSizeTab", thumbSizeTab); - keyFile.set_integer ("File Browser", "MaxPreviewHeight", maxThumbnailHeight); - keyFile.set_integer ("File Browser", "MaxCacheEntries", maxCacheEntries); - keyFile.set_integer ("File Browser", "ThumbnailFormat", (int)thumbnailFormat); - Glib::ArrayHandle pext = parseExtensions; - keyFile.set_string_list ("File Browser", "ParseExtensions", pext); - Glib::ArrayHandle pextena = parseExtensionsEnabled; - keyFile.set_integer_list ("File Browser", "ParseExtensionsEnabled", pextena); - keyFile.set_integer ("File Browser", "ThumbnailArrangement", fbArrangement); - keyFile.set_integer ("File Browser", "ThumbnailInterpolation", thumbInterp); - keyFile.set_boolean ("File Browser", "LiveThumbnails", liveThumbnails); - Glib::ArrayHandle pfav = favoriteDirs; - keyFile.set_string_list ("File Browser", "FavoriteDirs", pfav); - Glib::ArrayHandle pren = renameTemplates; - keyFile.set_string_list ("File Browser", "RenameTemplates", pren); - keyFile.set_boolean ("File Browser", "RenameUseTemplates", renameUseTemplates); - Glib::ArrayHandle ptzoom = thumbnailZoomRatios; - keyFile.set_double_list ("File Browser", "ThumbnailZoomRatios", ptzoom); - keyFile.set_boolean ("File Browser", "OverlayedFileNames", overlayedFileNames); - keyFile.set_boolean ("File Browser", "ShowFileNames", showFileNames ); - keyFile.set_boolean ("File Browser", "InternalThumbIfUntouched", internalThumbIfUntouched ); - - keyFile.set_integer ("Clipping Indication", "HighlightThreshold", highlightThreshold); - keyFile.set_integer ("Clipping Indication", "ShadowThreshold", shadowThreshold); - keyFile.set_boolean ("Clipping Indication", "BlinkClipped", blinkClipped); - - keyFile.set_string ("Output", "Format", saveFormat.format); - keyFile.set_integer ("Output", "JpegQuality", saveFormat.jpegQuality); - keyFile.set_integer ("Output", "PngCompression", saveFormat.pngCompression); - keyFile.set_integer ("Output", "PngBps", saveFormat.pngBits); - keyFile.set_integer ("Output", "TiffBps", saveFormat.tiffBits); - keyFile.set_boolean ("Output", "TiffUncompressed", saveFormat.tiffUncompressed); - keyFile.set_boolean ("Output", "SaveProcParams", saveFormat.saveParams); - keyFile.set_string ("Output", "PathTemplate", savePathTemplate); - keyFile.set_string ("Output", "PathFolder", savePathFolder); - keyFile.set_boolean ("Output", "AutoSuffix", autoSuffix); - keyFile.set_boolean ("Output", "UsePathTemplate", saveUsePathTemplate); - keyFile.set_string ("Output", "LastSaveAsPath", lastSaveAsPath); - keyFile.set_boolean ("Output", "OverwriteOutputFile", overwriteOutputFile); - - keyFile.set_string ("Profiles", "Directory", profilePath); - keyFile.set_string ("Profiles", "RawDefault", defProfRaw); - keyFile.set_string ("Profiles", "ImgDefault", defProfImg); - keyFile.set_boolean ("Profiles", "SaveParamsWithFile", saveParamsFile); - keyFile.set_boolean ("Profiles", "SaveParamsToCache", saveParamsCache); - keyFile.set_integer ("Profiles", "LoadParamsFromLocation", paramsLoadLocation); - keyFile.set_string ("Profiles", "CustomProfileBuilder", customProfileBuilder); - - keyFile.set_string ("GUI", "Font", font); - keyFile.set_integer ("GUI", "WindowWidth", windowWidth); - keyFile.set_integer ("GUI", "WindowHeight", windowHeight); - keyFile.set_boolean ("GUI", "WindowMaximized", windowMaximized); - keyFile.set_integer ("GUI", "DirBrowserWidth", dirBrowserWidth); - keyFile.set_integer ("GUI", "DirBrowserHeight", dirBrowserHeight); - keyFile.set_integer ("GUI", "SaveAsDialogWidth", saveAsDialogWidth); - keyFile.set_integer ("GUI", "SaveAsDialogHeight", saveAsDialogHeight); - keyFile.set_integer ("GUI", "ToolPanelWidth", toolPanelWidth); - keyFile.set_integer ("GUI", "BrowserToolPanelWidth", browserToolPanelWidth); - keyFile.set_integer ("GUI", "BrowserToolPanelHeight", browserToolPanelHeight); - keyFile.set_integer ("GUI", "HistoryPanelWidth", historyPanelWidth); - keyFile.set_integer ("GUI", "LastPreviewScale", lastScale); - keyFile.set_integer ("GUI", "LastCropSize", lastCropSize); - keyFile.set_boolean ("GUI", "ShowHistory", showHistory); - keyFile.set_integer ("GUI", "ShowFilePanelState", showFilePanelState); - keyFile.set_boolean ("GUI", "ShowInfo", showInfo); - keyFile.set_boolean ("GUI", "MainNBVertical", mainNBVertical); - keyFile.set_boolean ("GUI", "ShowClippedHighlights", showClippedHighlights); - keyFile.set_boolean ("GUI", "ShowClippedShadows", showClippedShadows); - keyFile.set_integer ("GUI", "FrameColor", bgcolor); - keyFile.set_boolean ("GUI", "ProcessingQueueEnbled", procQueueEnabled); - Glib::ArrayHandle tpopen = tpOpen; - keyFile.set_integer_list ("GUI", "ToolPanelsExpanded", tpopen); - keyFile.set_integer ("GUI", "MultiDisplayMode", multiDisplayMode); - keyFile.set_double_list ("GUI", "CutOverlayBrush", cutOverlayBrush); - - //Glib::ArrayHandle crvopen = crvOpen; - //keyFile.set_integer_list ("GUI", "CurvePanelsExpanded", crvopen); - - keyFile.set_integer ("Crop Settings", "DPI", cropDPI); - - keyFile.set_string ("Color Management", "ICCDirectory", rtSettings.iccDirectory); - keyFile.set_string ("Color Management", "MonitorProfile", rtSettings.monitorProfile); - keyFile.set_integer ("Color Management", "Intent", rtSettings.colorimetricIntent); - - Glib::ArrayHandle bab = baBehav; - keyFile.set_integer_list ("Batch Processing", "AdjusterBehavior", bab); - - - FILE *f = g_fopen (fname.c_str(), "wt"); - if (f==NULL) - return 1; - else { - fprintf (f, "%s", keyFile.to_data().c_str()); - fclose (f); - return 0; - } -} - -Glib::ustring Options::rtdir; -Glib::ustring Options::cacheBaseDir; - -void Options::load () { - - rtdir = Glib::ustring(g_get_user_config_dir ())+"/RawTherapeeAlpha"; - options.readFromFile (argv0+"/options"); - cacheBaseDir = argv0 + "/cache"; - if (options.multiUser) { - int r = options.readFromFile (rtdir + "/options"); - if (r && !g_mkdir_with_parents (rtdir.c_str(), 511)) { - Glib::ustring profdir = rtdir + "/profiles"; - g_mkdir_with_parents (profdir.c_str(), 511); - options.saveToFile (rtdir + "/options"); - } -#ifdef _WIN32 - cacheBaseDir = rtdir + "/cache"; -#else - cacheBaseDir = Glib::ustring(g_get_user_cache_dir()) + "/RawTherapee"; -#endif - } - - //We handle languages using a hierarchy of translations. The top of the hierarchy is default. This includes a default translation for all items - // (most likely using simple English). The next level is the language: for instance, English, French, Chinese, etc. This file should contain a - // generic translation for all items which differ from default. Finally there is the locale. This is region-specific items which differ from the - // language file. These files must be name in the format (), where Language is the name of the language which it inherits from, - // and LC is the locale code. Some examples of this would be English (US) (American English), French (FR) (Franch French), French (CA) (Canadian - // French), etc. - // - // Each level will only contain the differences between itself and its parent translation. For instance, English (UK) or English (CA) may - // include the translation "HISTORY_MSG_34;Avoid Colour Clipping" where English would translate it as "HISTORY_MSG_34;Avoid Color Clipping" (note - // the difference in the spelling of 'colour'). - // - // It is important that when naming the translation files, that you stick to the format or (). We depend on that to figure - // out which are the parent translations. Furthermore, there must be a file for each locale () -- you cannot have - // 'French (CA)' unless there is a file 'French'. - - Glib::ustring defaultTranslation = argv0 + "/languages/default"; - Glib::ustring languageTranslation = ""; - Glib::ustring localeTranslation = ""; - - if (!options.language.empty()){ - std::vector langPortions = Glib::Regex::split_simple(" ", options.language); - if (langPortions.size() >= 1){ - languageTranslation = argv0 + "/languages/" + langPortions.at(0); - } - if (langPortions.size() >= 2){ - localeTranslation = argv0 + "/languages/" + options.language; - } - } - - langMgr.load(localeTranslation, new MultiLangMgr(languageTranslation, new MultiLangMgr(defaultTranslation))); - - rtengine::init (&options.rtSettings); -} - -void Options::save () { - - if (options.multiUser==false) { - options.saveToFile (argv0+"/options"); - } - else { - options.saveToFile (rtdir + "/options"); - } -} - -bool Options::is_extention_enabled (Glib::ustring ext) { - for (int j=0; j<(int)parseExtensions.size(); j++) - if (parseExtensions[j].casefold() == ext.casefold()) - return j>=(int)parseExtensionsEnabled.size() || parseExtensionsEnabled[j]; - return false; -} +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2004-2010 Gabor Horvath + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +Options options; +Glib::ustring versionString = VERSION; +Glib::ustring paramFileExtension = ".pp3"; + +Options::Options () { + + setDefaults (); +} + +const char *DefaultLanguage = "English (US)"; + +void Options::setDefaults () { + + font = "sans, 10"; + windowWidth = 900; + windowHeight = 560; + windowMaximized = false; + firstRun = true; + savesParamsAtExit = true; + saveFormat.format = "jpg"; + saveFormat.jpegQuality = 100; + saveFormat.pngCompression = 6; + saveFormat.pngBits = 8; + saveFormat.tiffBits = 8; + saveFormat.tiffUncompressed = true; + saveFormat.saveParams = false; + savePathTemplate = "%p1/converted/%f"; + savePathFolder = ""; + saveUsePathTemplate = true; + defProfRaw = "default"; + defProfImg = "neutral"; + dateFormat = "%y-%m-%d"; + startupDir = 1; + startupPath = ""; + profilePath = "profiles"; + dirBrowserWidth = 200; + dirBrowserHeight = 150; + toolPanelWidth = 300; + browserToolPanelWidth = 300; + browserToolPanelHeight = 300; + historyPanelWidth = 150; + lastScale = 4; + lastCropSize = 1; + fbOnlyRaw = false; + fbShowDateTime = true; + fbShowBasicExif = true; + fbShowHidden = false; + fbArrangement = 0; + multiUser = false; + version = TAGDISTANCE; + thumbSize = 80; + thumbSizeTab = 80; + showHistory = true; + showFilePanelState = 0; + showInfo = false; + cropDPI = 300; + showClippedHighlights = false; + showClippedShadows = false; + highlightThreshold = 254; + shadowThreshold = 0; + bgcolor = 0; + blinkClipped = true; + language = DefaultLanguage; + lastSaveAsPath = ""; + theme = ""; + useSystemTheme = false; + maxThumbnailHeight = 400; + maxCacheEntries = 10000; + thumbnailFormat = FT_Custom16; + thumbInterp = 1; + autoSuffix = false; + saveParamsFile = false; + saveParamsCache = true; + paramsLoadLocation = PLL_Cache; + procQueueEnabled = true; + gimpDir = "C:\\Program Files\\GIMP-2.0"; + psDir = "C:\\Program Files\\Adobe\\Adobe Photoshop CS3"; + customEditorProg = "start"; + editorToSendTo = 1; + liveThumbnails = true; + tpOpen.clear (); + //crvOpen.clear (); + parseExtensions.clear (); + parseExtensionsEnabled.clear (); + renameUseTemplates = false; + renameTemplates.clear (); + thumbnailZoomRatios.clear (); + thumbnailZoomRatios.push_back (0.2); + thumbnailZoomRatios.push_back (0.3); + thumbnailZoomRatios.push_back (0.45); + thumbnailZoomRatios.push_back (0.6); + thumbnailZoomRatios.push_back (0.8); + thumbnailZoomRatios.push_back (1.0); + overlayedFileNames = true; + showFileNames = true; + tabbedUI = false; + multiDisplayMode = 0; + + cutOverlayBrush = std::vector (4); + cutOverlayBrush[3] = 0.667; + + int babehav[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}; + baBehav = std::vector (babehav, babehav+ADDSET_PARAM_NUM); + + rtSettings.dualThreadEnabled = true; + rtSettings.darkFramesPath = ""; +#ifdef WIN32 + rtSettings.iccDirectory = "C:/WINDOWS/System32/spool/drivers/color"; +#else + rtSettings.iccDirectory = "/usr/share/color/icc"; +#endif + rtSettings.colorimetricIntent = 1; + rtSettings.monitorProfile = ""; + rtSettings.verbose = false; +} + +Options* Options::copyFrom (Options* other) { + + *this = *other; + return this; +} + +int Options::readFromFile (Glib::ustring fname) { + + rtengine::SafeKeyFile keyFile; + + try { + if( !Glib::file_test(fname,Glib::FILE_TEST_EXISTS)) + return 1; + if (!keyFile.load_from_file (fname)) + return 1; + } + catch (Glib::FileError) { + return 1; + } + + setDefaults (); + +if (keyFile.has_group ("General")) { + if (keyFile.has_key ("General", "TabbedEditor")) tabbedUI= keyFile.get_boolean ("General", "TabbedEditor"); + if (keyFile.has_key ("General", "StartupDirectory") && keyFile.get_string ("General", "StartupDirectory") == "home") + startupDir = STARTUPDIR_HOME; + else if (keyFile.has_key ("General", "StartupDirectory") && keyFile.get_string ("General", "StartupDirectory") == "current") + startupDir = STARTUPDIR_CURRENT; + else if (keyFile.has_key ("General", "StartupDirectory") && keyFile.get_string ("General", "StartupDirectory") == "last") + startupDir = STARTUPDIR_LAST; + else + startupDir = STARTUPDIR_CUSTOM; + + if (keyFile.has_key ("General", "StartupPath")) startupPath = keyFile.get_string ("General", "StartupPath"); + if (keyFile.has_key ("General", "DateFormat")) dateFormat = keyFile.get_string ("General", "DateFormat"); + if (keyFile.has_key ("General", "AdjusterDelay")) Adjuster::delay = keyFile.get_integer ("General", "AdjusterDelay"); + if (keyFile.has_key ("General", "StoreLastProfile")) savesParamsAtExit = keyFile.get_boolean ("General", "StoreLastProfile"); + if (keyFile.has_key ("General", "DualProcSupport")) rtSettings.dualThreadEnabled = keyFile.get_boolean ("General", "DualProcSupport"); + if (keyFile.has_key ("General", "MultiUser")) multiUser = keyFile.get_boolean ("General", "MultiUser"); +// if (keyFile.has_key ("General", "Version")) version = keyFile.get_integer ("General", "Version"); + if (keyFile.has_key ("General", "Language")) language = keyFile.get_string ("General", "Language"); + if (keyFile.has_key ("General", "Theme")) theme = keyFile.get_string ("General", "Theme"); + if (keyFile.has_key ("General", "UseSystemTheme")) useSystemTheme = keyFile.get_boolean ("General", "UseSystemTheme"); + if (keyFile.has_key ("General", "FirstRun")) firstRun = keyFile.get_boolean ("General", "FirstRun"); + if( keyFile.has_key ("General", "DarkFramesPath")) rtSettings.darkFramesPath = keyFile.get_string("General", "DarkFramesPath"); + if( keyFile.has_key ("General", "Verbose")) rtSettings.verbose = keyFile.get_boolean ( "General", "Verbose"); +} + +if (keyFile.has_group ("External Editor")) { + if (keyFile.has_key ("External Editor", "EditorKind")) editorToSendTo = keyFile.get_integer ("External Editor", "EditorKind"); + if (keyFile.has_key ("External Editor", "GimpDir")) gimpDir = keyFile.get_string ("External Editor", "GimpDir"); + if (keyFile.has_key ("External Editor", "PhotoshopDir")) psDir = keyFile.get_string ("External Editor", "PhotoshopDir"); + if (keyFile.has_key ("External Editor", "CustomEditor")) customEditorProg = keyFile.get_string ("External Editor", "CustomEditor"); +} + +if (keyFile.has_group ("Output")) { + if (keyFile.has_key ("Output", "Format")) saveFormat.format = keyFile.get_string ("Output", "Format"); + if (keyFile.has_key ("Output", "JpegQuality")) saveFormat.jpegQuality = keyFile.get_integer ("Output", "JpegQuality"); + if (keyFile.has_key ("Output", "PngCompression")) saveFormat.pngCompression = keyFile.get_integer ("Output", "PngCompression"); + if (keyFile.has_key ("Output", "PngBps")) saveFormat.pngBits = keyFile.get_integer ("Output", "PngBps"); + if (keyFile.has_key ("Output", "TiffBps")) saveFormat.tiffBits = keyFile.get_integer ("Output", "TiffBps"); + if (keyFile.has_key ("Output", "TiffUncompressed")) saveFormat.tiffUncompressed= keyFile.get_boolean ("Output", "TiffUncompressed"); + if (keyFile.has_key ("Output", "SaveProcParams")) saveFormat.saveParams = keyFile.get_boolean ("Output", "SaveProcParams"); + if (keyFile.has_key ("Output", "Path")) savePathTemplate = keyFile.get_string ("Output", "Path"); + if (keyFile.has_key ("Output", "PathTemplate")) savePathTemplate = keyFile.get_string ("Output", "PathTemplate"); + if (keyFile.has_key ("Output", "PathFolder")) savePathFolder = keyFile.get_string ("Output", "PathFolder"); + if (keyFile.has_key ("Output", "AutoSuffix")) autoSuffix = keyFile.get_boolean("Output", "AutoSuffix"); + if (keyFile.has_key ("Output", "UsePathTemplate")) saveUsePathTemplate = keyFile.get_boolean("Output", "UsePathTemplate"); + if (keyFile.has_key ("Output", "LastSaveAsPath")) lastSaveAsPath = keyFile.get_string ("Output", "LastSaveAsPath"); + if (keyFile.has_key ("Output", "OverwriteOutputFile")) overwriteOutputFile = keyFile.get_boolean("Output", "OverwriteOutputFile"); +} + +if (keyFile.has_group ("Profiles")) { + if (keyFile.has_key ("Profiles", "Directory")) profilePath = keyFile.get_string ("Profiles", "Directory"); + if (keyFile.has_key ("Profiles", "RawDefault")) defProfRaw = keyFile.get_string ("Profiles", "RawDefault"); + if (keyFile.has_key ("Profiles", "ImgDefault")) defProfImg = keyFile.get_string ("Profiles", "ImgDefault"); + if (keyFile.has_key ("Profiles", "SaveParamsWithFile")) saveParamsFile = keyFile.get_boolean ("Profiles", "SaveParamsWithFile"); + if (keyFile.has_key ("Profiles", "SaveParamsToCache")) saveParamsCache = keyFile.get_boolean ("Profiles", "SaveParamsToCache"); + if (keyFile.has_key ("Profiles", "LoadParamsFromLocation")) paramsLoadLocation = (PPLoadLocation)keyFile.get_integer ("Profiles", "LoadParamsFromLocation"); + if (keyFile.has_key ("Profiles", "CustomProfileBuilder")) customProfileBuilder = keyFile.get_string ("Profiles", "CustomProfileBuilder"); +} + +if (keyFile.has_group ("File Browser")) { + if (keyFile.has_key ("File Browser", "ThumbnailSize")) thumbSize = keyFile.get_integer ("File Browser", "ThumbnailSize"); + if (keyFile.has_key ("File Browser", "ThumbnailSizeTab")) thumbSizeTab = keyFile.get_integer ("File Browser", "ThumbnailSizeTab"); + if (keyFile.has_key ("File Browser", "BrowseOnlyRaw")) fbOnlyRaw = keyFile.get_boolean ("File Browser", "BrowseOnlyRaw"); + if (keyFile.has_key ("File Browser", "BrowserShowsDate")) fbShowDateTime = keyFile.get_boolean ("File Browser", "BrowserShowsDate"); + if (keyFile.has_key ("File Browser", "BrowserShowsExif")) fbShowBasicExif = keyFile.get_boolean ("File Browser", "BrowserShowsExif"); + if (keyFile.has_key ("File Browser", "BrowserShowsHidden")) fbShowHidden = keyFile.get_boolean ("File Browser", "BrowserShowsHidden"); + if (keyFile.has_key ("File Browser", "MaxPreviewHeight")) maxThumbnailHeight = keyFile.get_integer ("File Browser", "MaxPreviewHeight"); + if (keyFile.has_key ("File Browser", "MaxCacheEntries")) maxCacheEntries = keyFile.get_integer ("File Browser", "MaxCacheEntries"); + if (keyFile.has_key ("File Browser", "ThumbnailFormat")) thumbnailFormat = (ThFileType)keyFile.get_integer ("File Browser", "ThumbnailFormat"); + if (keyFile.has_key ("File Browser", "ParseExtensions")) parseExtensions = keyFile.get_string_list ("File Browser", "ParseExtensions"); + if (keyFile.has_key ("File Browser", "ParseExtensionsEnabled")) parseExtensionsEnabled = keyFile.get_integer_list ("File Browser", "ParseExtensionsEnabled"); + if (keyFile.has_key ("File Browser", "ThumbnailArrangement")) fbArrangement = keyFile.get_integer ("File Browser", "ThumbnailArrangement"); + if (keyFile.has_key ("File Browser", "ThumbnailInterpolation")) thumbInterp = keyFile.get_integer ("File Browser", "ThumbnailInterpolation"); + if (keyFile.has_key ("File Browser", "LiveThumbnails")) liveThumbnails = keyFile.get_boolean ("File Browser", "LiveThumbnails"); + if (keyFile.has_key ("File Browser", "FavoriteDirs")) favoriteDirs = keyFile.get_string_list ("File Browser", "FavoriteDirs"); + if (keyFile.has_key ("File Browser", "RenameTemplates")) renameTemplates = keyFile.get_string_list ("File Browser", "RenameTemplates"); + if (keyFile.has_key ("File Browser", "RenameUseTemplates")) renameUseTemplates = keyFile.get_boolean ("File Browser", "RenameUseTemplates"); + if (keyFile.has_key ("File Browser", "ThumbnailZoomRatios"))thumbnailZoomRatios= keyFile.get_double_list ("File Browser", "ThumbnailZoomRatios"); + if (keyFile.has_key ("File Browser", "OverlayedFileNames")) overlayedFileNames = keyFile.get_boolean ("File Browser", "OverlayedFileNames"); + if (keyFile.has_key ("File Browser", "ShowFileNames")) showFileNames = keyFile.get_boolean ("File Browser", "ShowFileNames"); + if (keyFile.has_key ("File Browser", "InternalThumbIfUntouched")) internalThumbIfUntouched = keyFile.get_boolean ("File Browser", "InternalThumbIfUntouched"); +} + +if (keyFile.has_group ("Clipping Indication")) { + if (keyFile.has_key ("Clipping Indication", "HighlightThreshold")) highlightThreshold= keyFile.get_integer ("Clipping Indication", "HighlightThreshold"); + if (keyFile.has_key ("Clipping Indication", "ShadowThreshold")) shadowThreshold = keyFile.get_integer ("Clipping Indication", "ShadowThreshold"); + if (keyFile.has_key ("Clipping Indication", "BlinkClipped")) blinkClipped = keyFile.get_boolean ("Clipping Indication", "BlinkClipped"); +} + +if (keyFile.has_group ("GUI")) { + if (keyFile.has_key ("GUI", "Font")) font = keyFile.get_string ("GUI", "Font"); + if (keyFile.has_key ("GUI", "WindowWidth")) windowWidth = keyFile.get_integer ("GUI", "WindowWidth"); + if (keyFile.has_key ("GUI", "WindowHeight")) windowHeight = keyFile.get_integer ("GUI", "WindowHeight"); + if (keyFile.has_key ("GUI", "WindowMaximized")) windowMaximized = keyFile.get_boolean ("GUI", "WindowMaximized"); + if (keyFile.has_key ("GUI", "DirBrowserWidth")) dirBrowserWidth = keyFile.get_integer ("GUI", "DirBrowserWidth"); + if (keyFile.has_key ("GUI", "DirBrowserHeight")) dirBrowserHeight = keyFile.get_integer ("GUI", "DirBrowserHeight"); + if (keyFile.has_key ("GUI", "SaveAsDialogWidth")) saveAsDialogWidth = keyFile.get_integer ("GUI", "SaveAsDialogWidth"); + if (keyFile.has_key ("GUI", "SaveAsDialogHeight")) saveAsDialogHeight = keyFile.get_integer ("GUI", "SaveAsDialogHeight"); + if (keyFile.has_key ("GUI", "ToolPanelWidth")) toolPanelWidth = keyFile.get_integer ("GUI", "ToolPanelWidth"); + if (keyFile.has_key ("GUI", "BrowserToolPanelWidth"))browserToolPanelWidth = keyFile.get_integer ("GUI", "BrowserToolPanelWidth"); + if (keyFile.has_key ("GUI", "BrowserToolPanelHeight"))browserToolPanelHeight = keyFile.get_integer ("GUI", "BrowserToolPanelHeight"); + if (keyFile.has_key ("GUI", "HistoryPanelWidth")) historyPanelWidth = keyFile.get_integer ("GUI", "HistoryPanelWidth"); + if (keyFile.has_key ("GUI", "LastPreviewScale")) lastScale = keyFile.get_integer ("GUI", "LastPreviewScale"); + if (keyFile.has_key ("GUI", "LastCropSize")) lastCropSize = keyFile.get_integer ("GUI", "LastCropSize"); + if (keyFile.has_key ("GUI", "ShowHistory")) showHistory = keyFile.get_boolean ("GUI", "ShowHistory"); + if (keyFile.has_key ("GUI", "ShowFilePanelState")) showFilePanelState= keyFile.get_integer ("GUI", "ShowFilePanelState"); + if (keyFile.has_key ("GUI", "ShowInfo")) showInfo = keyFile.get_boolean ("GUI", "ShowInfo"); + if (keyFile.has_key ("GUI", "MainNBVertical")) mainNBVertical = keyFile.get_boolean ("GUI", "MainNBVertical"); + if (keyFile.has_key ("GUI", "ShowClippedHighlights"))showClippedHighlights = keyFile.get_boolean ("GUI", "ShowClippedHighlights"); + if (keyFile.has_key ("GUI", "ShowClippedShadows")) showClippedShadows= keyFile.get_boolean ("GUI", "ShowClippedShadows"); + if (keyFile.has_key ("GUI", "FrameColor")) bgcolor = keyFile.get_integer ("GUI", "FrameColor"); + if (keyFile.has_key ("GUI", "ProcessingQueueEnbled"))procQueueEnabled = keyFile.get_boolean ("GUI", "ProcessingQueueEnbled"); + if (keyFile.has_key ("GUI", "ToolPanelsExpanded")) tpOpen = keyFile.get_integer_list ("GUI", "ToolPanelsExpanded"); + if (keyFile.has_key ("GUI", "MultiDisplayMode")) multiDisplayMode = keyFile.get_integer ("GUI", "MultiDisplayMode"); + //if (keyFile.has_key ("GUI", "CurvePanelsExpanded")) crvOpen = keyFile.get_integer_list ("GUI", "CurvePanelsExpanded"); + if (keyFile.has_key ("GUI", "CutOverlayBrush")) cutOverlayBrush = keyFile.get_double_list ("GUI", "CutOverlayBrush"); +} + + + +if (keyFile.has_group ("Crop Settings")) { + if (keyFile.has_key ("Crop Settings", "DPI")) cropDPI = keyFile.get_integer ("Crop Settings", "DPI"); +} + +if (keyFile.has_group ("Color Management")) { + if (keyFile.has_key ("Color Management", "ICCDirectory")) rtSettings.iccDirectory = keyFile.get_string ("Color Management", "ICCDirectory"); + if (keyFile.has_key ("Color Management", "MonitorProfile")) rtSettings.monitorProfile = keyFile.get_string ("Color Management", "MonitorProfile"); + if (keyFile.has_key ("Color Management", "Intent")) rtSettings.colorimetricIntent = keyFile.get_integer("Color Management", "Intent"); +} + +if (keyFile.has_group ("Batch Processing")) { + if (keyFile.has_key ("Batch Processing", "AdjusterBehavior")) baBehav = keyFile.get_integer_list ("Batch Processing", "AdjusterBehavior"); +} + + return 0; +} + +int Options::saveToFile (Glib::ustring fname) { + + rtengine::SafeKeyFile keyFile; + keyFile.set_boolean ("General", "TabbedEditor", tabbedUI); + + keyFile.set_boolean ("General", "StoreLastProfile", savesParamsAtExit); + if (startupDir==STARTUPDIR_HOME) + keyFile.set_string ("General", "StartupDirectory", "home"); + else if (startupDir==STARTUPDIR_CURRENT) + keyFile.set_string ("General", "StartupDirectory", "current"); + else if (startupDir==STARTUPDIR_CUSTOM) + keyFile.set_string ("General", "StartupDirectory", "custom"); + else if (startupDir==STARTUPDIR_LAST) + keyFile.set_string ("General", "StartupDirectory", "last"); + keyFile.set_string ("General", "StartupPath", startupPath); + keyFile.set_string ("General", "DateFormat", dateFormat); + keyFile.set_integer ("General", "AdjusterDelay", Adjuster::delay); + keyFile.set_boolean ("General", "DualProcSupport", rtSettings.dualThreadEnabled); + keyFile.set_boolean ("General", "MultiUser", multiUser); + keyFile.set_string ("General", "Language", language); + keyFile.set_string ("General", "Theme", theme); + keyFile.set_boolean ("General", "UseSystemTheme", useSystemTheme); + keyFile.set_integer ("General", "Version", TAGDISTANCE); + keyFile.set_boolean ("General", "FirstRun", firstRun); + keyFile.set_string ("General", "DarkFramesPath", rtSettings.darkFramesPath); + keyFile.set_boolean ("General", "Verbose", rtSettings.verbose); + + keyFile.set_integer ("External Editor", "EditorKind", editorToSendTo); + keyFile.set_string ("External Editor", "GimpDir", gimpDir); + keyFile.set_string ("External Editor", "PhotoshopDir", psDir); + keyFile.set_string ("External Editor", "CustomEditor", customEditorProg); + + + keyFile.set_boolean ("File Browser", "BrowseOnlyRaw", fbOnlyRaw); + keyFile.set_boolean ("File Browser", "BrowserShowsDate", fbShowDateTime); + keyFile.set_boolean ("File Browser", "BrowserShowsExif", fbShowBasicExif); + keyFile.set_boolean ("File Browser", "BrowserShowsHidden", fbShowHidden); + keyFile.set_integer ("File Browser", "ThumbnailSize", thumbSize); + keyFile.set_integer ("File Browser", "ThumbnailSizeTab", thumbSizeTab); + keyFile.set_integer ("File Browser", "MaxPreviewHeight", maxThumbnailHeight); + keyFile.set_integer ("File Browser", "MaxCacheEntries", maxCacheEntries); + keyFile.set_integer ("File Browser", "ThumbnailFormat", (int)thumbnailFormat); + Glib::ArrayHandle pext = parseExtensions; + keyFile.set_string_list ("File Browser", "ParseExtensions", pext); + Glib::ArrayHandle pextena = parseExtensionsEnabled; + keyFile.set_integer_list ("File Browser", "ParseExtensionsEnabled", pextena); + keyFile.set_integer ("File Browser", "ThumbnailArrangement", fbArrangement); + keyFile.set_integer ("File Browser", "ThumbnailInterpolation", thumbInterp); + keyFile.set_boolean ("File Browser", "LiveThumbnails", liveThumbnails); + Glib::ArrayHandle pfav = favoriteDirs; + keyFile.set_string_list ("File Browser", "FavoriteDirs", pfav); + Glib::ArrayHandle pren = renameTemplates; + keyFile.set_string_list ("File Browser", "RenameTemplates", pren); + keyFile.set_boolean ("File Browser", "RenameUseTemplates", renameUseTemplates); + Glib::ArrayHandle ptzoom = thumbnailZoomRatios; + keyFile.set_double_list ("File Browser", "ThumbnailZoomRatios", ptzoom); + keyFile.set_boolean ("File Browser", "OverlayedFileNames", overlayedFileNames); + keyFile.set_boolean ("File Browser", "ShowFileNames", showFileNames ); + keyFile.set_boolean ("File Browser", "InternalThumbIfUntouched", internalThumbIfUntouched ); + + keyFile.set_integer ("Clipping Indication", "HighlightThreshold", highlightThreshold); + keyFile.set_integer ("Clipping Indication", "ShadowThreshold", shadowThreshold); + keyFile.set_boolean ("Clipping Indication", "BlinkClipped", blinkClipped); + + keyFile.set_string ("Output", "Format", saveFormat.format); + keyFile.set_integer ("Output", "JpegQuality", saveFormat.jpegQuality); + keyFile.set_integer ("Output", "PngCompression", saveFormat.pngCompression); + keyFile.set_integer ("Output", "PngBps", saveFormat.pngBits); + keyFile.set_integer ("Output", "TiffBps", saveFormat.tiffBits); + keyFile.set_boolean ("Output", "TiffUncompressed", saveFormat.tiffUncompressed); + keyFile.set_boolean ("Output", "SaveProcParams", saveFormat.saveParams); + keyFile.set_string ("Output", "PathTemplate", savePathTemplate); + keyFile.set_string ("Output", "PathFolder", savePathFolder); + keyFile.set_boolean ("Output", "AutoSuffix", autoSuffix); + keyFile.set_boolean ("Output", "UsePathTemplate", saveUsePathTemplate); + keyFile.set_string ("Output", "LastSaveAsPath", lastSaveAsPath); + keyFile.set_boolean ("Output", "OverwriteOutputFile", overwriteOutputFile); + + keyFile.set_string ("Profiles", "Directory", profilePath); + keyFile.set_string ("Profiles", "RawDefault", defProfRaw); + keyFile.set_string ("Profiles", "ImgDefault", defProfImg); + keyFile.set_boolean ("Profiles", "SaveParamsWithFile", saveParamsFile); + keyFile.set_boolean ("Profiles", "SaveParamsToCache", saveParamsCache); + keyFile.set_integer ("Profiles", "LoadParamsFromLocation", paramsLoadLocation); + keyFile.set_string ("Profiles", "CustomProfileBuilder", customProfileBuilder); + + keyFile.set_string ("GUI", "Font", font); + keyFile.set_integer ("GUI", "WindowWidth", windowWidth); + keyFile.set_integer ("GUI", "WindowHeight", windowHeight); + keyFile.set_boolean ("GUI", "WindowMaximized", windowMaximized); + keyFile.set_integer ("GUI", "DirBrowserWidth", dirBrowserWidth); + keyFile.set_integer ("GUI", "DirBrowserHeight", dirBrowserHeight); + keyFile.set_integer ("GUI", "SaveAsDialogWidth", saveAsDialogWidth); + keyFile.set_integer ("GUI", "SaveAsDialogHeight", saveAsDialogHeight); + keyFile.set_integer ("GUI", "ToolPanelWidth", toolPanelWidth); + keyFile.set_integer ("GUI", "BrowserToolPanelWidth", browserToolPanelWidth); + keyFile.set_integer ("GUI", "BrowserToolPanelHeight", browserToolPanelHeight); + keyFile.set_integer ("GUI", "HistoryPanelWidth", historyPanelWidth); + keyFile.set_integer ("GUI", "LastPreviewScale", lastScale); + keyFile.set_integer ("GUI", "LastCropSize", lastCropSize); + keyFile.set_boolean ("GUI", "ShowHistory", showHistory); + keyFile.set_integer ("GUI", "ShowFilePanelState", showFilePanelState); + keyFile.set_boolean ("GUI", "ShowInfo", showInfo); + keyFile.set_boolean ("GUI", "MainNBVertical", mainNBVertical); + keyFile.set_boolean ("GUI", "ShowClippedHighlights", showClippedHighlights); + keyFile.set_boolean ("GUI", "ShowClippedShadows", showClippedShadows); + keyFile.set_integer ("GUI", "FrameColor", bgcolor); + keyFile.set_boolean ("GUI", "ProcessingQueueEnbled", procQueueEnabled); + Glib::ArrayHandle tpopen = tpOpen; + keyFile.set_integer_list ("GUI", "ToolPanelsExpanded", tpopen); + keyFile.set_integer ("GUI", "MultiDisplayMode", multiDisplayMode); + keyFile.set_double_list ("GUI", "CutOverlayBrush", cutOverlayBrush); + + //Glib::ArrayHandle crvopen = crvOpen; + //keyFile.set_integer_list ("GUI", "CurvePanelsExpanded", crvopen); + + keyFile.set_integer ("Crop Settings", "DPI", cropDPI); + + keyFile.set_string ("Color Management", "ICCDirectory", rtSettings.iccDirectory); + keyFile.set_string ("Color Management", "MonitorProfile", rtSettings.monitorProfile); + keyFile.set_integer ("Color Management", "Intent", rtSettings.colorimetricIntent); + + Glib::ArrayHandle bab = baBehav; + keyFile.set_integer_list ("Batch Processing", "AdjusterBehavior", bab); + + + FILE *f = g_fopen (fname.c_str(), "wt"); + if (f==NULL) + return 1; + else { + fprintf (f, "%s", keyFile.to_data().c_str()); + fclose (f); + return 0; + } +} + +Glib::ustring Options::rtdir; +Glib::ustring Options::cacheBaseDir; + +void Options::load () { + + rtdir = Glib::ustring(g_get_user_config_dir ())+"/RawTherapeeAlpha"; + options.readFromFile (argv0+"/options"); + cacheBaseDir = argv0 + "/cache"; + if (options.multiUser) { + int r = options.readFromFile (rtdir + "/options"); + if (r && !g_mkdir_with_parents (rtdir.c_str(), 511)) { + Glib::ustring profdir = rtdir + "/profiles"; + g_mkdir_with_parents (profdir.c_str(), 511); + options.saveToFile (rtdir + "/options"); + } +#ifdef _WIN32 + cacheBaseDir = rtdir + "/cache"; +#else + cacheBaseDir = Glib::ustring(g_get_user_cache_dir()) + "/RawTherapee"; +#endif + } + + //We handle languages using a hierarchy of translations. The top of the hierarchy is default. This includes a default translation for all items + // (most likely using simple English). The next level is the language: for instance, English, French, Chinese, etc. This file should contain a + // generic translation for all items which differ from default. Finally there is the locale. This is region-specific items which differ from the + // language file. These files must be name in the format (), where Language is the name of the language which it inherits from, + // and LC is the locale code. Some examples of this would be English (US) (American English), French (FR) (Franch French), French (CA) (Canadian + // French), etc. + // + // Each level will only contain the differences between itself and its parent translation. For instance, English (UK) or English (CA) may + // include the translation "HISTORY_MSG_34;Avoid Colour Clipping" where English would translate it as "HISTORY_MSG_34;Avoid Color Clipping" (note + // the difference in the spelling of 'colour'). + // + // It is important that when naming the translation files, that you stick to the format or (). We depend on that to figure + // out which are the parent translations. Furthermore, there must be a file for each locale () -- you cannot have + // 'French (CA)' unless there is a file 'French'. + + Glib::ustring defaultTranslation = argv0 + "/languages/default"; + Glib::ustring languageTranslation = ""; + Glib::ustring localeTranslation = ""; + + if (!options.language.empty()){ + std::vector langPortions = Glib::Regex::split_simple(" ", options.language); + if (langPortions.size() >= 1){ + languageTranslation = argv0 + "/languages/" + langPortions.at(0); + } + if (langPortions.size() >= 2){ + localeTranslation = argv0 + "/languages/" + options.language; + } + } + + langMgr.load(localeTranslation, new MultiLangMgr(languageTranslation, new MultiLangMgr(defaultTranslation))); + + rtengine::init (&options.rtSettings); +} + +void Options::save () { + + if (options.multiUser==false) { + options.saveToFile (argv0+"/options"); + } + else { + options.saveToFile (rtdir + "/options"); + } +} + +bool Options::is_extention_enabled (Glib::ustring ext) { + for (int j=0; j<(int)parseExtensions.size(); j++) + if (parseExtensions[j].casefold() == ext.casefold()) + return j>=(int)parseExtensionsEnabled.size() || parseExtensionsEnabled[j]; + return false; +} diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 9853a1c04..73e11850f 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -952,7 +952,7 @@ void Preferences::selectStartupDir () { void Preferences::aboutPressed () { - Splash* splash = new Splash (-1); + Splash* splash = new Splash (); splash->set_transient_for (*this); splash->set_modal (true); splash->show (); diff --git a/rtgui/splash.cc b/rtgui/splash.cc index 222742409..f6bdf2214 100644 --- a/rtgui/splash.cc +++ b/rtgui/splash.cc @@ -18,6 +18,7 @@ */ #include #include +#include #include extern Glib::ustring argv0; @@ -44,26 +45,131 @@ void SplashImage::on_realize () { bool SplashImage::on_expose_event (GdkEventExpose* event) { - Glib::RefPtr window = get_window(); + Glib::RefPtr window = get_window(); pixbuf->render_to_drawable (window, gc_, 0, 0, 0, 0, pixbuf->get_width(), pixbuf->get_height(), Gdk::RGB_DITHER_NONE, 0, 0); Cairo::FontOptions cfo; cfo.set_antialias (Cairo::ANTIALIAS_SUBPIXEL); - Glib::RefPtr context = get_pango_context () ; + Glib::RefPtr context = get_pango_context (); context->set_cairo_font_options (cfo); Pango::FontDescription fontd = context->get_font_description (); - fontd.set_weight (Pango::WEIGHT_SEMIBOLD); - fontd.set_size (12*Pango::SCALE); + fontd.set_weight (Pango::WEIGHT_LIGHT); + fontd.set_absolute_size (12*Pango::SCALE); context->set_font_description (fontd); + Gdk::Color *textColor = new Gdk::Color(); + textColor->set_rgb(0, 0, 0); + gc_->set_foreground(*textColor); - version = create_pango_layout (versionString); int w, h; + version = create_pango_layout (versionString); version->get_pixel_size (w, h); - window->draw_layout(gc_, pixbuf->get_width() - w - 28, 44-h, version); + window->draw_layout(gc_, pixbuf->get_width() - w - 4, pixbuf->get_height() - h - 4, version); return true; } +Splash::Splash () { + + set_title (M("GENERAL_ABOUT")); + set_border_width (4); + + Gtk::Notebook* nb = Gtk::manage (new Gtk::Notebook ()); + get_vbox()->pack_start (*nb); + + // Tab 1: the image + splashImage = new SplashImage (); + nb->append_page (*splashImage, M("ABOUT_TAB_SPLASH")); + splashImage->show (); + + // Tab 2: the informations about the current version + std::string buildFileName = Glib::build_filename (argv0, "AboutThisBuild.txt"); + if ( Glib::file_test(buildFileName, (Glib::FILE_TEST_EXISTS)) ) { + FILE *f = g_fopen (buildFileName.c_str(), "rt"); + if (f != NULL) { + char* buffer = new char[1024]; + std::ostringstream ostr; + while (fgets (buffer, 1024, f)) + ostr << buffer; + delete [] buffer; + fclose (f); + + Glib::RefPtr textBuffer = Gtk::TextBuffer::create(); + textBuffer->set_text((Glib::ustring)(ostr.str())); + + Gtk::ScrolledWindow *buildSW = Gtk::manage (new Gtk::ScrolledWindow()); + Gtk::TextView *buildTV = Gtk::manage (new Gtk::TextView (textBuffer)); + buildTV->set_editable(false); + buildSW->add(*buildTV); + nb->append_page (*buildSW, M("ABOUT_TAB_BUILD")); + } + } + + // Tab 3: the credits +#if defined _WIN32 || defined __APPLE__ + std::string creditsFileName = Glib::build_filename (argv0, "AUTHORS.txt"); +#else + std::string creditsFileName = Glib::build_filename (argv0, "share/doc/AUTHORS.txt"); +#endif + if ( Glib::file_test(creditsFileName, (Glib::FILE_TEST_EXISTS)) ) { + FILE *f = g_fopen (creditsFileName.c_str(), "rt"); + if (f != NULL) { + char* buffer = new char[1024]; + std::ostringstream ostr; + while (fgets (buffer, 1024, f)) + ostr << buffer; + delete [] buffer; + fclose (f); + + Glib::RefPtr textBuffer = Gtk::TextBuffer::create(); + textBuffer->set_text((Glib::ustring)(ostr.str())); + + Gtk::ScrolledWindow *creditsSW = Gtk::manage (new Gtk::ScrolledWindow()); + Gtk::TextView *creditsTV = Gtk::manage (new Gtk::TextView (textBuffer)); + creditsTV->set_editable(false); + creditsSW->add(*creditsTV); + nb->append_page (*creditsSW, M("ABOUT_TAB_CREDITS")); + } + } + + // Tab 4: the license +#if defined _WIN32 || defined __APPLE__ + std::string licenseFileName = Glib::build_filename (argv0, "LICENSE.txt"); +#else + std::string licenseFileName = Glib::build_filename (argv0, "share/doc/LICENSE.txt"); +#endif + if ( Glib::file_test(licenseFileName, (Glib::FILE_TEST_EXISTS)) ) { + FILE *f = g_fopen (licenseFileName.c_str(), "rt"); + if (f != NULL) { + char* buffer = new char[1024]; + std::ostringstream ostr; + while (fgets (buffer, 1024, f)) + ostr << buffer; + delete [] buffer; + fclose (f); + + Glib::RefPtr textBuffer = Gtk::TextBuffer::create(); + textBuffer->set_text((Glib::ustring)(ostr.str())); + + Gtk::ScrolledWindow *licenseSW = Gtk::manage (new Gtk::ScrolledWindow()); + Gtk::TextView *creditsTV = Gtk::manage (new Gtk::TextView (textBuffer)); + creditsTV->set_editable(false); + licenseSW->add(*creditsTV); + nb->append_page (*licenseSW, M("ABOUT_TAB_LICENSE")); + } + } + + + set_position (Gtk::WIN_POS_CENTER); + //add_events(Gdk::BUTTON_RELEASE_MASK); + set_resizable (true); + + nb->set_current_page (0); + + show_all_children (); + set_modal (true); + set_keep_above (true); +} + Splash::Splash (int maxtime) { set_title (M("GENERAL_ABOUT")); @@ -71,7 +177,6 @@ Splash::Splash (int maxtime) { splashImage = new SplashImage (); // add (*splashImage); get_vbox()->pack_start (*splashImage); - set_has_separator (false); splashImage->show (); if (maxtime>0) diff --git a/rtgui/splash.h b/rtgui/splash.h index 2afa2c9a5..9418be06c 100644 --- a/rtgui/splash.h +++ b/rtgui/splash.h @@ -42,6 +42,7 @@ class Splash : public Gtk::Dialog { public: Splash (int maxtime); + Splash (); bool on_timer (); virtual bool on_button_release_event (GdkEventButton* event);