diff --git a/rtdata/images/Dark/actions/previewmodeB-off.png b/rtdata/images/Dark/actions/previewmodeB-off.png index 1ff087b4d..0c9890437 100644 Binary files a/rtdata/images/Dark/actions/previewmodeB-off.png and b/rtdata/images/Dark/actions/previewmodeB-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeB-on.png b/rtdata/images/Dark/actions/previewmodeB-on.png index 6403fc722..466192b3a 100644 Binary files a/rtdata/images/Dark/actions/previewmodeB-on.png and b/rtdata/images/Dark/actions/previewmodeB-on.png differ diff --git a/rtdata/images/Dark/actions/previewmodeBC0-off.png b/rtdata/images/Dark/actions/previewmodeBC0-off.png index 05a75ee25..28c024555 100644 Binary files a/rtdata/images/Dark/actions/previewmodeBC0-off.png and b/rtdata/images/Dark/actions/previewmodeBC0-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeBC0-on.png b/rtdata/images/Dark/actions/previewmodeBC0-on.png index a1f462cb2..f5e0b8000 100644 Binary files a/rtdata/images/Dark/actions/previewmodeBC0-on.png and b/rtdata/images/Dark/actions/previewmodeBC0-on.png differ diff --git a/rtdata/images/Dark/actions/previewmodeBC1-off.png b/rtdata/images/Dark/actions/previewmodeBC1-off.png index d5071108a..4ac160b05 100644 Binary files a/rtdata/images/Dark/actions/previewmodeBC1-off.png and b/rtdata/images/Dark/actions/previewmodeBC1-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeBC1-on.png b/rtdata/images/Dark/actions/previewmodeBC1-on.png index f71b27965..3e9b6874c 100644 Binary files a/rtdata/images/Dark/actions/previewmodeBC1-on.png and b/rtdata/images/Dark/actions/previewmodeBC1-on.png differ diff --git a/rtdata/images/Dark/actions/previewmodeBC2-off.png b/rtdata/images/Dark/actions/previewmodeBC2-off.png index 5c9b2d0e8..bf3d97b2d 100644 Binary files a/rtdata/images/Dark/actions/previewmodeBC2-off.png and b/rtdata/images/Dark/actions/previewmodeBC2-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeBC2-on.png b/rtdata/images/Dark/actions/previewmodeBC2-on.png index 8f5b9207e..457453166 100644 Binary files a/rtdata/images/Dark/actions/previewmodeBC2-on.png and b/rtdata/images/Dark/actions/previewmodeBC2-on.png differ diff --git a/rtdata/images/Dark/actions/previewmodeBC3-off.png b/rtdata/images/Dark/actions/previewmodeBC3-off.png new file mode 100644 index 000000000..487ec777e Binary files /dev/null and b/rtdata/images/Dark/actions/previewmodeBC3-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeBC3-on.png b/rtdata/images/Dark/actions/previewmodeBC3-on.png new file mode 100644 index 000000000..670b5b8b4 Binary files /dev/null and b/rtdata/images/Dark/actions/previewmodeBC3-on.png differ diff --git a/rtdata/images/Dark/actions/previewmodeF-focusScreen-off.png b/rtdata/images/Dark/actions/previewmodeF-focusScreen-off.png new file mode 100644 index 000000000..75a285de2 Binary files /dev/null and b/rtdata/images/Dark/actions/previewmodeF-focusScreen-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeF-focusScreen-on.png b/rtdata/images/Dark/actions/previewmodeF-focusScreen-on.png new file mode 100644 index 000000000..3d46dedc7 Binary files /dev/null and b/rtdata/images/Dark/actions/previewmodeF-focusScreen-on.png differ diff --git a/rtdata/images/Dark/actions/previewmodeF-off.png b/rtdata/images/Dark/actions/previewmodeF-off.png index 1236da5a1..5d52af569 100644 Binary files a/rtdata/images/Dark/actions/previewmodeF-off.png and b/rtdata/images/Dark/actions/previewmodeF-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeF-on.png b/rtdata/images/Dark/actions/previewmodeF-on.png index 3910e6a20..f0d0ef230 100644 Binary files a/rtdata/images/Dark/actions/previewmodeF-on.png and b/rtdata/images/Dark/actions/previewmodeF-on.png differ diff --git a/rtdata/images/Dark/actions/previewmodeG-off.png b/rtdata/images/Dark/actions/previewmodeG-off.png index e25911324..5c076c989 100644 Binary files a/rtdata/images/Dark/actions/previewmodeG-off.png and b/rtdata/images/Dark/actions/previewmodeG-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeG-on.png b/rtdata/images/Dark/actions/previewmodeG-on.png index db31667ed..ecc75c8e7 100644 Binary files a/rtdata/images/Dark/actions/previewmodeG-on.png and b/rtdata/images/Dark/actions/previewmodeG-on.png differ diff --git a/rtdata/images/Dark/actions/previewmodeL-off.png b/rtdata/images/Dark/actions/previewmodeL-off.png index d24dea76f..939dec642 100644 Binary files a/rtdata/images/Dark/actions/previewmodeL-off.png and b/rtdata/images/Dark/actions/previewmodeL-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeL-on.png b/rtdata/images/Dark/actions/previewmodeL-on.png index 11b745e09..92fe937e8 100644 Binary files a/rtdata/images/Dark/actions/previewmodeL-on.png and b/rtdata/images/Dark/actions/previewmodeL-on.png differ diff --git a/rtdata/images/Dark/actions/previewmodeR-off.png b/rtdata/images/Dark/actions/previewmodeR-off.png index 9aef77301..b96e22c31 100644 Binary files a/rtdata/images/Dark/actions/previewmodeR-off.png and b/rtdata/images/Dark/actions/previewmodeR-off.png differ diff --git a/rtdata/images/Dark/actions/previewmodeR-on.png b/rtdata/images/Dark/actions/previewmodeR-on.png index 5fb0f996e..fb1e46e98 100644 Binary files a/rtdata/images/Dark/actions/previewmodeR-on.png and b/rtdata/images/Dark/actions/previewmodeR-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeB-off.png b/rtdata/images/Light/actions/previewmodeB-off.png index 1ff087b4d..0c9890437 100644 Binary files a/rtdata/images/Light/actions/previewmodeB-off.png and b/rtdata/images/Light/actions/previewmodeB-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeB-on.png b/rtdata/images/Light/actions/previewmodeB-on.png index 6403fc722..466192b3a 100644 Binary files a/rtdata/images/Light/actions/previewmodeB-on.png and b/rtdata/images/Light/actions/previewmodeB-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeBC0-off.png b/rtdata/images/Light/actions/previewmodeBC0-off.png index 05a75ee25..28c024555 100644 Binary files a/rtdata/images/Light/actions/previewmodeBC0-off.png and b/rtdata/images/Light/actions/previewmodeBC0-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeBC0-on.png b/rtdata/images/Light/actions/previewmodeBC0-on.png index a1f462cb2..f5e0b8000 100644 Binary files a/rtdata/images/Light/actions/previewmodeBC0-on.png and b/rtdata/images/Light/actions/previewmodeBC0-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeBC1-off.png b/rtdata/images/Light/actions/previewmodeBC1-off.png index d5071108a..4ac160b05 100644 Binary files a/rtdata/images/Light/actions/previewmodeBC1-off.png and b/rtdata/images/Light/actions/previewmodeBC1-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeBC1-on.png b/rtdata/images/Light/actions/previewmodeBC1-on.png index f71b27965..3e9b6874c 100644 Binary files a/rtdata/images/Light/actions/previewmodeBC1-on.png and b/rtdata/images/Light/actions/previewmodeBC1-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeBC2-off.png b/rtdata/images/Light/actions/previewmodeBC2-off.png index 5c9b2d0e8..bf3d97b2d 100644 Binary files a/rtdata/images/Light/actions/previewmodeBC2-off.png and b/rtdata/images/Light/actions/previewmodeBC2-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeBC2-on.png b/rtdata/images/Light/actions/previewmodeBC2-on.png index 8f5b9207e..457453166 100644 Binary files a/rtdata/images/Light/actions/previewmodeBC2-on.png and b/rtdata/images/Light/actions/previewmodeBC2-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeBC3-off.png b/rtdata/images/Light/actions/previewmodeBC3-off.png new file mode 100644 index 000000000..487ec777e Binary files /dev/null and b/rtdata/images/Light/actions/previewmodeBC3-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeBC3-on.png b/rtdata/images/Light/actions/previewmodeBC3-on.png new file mode 100644 index 000000000..670b5b8b4 Binary files /dev/null and b/rtdata/images/Light/actions/previewmodeBC3-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeF-focusScreen-off.png b/rtdata/images/Light/actions/previewmodeF-focusScreen-off.png new file mode 100644 index 000000000..0aa81a705 Binary files /dev/null and b/rtdata/images/Light/actions/previewmodeF-focusScreen-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeF-focusScreen-on.png b/rtdata/images/Light/actions/previewmodeF-focusScreen-on.png new file mode 100644 index 000000000..3d46dedc7 Binary files /dev/null and b/rtdata/images/Light/actions/previewmodeF-focusScreen-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeF-off.png b/rtdata/images/Light/actions/previewmodeF-off.png index 519de02bc..5d52af569 100644 Binary files a/rtdata/images/Light/actions/previewmodeF-off.png and b/rtdata/images/Light/actions/previewmodeF-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeF-on.png b/rtdata/images/Light/actions/previewmodeF-on.png index 3910e6a20..f0d0ef230 100644 Binary files a/rtdata/images/Light/actions/previewmodeF-on.png and b/rtdata/images/Light/actions/previewmodeF-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeG-off.png b/rtdata/images/Light/actions/previewmodeG-off.png index e25911324..5c076c989 100644 Binary files a/rtdata/images/Light/actions/previewmodeG-off.png and b/rtdata/images/Light/actions/previewmodeG-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeG-on.png b/rtdata/images/Light/actions/previewmodeG-on.png index db31667ed..ecc75c8e7 100644 Binary files a/rtdata/images/Light/actions/previewmodeG-on.png and b/rtdata/images/Light/actions/previewmodeG-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeL-off.png b/rtdata/images/Light/actions/previewmodeL-off.png index d24dea76f..939dec642 100644 Binary files a/rtdata/images/Light/actions/previewmodeL-off.png and b/rtdata/images/Light/actions/previewmodeL-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeL-on.png b/rtdata/images/Light/actions/previewmodeL-on.png index 11b745e09..92fe937e8 100644 Binary files a/rtdata/images/Light/actions/previewmodeL-on.png and b/rtdata/images/Light/actions/previewmodeL-on.png differ diff --git a/rtdata/images/Light/actions/previewmodeR-off.png b/rtdata/images/Light/actions/previewmodeR-off.png index 9aef77301..b96e22c31 100644 Binary files a/rtdata/images/Light/actions/previewmodeR-off.png and b/rtdata/images/Light/actions/previewmodeR-off.png differ diff --git a/rtdata/images/Light/actions/previewmodeR-on.png b/rtdata/images/Light/actions/previewmodeR-on.png index 5fb0f996e..fb1e46e98 100644 Binary files a/rtdata/images/Light/actions/previewmodeR-on.png and b/rtdata/images/Light/actions/previewmodeR-on.png differ diff --git a/rtdata/languages/default b/rtdata/languages/default index fb9c3c72d..34c1bbf22 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -925,6 +925,7 @@ MAIN_TAB_WAVELET_TOOLTIP;Shortcut: Alt-w MAIN_TOOLTIP_BACKCOLOR0;Background color of the preview: Theme-based\nShortcut: 9 MAIN_TOOLTIP_BACKCOLOR1;Background color of the preview: Black\nShortcut: 9 MAIN_TOOLTIP_BACKCOLOR2;Background color of the preview: White\nShortcut: 9 +MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: Middle grey\nShortcut: 9 MAIN_TOOLTIP_BEFOREAFTERLOCK;Lock / Unlock the Before view\n\nLock: keep the Before view unchanged.\nUseful to evaluate the cumulative effect of multiple tools.\nAdditionally, comparisons can be made to any state in the History.\n\nUnlock: the Before view will follow the After view one step behind, showing the image before the effect of the currently used tool. MAIN_TOOLTIP_HIDEHP;Show/Hide the left panel (including the history).\nShortcut: l MAIN_TOOLTIP_INDCLIPPEDH;Clipped highlight indication.\nShortcut: < diff --git a/rtdata/themes/TooWaBlue-GTK3-20_.css b/rtdata/themes/TooWaBlue-GTK3-20_.css index e009c6d9a..42488b977 100644 --- a/rtdata/themes/TooWaBlue-GTK3-20_.css +++ b/rtdata/themes/TooWaBlue-GTK3-20_.css @@ -2,7 +2,7 @@ This file is part of RawTherapee. Copyright (c) 2016-2017 TooWaBoo - Version 2.53 - requires RT 5.0 (Gtk+ >= 3.20) + Version 2.56 - requires RT 5.0 (Gtk+ >= 3.20) RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1035,36 +1035,10 @@ window.csd:not(.fullscreen) #MainNotebook > header.top { margin-right: 0; } -#EditorTopPanel > box:nth-child(9) > button.image-button:not(:nth-child(6)) { +#EditorTopPanel > box:nth-child(9) > button.image-button { min-width: 0; - padding-left: 0.33334em; - padding-right: 0.33334em; -} - -#EditorTopPanel > box:nth-child(9) > button.image-button:nth-child(6) { - -gtk-icon-shadow: none; -} -#EditorTopPanel > box > box > button { - min-height: 0.625em; - min-width: 0; - margin: 0 0.16667em; - padding: 0 0.16667em; - border: 0.08334em solid transparent; - background-color: transparent; - background-image: none; - box-shadow: none; -} -#EditorTopPanel > box > box > button:hover { - background-color: transparent; - background-image: none; - border: 0.08334em solid transparent; - box-shadow: none; -} -#EditorTopPanel > box > box > button:checked { - background-color: transparent; - background-image: none; - border: 0.08334em solid @bg-button-border; - box-shadow: none; + padding-left: 0.25em; + padding-right: 0.25em; } /*Button editor bottom*/ @@ -1863,5 +1837,4 @@ headerbar:backdrop { headerbar .title:backdrop { color: alpha(@winTitle,.60); } -/**/ /*** end ***************************************************************************************/ diff --git a/rtengine/CA_correct_RT.cc b/rtengine/CA_correct_RT.cc index 1df27c5fb..ec598b6ca 100644 --- a/rtengine/CA_correct_RT.cc +++ b/rtengine/CA_correct_RT.cc @@ -134,12 +134,12 @@ void RawImageSource::CA_correct_RT(const bool autoCA, const double cared, const } // local variables - const int width = W, height = H; + const int width = W + (W & 1), height = H; //temporary array to store simple interpolation of G - float *Gtmp = (float (*)) malloc ((height * width + ((height * width) & 1)) / 2 * sizeof * Gtmp); + float *Gtmp = (float (*)) malloc ((height * width) / 2 * sizeof * Gtmp); // temporary array to avoid race conflicts, only every second pixel needs to be saved here - float *RawDataTmp = (float*) malloc( (height * width + ((height * width) & 1)) * sizeof(float) / 2); + float *RawDataTmp = (float*) malloc( (height * width) * sizeof(float) / 2); float blockave[2][2] = {{0, 0}, {0, 0}}, blocksqave[2][2] = {{0, 0}, {0, 0}}, blockdenom[2][2] = {{0, 0}, {0, 0}}, blockvar[2][2]; @@ -1024,9 +1024,9 @@ void RawImageSource::CA_correct_RT(const bool autoCA, const double cared, const int c = FC(rr, cc); int GRBdir0 = GRBdir[0][c]; int GRBdir1 = GRBdir[1][c]; +#ifdef __SSE2__ vfloat shifthfracc = F2V(shifthfrac[c]); vfloat shiftvfracc = F2V(shiftvfrac[c]); -#ifdef __SSE2__ for (int indx = rr * ts + cc; cc < cc1 - 14; cc += 8, indx += 8) { //interpolate colour difference from optical R/B locations to grid locations vfloat grbdiffinthfloor = vintpf(shifthfracc, LVFU(grbdiff[(indx - GRBdir1) >> 1]), LVFU(grbdiff[indx >> 1])); diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index d6bac40de..a70c2d2dc 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -9754,11 +9754,45 @@ static void copyFloatDataToInt(float * src, ushort * dst, size_t size, float max fprintf(stderr, "DNG Float: NaN data found in input file\n"); } +static int decompress(size_t srcLen, size_t dstLen, unsigned char *in, unsigned char *out) { + // At least in zlib 1.2.11 the uncompress function is not thread save while it is thread save in zlib 1.2.8 + // This simple replacement is thread save. Used example code from https://zlib.net/zlib_how.html + + int ret; + z_stream strm; + /* allocate inflate state */ + strm.zalloc = Z_NULL; + strm.zfree = Z_NULL; + strm.opaque = Z_NULL; + strm.avail_in = 0; + strm.next_in = Z_NULL; + ret = inflateInit(&strm); + if (ret != Z_OK) { + return ret; + } + strm.avail_out = dstLen; + strm.next_out = out; + strm.avail_in = srcLen; + strm.next_in = in; + ret = inflate(&strm, Z_NO_FLUSH); + switch (ret) { + case Z_NEED_DICT: + ret = Z_DATA_ERROR; /* and fall through */ + case Z_DATA_ERROR: + case Z_MEM_ERROR: + (void)inflateEnd(&strm); + return ret; + } + /* clean up and return */ + (void)inflateEnd(&strm); + return ret == Z_STREAM_END ? Z_OK : Z_DATA_ERROR; +} + void CLASS deflate_dng_load_raw() { float_raw_image = new float[raw_width * raw_height]; #ifdef _OPENMP -#pragma omp parallel for + #pragma omp parallel for #endif for (size_t i = 0; i < raw_width * raw_height; ++i) float_raw_image[i] = 0.0f; @@ -9815,44 +9849,45 @@ void CLASS deflate_dng_load_raw() { } uLongf dstLen = tile_width * tile_length * 4; -#if defined(_OPENMP) && ZLIB_VER_REVISION == 8 +#ifdef _OPENMP #pragma omp parallel #endif { Bytef * cBuffer = new Bytef[maxCompressed]; Bytef * uBuffer = new Bytef[dstLen]; -#if defined(_OPENMP) && ZLIB_VER_REVISION == 8 -#pragma omp for collapse(2) nowait +#ifdef _OPENMP + #pragma omp for collapse(2) schedule(dynamic) nowait #endif for (size_t y = 0; y < raw_height; y += tile_length) { - for (size_t x = 0; x < raw_width; x += tile_width) { - size_t t = (y / tile_length) * tilesWide + (x / tile_width); -#if defined(_OPENMP) && ZLIB_VER_REVISION == 8 -#pragma omp critical + for (size_t x = 0; x < raw_width; x += tile_width) { + size_t t = (y / tile_length) * tilesWide + (x / tile_width); +#ifdef _OPENMP + #pragma omp critical #endif -{ - fseek(ifp, tileOffsets[t], SEEK_SET); - fread(cBuffer, 1, tileBytes[t], ifp); -} - int err = uncompress(uBuffer, &dstLen, cBuffer, tileBytes[t]); - if (err != Z_OK) { - fprintf(stderr, "DNG Deflate: Failed uncompressing tile %d, with error %d\n", (int)t, err); - } else if (ifd->sample_format == 3) { // Floating point data - int bytesps = ifd->bps >> 3; - size_t thisTileLength = y + tile_length > raw_height ? raw_height - y : tile_length; - size_t thisTileWidth = x + tile_width > raw_width ? raw_width - x : tile_width; - for (size_t row = 0; row < thisTileLength; ++row) { - Bytef * src = uBuffer + row*tile_width*bytesps; - Bytef * dst = (Bytef *)&float_raw_image[(y+row)*raw_width + x]; - if (predFactor) - decodeFPDeltaRow(src, dst, thisTileWidth, tile_width, bytesps, predFactor); - expandFloats(dst, thisTileWidth, bytesps); - } - } else { // 32-bit Integer data - // TODO + { + fseek(ifp, tileOffsets[t], SEEK_SET); + fread(cBuffer, 1, tileBytes[t], ifp); + } + int err = decompress(tileBytes[t], dstLen, cBuffer, uBuffer); + if (err != Z_OK) { + fprintf(stderr, "DNG Deflate: Failed uncompressing tile %d, with error %d\n", (int)t, err); + } else if (ifd->sample_format == 3) { // Floating point data + int bytesps = ifd->bps >> 3; + size_t thisTileLength = y + tile_length > raw_height ? raw_height - y : tile_length; + size_t thisTileWidth = x + tile_width > raw_width ? raw_width - x : tile_width; + for (size_t row = 0; row < thisTileLength; ++row) { + Bytef * src = uBuffer + row*tile_width*bytesps; + Bytef * dst = (Bytef *)&float_raw_image[(y+row)*raw_width + x]; + if (predFactor) { + decodeFPDeltaRow(src, dst, thisTileWidth, tile_width, bytesps, predFactor); + } + expandFloats(dst, thisTileWidth, bytesps); + } + } else { // 32-bit Integer data + // TODO + } } - } } delete [] cBuffer; diff --git a/rtengine/rawimage.h b/rtengine/rawimage.h index 62752b59c..c2cdcb6ec 100644 --- a/rtengine/rawimage.h +++ b/rtengine/rawimage.h @@ -20,6 +20,8 @@ #define __RAWIMAGE_H #include +#include +#include #include "dcraw.h" #include "imageio.h" @@ -233,7 +235,13 @@ public: } float get_pre_mul(int c )const { - return pre_mul[c]; + if(std::isfinite(pre_mul[c])) { + return pre_mul[c]; + } else { + std::cout << "Failure decoding '" << filename << "', please file a bug report including the raw file and the line below:" << std::endl; + std::cout << "rawimage.h get_pre_mul() : pre_mul[" << c << "] value " << pre_mul[c] << " automatically replaced by value 1.0" << std::endl; + return 1.f; + } } float get_rgb_cam( int r, int c) const { diff --git a/rtgui/addsetids.h b/rtgui/addsetids.h index 898ef9528..2ee2e6053 100644 --- a/rtgui/addsetids.h +++ b/rtgui/addsetids.h @@ -116,6 +116,12 @@ enum { ADDSET_RETI_GAM, ADDSET_RETI_SLO, ADDSET_WB_TEMPBIAS, + ADDSET_SHARP_RADIUS, + ADDSET_SHARP_DAMPING, + ADDSET_SHARP_ITER, + ADDSET_SHARP_EDGETOL, + ADDSET_SHARP_HALOCTRL, + ADDSET_RESIZE_SCALE, ADDSET_PARAM_NUM // THIS IS USED AS A DELIMITER!! }; diff --git a/rtgui/batchqueue.cc b/rtgui/batchqueue.cc index da042347d..3d773d874 100644 --- a/rtgui/batchqueue.cc +++ b/rtgui/batchqueue.cc @@ -743,8 +743,14 @@ Glib::ustring BatchQueue::calcAutoFileNameBase (const Glib::ustring& origFileNam da.push_back (tok); } - if (origFileName[0] == '/' || origFileName[0] == '\\') { + if (origFileName[0] == '/') { pa.push_back ("/" + da[0]); + } else if (origFileName[0] == '\\') { + if (origFileName.size() > 1 && origFileName[1] == '\\') { + pa.push_back ("\\\\" + da[0]); + } else { + pa.push_back ("/" + da[0]); + } } else { pa.push_back (da[0]); } diff --git a/rtgui/batchtoolpanelcoord.cc b/rtgui/batchtoolpanelcoord.cc index d247199cf..489f74123 100644 --- a/rtgui/batchtoolpanelcoord.cc +++ b/rtgui/batchtoolpanelcoord.cc @@ -157,13 +157,15 @@ void BatchToolPanelCoordinator::initSession () vignetting->setAdjusterBehavior (false, false, false, false); colorappearance->setAdjusterBehavior (false, false, false, false, false, false, false, false, false, false, false, false, false); rotate->setAdjusterBehavior (false); + resize->setAdjusterBehavior (false); distortion->setAdjusterBehavior (false); perspective->setAdjusterBehavior (false); gradient->setAdjusterBehavior (false, false, false, false); locallab->setAdjusterBehavior (false, false, false, false, false, false, false, false, false, false, false, false, false); pcvignette->setAdjusterBehavior (false, false, false); cacorrection->setAdjusterBehavior (false); - sharpening->setAdjusterBehavior (false); + sharpening->setAdjusterBehavior (false, false, false, false, false, false); + prsharpening->setAdjusterBehavior (false, false, false, false, false, false); sharpenEdge->setAdjusterBehavior (false, false); sharpenMicro->setAdjusterBehavior (false, false); icm->setAdjusterBehavior (false, false); @@ -197,13 +199,16 @@ void BatchToolPanelCoordinator::initSession () vignetting->setAdjusterBehavior (options.baBehav[ADDSET_VIGN_AMOUNT], options.baBehav[ADDSET_VIGN_RADIUS], options.baBehav[ADDSET_VIGN_STRENGTH], options.baBehav[ADDSET_VIGN_CENTER]); colorappearance->setAdjusterBehavior (options.baBehav[ADDSET_CAT_DEGREE], options.baBehav[ADDSET_CAT_ADAPTSCENE], options.baBehav[ADDSET_CAT_ADAPTVIEWING], options.baBehav[ADDSET_CAT_BADPIX], options.baBehav[ADDSET_CAT_LIGHT], options.baBehav[ADDSET_CAT_CHROMA], options.baBehav[ADDSET_CAT_CONTRAST], options.baBehav[ADDSET_CAT_RSTPRO], options.baBehav[ADDSET_CAT_BRIGHT], options.baBehav[ADDSET_CAT_CONTRAST_Q], options.baBehav[ADDSET_CAT_CHROMA_S], options.baBehav[ADDSET_CAT_CHROMA_M], options.baBehav[ADDSET_CAT_HUE]); rotate->setAdjusterBehavior (options.baBehav[ADDSET_ROTATE_DEGREE]); + resize->setAdjusterBehavior (options.baBehav[ADDSET_RESIZE_SCALE]); distortion->setAdjusterBehavior (options.baBehav[ADDSET_DIST_AMOUNT]); perspective->setAdjusterBehavior (options.baBehav[ADDSET_PERSPECTIVE]); gradient->setAdjusterBehavior (options.baBehav[ADDSET_GRADIENT_DEGREE], options.baBehav[ADDSET_GRADIENT_FEATHER], options.baBehav[ADDSET_GRADIENT_STRENGTH], options.baBehav[ADDSET_GRADIENT_CENTER]); // locallab->setAdjusterBehavior (options.baBehav[ADDSET_LOCALLAB_DEGREE], options.baBehav[ADDSET_LOCALLAB_LOCY], options.baBehav[ADDSET_LOCALLAB_LOCX], options.baBehav[ADDSET_LOCALLAB_LOCYT], options.baBehav[ADDSET_LOCALLAB_LOCXL], options.baBehav[ADDSET_LOCALLAB_CENTER], options.baBehav[ADDSET_LOCALLAB_LIGHTNESS], options.baBehav[ADDSET_LOCALLAB_CONTRAST], options.baBehav[ADDSET_LOCALLAB_CHROMA], options.baBehav[ADDSET_LOCALLAB_SENSI], options.baBehav[ADDSET_LOCALLAB_RADIUS], options.baBehav[ADDSET_LOCALLAB_STRENGTH], options.baBehav[ADDSET_LOCALLAB_TRANSIT]); pcvignette->setAdjusterBehavior (options.baBehav[ADDSET_PCVIGNETTE_STRENGTH], options.baBehav[ADDSET_PCVIGNETTE_FEATHER], options.baBehav[ADDSET_PCVIGNETTE_ROUNDNESS]); cacorrection->setAdjusterBehavior (options.baBehav[ADDSET_CA]); - sharpening->setAdjusterBehavior (options.baBehav[ADDSET_SHARP_AMOUNT]); + sharpening->setAdjusterBehavior (options.baBehav[ADDSET_SHARP_RADIUS], options.baBehav[ADDSET_SHARP_AMOUNT], options.baBehav[ADDSET_SHARP_DAMPING], options.baBehav[ADDSET_SHARP_ITER], options.baBehav[ADDSET_SHARP_EDGETOL], options.baBehav[ADDSET_SHARP_HALOCTRL]); + prsharpening->setAdjusterBehavior (options.baBehav[ADDSET_SHARP_RADIUS], options.baBehav[ADDSET_SHARP_AMOUNT], options.baBehav[ADDSET_SHARP_DAMPING], options.baBehav[ADDSET_SHARP_ITER], options.baBehav[ADDSET_SHARP_EDGETOL], options.baBehav[ADDSET_SHARP_HALOCTRL]); + sharpenEdge->setAdjusterBehavior (options.baBehav[ADDSET_SHARPENEDGE_AMOUNT], options.baBehav[ADDSET_SHARPENEDGE_PASS]); sharpenMicro->setAdjusterBehavior (options.baBehav[ADDSET_SHARPENMICRO_AMOUNT], options.baBehav[ADDSET_SHARPENMICRO_UNIFORMITY]); icm->setAdjusterBehavior (options.baBehav[ADDSET_FREE_OUPUT_GAMMA], options.baBehav[ADDSET_FREE_OUTPUT_SLOPE]); @@ -225,507 +230,143 @@ void BatchToolPanelCoordinator::initSession () bayerrawexposure->setAdjusterBehavior (options.baBehav[ADDSET_RAWEXPOS_BLACKS]); xtransrawexposure->setAdjusterBehavior (options.baBehav[ADDSET_RAWEXPOS_BLACKS]); - if (options.baBehav[ADDSET_TC_EXPCOMP]) { - pparams.toneCurve.expcomp = 0; + // *INDENT-OFF* + if (options.baBehav[ADDSET_TC_EXPCOMP]) { pparams.toneCurve.expcomp = 0; } + if (options.baBehav[ADDSET_TC_HLCOMPAMOUNT]) { pparams.toneCurve.hlcompr = 0; } + if (options.baBehav[ADDSET_TC_HLCOMPTHRESH]) { pparams.toneCurve.hlcomprthresh = 0; } + if (options.baBehav[ADDSET_TC_BRIGHTNESS]) { pparams.toneCurve.brightness = 0; } + if (options.baBehav[ADDSET_TC_BLACKLEVEL]) {pparams.toneCurve.black = 0; } + if (options.baBehav[ADDSET_TC_SHCOMP]) { pparams.toneCurve.shcompr = 0; } + if (options.baBehav[ADDSET_TC_CONTRAST]) { pparams.toneCurve.contrast = 0; } + if (options.baBehav[ADDSET_TC_SATURATION]) { pparams.toneCurve.saturation = 0;} + if (options.baBehav[ADDSET_SH_HIGHLIGHTS]) { pparams.sh.highlights = 0; } + if (options.baBehav[ADDSET_SH_SHADOWS]) { pparams.sh.shadows = 0; } + if (options.baBehav[ADDSET_SH_LOCALCONTRAST]) { pparams.sh.localcontrast = 0; } + if (options.baBehav[ADDSET_LC_BRIGHTNESS]) { pparams.labCurve.brightness = 0; } + if (options.baBehav[ADDSET_LC_CONTRAST]) { pparams.labCurve.contrast = 0; } + if (options.baBehav[ADDSET_LC_CHROMATICITY]) { pparams.labCurve.chromaticity = 0; } + if (options.baBehav[ADDSET_SHARP_RADIUS]) { + pparams.sharpening.radius = pparams.sharpening.deconvradius = pparams.sharpening.edges_radius = 0; + pparams.prsharpening.radius = pparams.prsharpening.deconvradius = pparams.prsharpening.edges_radius = 0; } - - if (options.baBehav[ADDSET_TC_HLCOMPAMOUNT]) { - pparams.toneCurve.hlcompr = 0; - } - - if (options.baBehav[ADDSET_TC_HLCOMPTHRESH]) { - pparams.toneCurve.hlcomprthresh = 0; - } - - if (options.baBehav[ADDSET_TC_BRIGHTNESS]) { - pparams.toneCurve.brightness = 0; - } - - if (options.baBehav[ADDSET_TC_BLACKLEVEL]) { - pparams.toneCurve.black = 0; - } - - if (options.baBehav[ADDSET_TC_SHCOMP]) { - pparams.toneCurve.shcompr = 0; - } - - if (options.baBehav[ADDSET_TC_CONTRAST]) { - pparams.toneCurve.contrast = 0; - } - - if (options.baBehav[ADDSET_TC_SATURATION]) { - pparams.toneCurve.saturation = 0; - } - - if (options.baBehav[ADDSET_SH_HIGHLIGHTS]) { - pparams.sh.highlights = 0; - } - - if (options.baBehav[ADDSET_SH_SHADOWS]) { - pparams.sh.shadows = 0; - } - - if (options.baBehav[ADDSET_SH_LOCALCONTRAST]) { - pparams.sh.localcontrast = 0; - } - - if (options.baBehav[ADDSET_LC_BRIGHTNESS]) { - pparams.labCurve.brightness = 0; - } - - if (options.baBehav[ADDSET_LC_CONTRAST]) { - pparams.labCurve.contrast = 0; - } - - if (options.baBehav[ADDSET_LC_CHROMATICITY]) { - pparams.labCurve.chromaticity = 0; - } - if (options.baBehav[ADDSET_SHARP_AMOUNT]) { - pparams.sharpening.amount = 0; + pparams.sharpening.amount = pparams.sharpening.deconvamount = + pparams.prsharpening.amount = pparams.prsharpening.deconvamount = 0; } - - if (options.baBehav[ADDSET_SHARPENEDGE_AMOUNT]) { - pparams.sharpenEdge.amount = 0; + if (options.baBehav[ADDSET_SHARP_DAMPING]) { pparams.sharpening.deconvdamping = pparams.prsharpening.deconvdamping = 0; } + if (options.baBehav[ADDSET_SHARP_ITER]) { pparams.sharpening.deconviter = pparams.prsharpening.deconviter = 0; } + if (options.baBehav[ADDSET_SHARP_EDGETOL]) { pparams.sharpening.edges_tolerance = pparams.prsharpening.edges_tolerance = 0; } + if (options.baBehav[ADDSET_SHARP_HALOCTRL]) { pparams.sharpening.halocontrol_amount = pparams.prsharpening.halocontrol_amount = 0; } + if (options.baBehav[ADDSET_SHARPENEDGE_AMOUNT]) { pparams.sharpenEdge.amount = 0; } + if (options.baBehav[ADDSET_SHARPENMICRO_AMOUNT]) { pparams.sharpenMicro.amount = 0; } + if (options.baBehav[ADDSET_SHARPENEDGE_PASS]) { pparams.sharpenEdge.passes = 0; } + if (options.baBehav[ADDSET_SHARPENMICRO_UNIFORMITY]) { pparams.sharpenMicro.uniformity = 0; } + if (options.baBehav[ADDSET_CHMIXER]) for (int i = 0; i < 3; i++) { pparams.chmixer.red[i] = pparams.chmixer.green[i] = pparams.chmixer.blue[i] = 0; } + if (options.baBehav[ADDSET_BLACKWHITE_HUES]) { + pparams.blackwhite.mixerRed = pparams.blackwhite.mixerOrange = pparams.blackwhite.mixerYellow = + pparams.blackwhite.mixerGreen = pparams.blackwhite.mixerCyan = pparams.blackwhite.mixerBlue = + pparams.blackwhite.mixerMagenta = pparams.blackwhite.mixerPurple = 0; } - - if (options.baBehav[ADDSET_SHARPENMICRO_AMOUNT]) { - pparams.sharpenMicro.amount = 0; - } - - if (options.baBehav[ADDSET_SHARPENEDGE_PASS]) { - pparams.sharpenEdge.passes = 0; - } - - if (options.baBehav[ADDSET_SHARPENMICRO_UNIFORMITY]) { - pparams.sharpenMicro.uniformity = 0; - } - - if (options.baBehav[ADDSET_CHMIXER]) for (int i = 0; i < 3; i++) { - pparams.chmixer.red[i] = pparams.chmixer.green[i] = pparams.chmixer.blue[i] = 0; - } - - if (options.baBehav[ADDSET_BLACKWHITE_HUES]) pparams.blackwhite.mixerRed = pparams.blackwhite.mixerOrange = pparams.blackwhite.mixerYellow = - pparams.blackwhite.mixerGreen = pparams.blackwhite.mixerCyan = pparams.blackwhite.mixerBlue = - pparams.blackwhite.mixerMagenta = pparams.blackwhite.mixerPurple = 0; - - if (options.baBehav[ADDSET_BLACKWHITE_GAMMA]) { - pparams.blackwhite.gammaRed = pparams.blackwhite.gammaGreen = pparams.blackwhite.gammaBlue = 0; - } - + if (options.baBehav[ADDSET_BLACKWHITE_GAMMA]) { pparams.blackwhite.gammaRed = pparams.blackwhite.gammaGreen = pparams.blackwhite.gammaBlue = 0; } //if (options.baBehav[ADDSET_LD_EDGETOLERANCE]) pparams.lumaDenoise.edgetolerance = 0; - - if (options.baBehav[ADDSET_WB_TEMPERATURE]) { - pparams.wb.temperature = 0; - } - - if (options.baBehav[ADDSET_WB_GREEN]) { - pparams.wb.green = 0; - } - - if (options.baBehav[ADDSET_WB_EQUAL]) { - pparams.wb.equal = 0; - } - - if (options.baBehav[ADDSET_WB_TEMPBIAS]) { - pparams.wb.tempBias = 0; - } - - if (options.baBehav[ADDSET_VIBRANCE_PASTELS]) { - pparams.vibrance.pastels = 0; - } - - if (options.baBehav[ADDSET_VIBRANCE_SATURATED]) { - pparams.vibrance.saturated = 0; - } - - if (options.baBehav[ADDSET_CAT_DEGREE]) { - pparams.colorappearance.degree = 0; - } - - if (options.baBehav[ADDSET_CAT_ADAPTSCENE]) { - pparams.colorappearance.adapscen = 0; - } - - if (options.baBehav[ADDSET_CAT_ADAPTVIEWING]) { - pparams.colorappearance.adaplum = 0; - } - - if (options.baBehav[ADDSET_CAT_BADPIX]) { - pparams.colorappearance.badpixsl = 0; - } - - if (options.baBehav[ADDSET_CAT_LIGHT]) { - pparams.colorappearance.jlight = 0; - } - - if (options.baBehav[ADDSET_CAT_BRIGHT]) { - pparams.colorappearance.qbright = 0; - } - - if (options.baBehav[ADDSET_CAT_CHROMA]) { - pparams.colorappearance.chroma = 0; - } - - if (options.baBehav[ADDSET_CAT_CHROMA_S]) { - pparams.colorappearance.schroma = 0; - } - - if (options.baBehav[ADDSET_CAT_CHROMA_M]) { - pparams.colorappearance.mchroma = 0; - } - - if (options.baBehav[ADDSET_CAT_RSTPRO]) { - pparams.colorappearance.rstprotection = 0; - } - - if (options.baBehav[ADDSET_CAT_CONTRAST]) { - pparams.colorappearance.contrast = 0; - } - - if (options.baBehav[ADDSET_CAT_CONTRAST_Q]) { - pparams.colorappearance.qcontrast = 0; - } - - if (options.baBehav[ADDSET_CAT_HUE]) { - pparams.colorappearance.colorh = 0; - } - - if (options.baBehav[ADDSET_FREE_OUPUT_GAMMA]) { - pparams.icm.gampos = 0; - } - - if (options.baBehav[ADDSET_FREE_OUTPUT_SLOPE]) { - pparams.icm.slpos = 0; - } - + if (options.baBehav[ADDSET_WB_TEMPERATURE]) { pparams.wb.temperature = 0; } + if (options.baBehav[ADDSET_WB_GREEN]) { pparams.wb.green = 0; } + if (options.baBehav[ADDSET_WB_EQUAL]) { pparams.wb.equal = 0; } + if (options.baBehav[ADDSET_WB_TEMPBIAS]) { pparams.wb.tempBias = 0; } + if (options.baBehav[ADDSET_VIBRANCE_PASTELS]) { pparams.vibrance.pastels = 0; } + if (options.baBehav[ADDSET_VIBRANCE_SATURATED]) { pparams.vibrance.saturated = 0; } + if (options.baBehav[ADDSET_CAT_DEGREE]) { pparams.colorappearance.degree = 0; } + if (options.baBehav[ADDSET_CAT_ADAPTSCENE]) { pparams.colorappearance.adapscen = 0; } + if (options.baBehav[ADDSET_CAT_ADAPTVIEWING]) { pparams.colorappearance.adaplum = 0; } + if (options.baBehav[ADDSET_CAT_BADPIX]) { pparams.colorappearance.badpixsl = 0; } + if (options.baBehav[ADDSET_CAT_LIGHT]) { pparams.colorappearance.jlight = 0; } + if (options.baBehav[ADDSET_CAT_BRIGHT]) { pparams.colorappearance.qbright = 0; } + if (options.baBehav[ADDSET_CAT_CHROMA]) { pparams.colorappearance.chroma = 0; } + if (options.baBehav[ADDSET_CAT_CHROMA_S]) { pparams.colorappearance.schroma = 0; } + if (options.baBehav[ADDSET_CAT_CHROMA_M]) { pparams.colorappearance.mchroma = 0; } + if (options.baBehav[ADDSET_CAT_RSTPRO]) { pparams.colorappearance.rstprotection = 0; } + if (options.baBehav[ADDSET_CAT_CONTRAST]) { pparams.colorappearance.contrast = 0; } + if (options.baBehav[ADDSET_CAT_CONTRAST_Q]) { pparams.colorappearance.qcontrast = 0; } + if (options.baBehav[ADDSET_CAT_HUE]) { pparams.colorappearance.colorh = 0; } + if (options.baBehav[ADDSET_FREE_OUPUT_GAMMA]) { pparams.icm.gampos = 0; } + if (options.baBehav[ADDSET_FREE_OUTPUT_SLOPE]) { pparams.icm.slpos = 0; } //if (options.baBehav[ADDSET_CBOOST_AMOUNT]) pparams.colorBoost.amount = 0; - //if (options.baBehav[ADDSET_CS_BLUEYELLOW]) pparams.colorShift.a = 0; //if (options.baBehav[ADDSET_CS_GREENMAGENTA]) pparams.colorShift.b = 0; - if (options.baBehav[ADDSET_COLORTONING_SPLIT]) pparams.colorToning.redlow = pparams.colorToning.greenlow = pparams.colorToning.bluelow = - pparams.colorToning.redmed = pparams.colorToning.greenmed = pparams.colorToning.bluemed = - pparams.colorToning.redhigh = pparams.colorToning.greenhigh = pparams.colorToning.bluehigh = - pparams.colorToning.satlow = pparams.colorToning.sathigh = 0; - - if (options.baBehav[ADDSET_COLORTONING_SATTHRESHOLD]) { - pparams.colorToning.satProtectionThreshold = 0; + if (options.baBehav[ADDSET_COLORTONING_SPLIT]) { + pparams.colorToning.redlow = pparams.colorToning.greenlow = pparams.colorToning.bluelow = + pparams.colorToning.redmed = pparams.colorToning.greenmed = pparams.colorToning.bluemed = + pparams.colorToning.redhigh = pparams.colorToning.greenhigh = pparams.colorToning.bluehigh = + pparams.colorToning.satlow = pparams.colorToning.sathigh = 0; } - - if (options.baBehav[ADDSET_COLORTONING_SATOPACITY]) { - pparams.colorToning.saturatedOpacity = 0; - } - - if (options.baBehav[ADDSET_COLORTONING_BALANCE]) { - pparams.colorToning.balance = 0; - } - - if (options.baBehav[ADDSET_COLORTONING_STRENGTH]) { - pparams.colorToning.strength = 0; - } - - if (options.baBehav[ADDSET_FILMSIMULATION_STRENGTH]) { - pparams.filmSimulation.strength = 0; - } - - if (options.baBehav[ADDSET_ROTATE_DEGREE]) { - pparams.rotate.degree = 0; - } - - if (options.baBehav[ADDSET_DIST_AMOUNT]) { - pparams.distortion.amount = 0; - } - - if (options.baBehav[ADDSET_PERSPECTIVE]) { - pparams.perspective.horizontal = pparams.perspective.vertical = 0; - } - - if (options.baBehav[ADDSET_GRADIENT_DEGREE]) { - pparams.gradient.degree = 0; - } - - if (options.baBehav[ADDSET_GRADIENT_FEATHER]) { - pparams.gradient.feather = 0; - } - - if (options.baBehav[ADDSET_GRADIENT_STRENGTH]) { - pparams.gradient.strength = 0; - } - - if (options.baBehav[ADDSET_GRADIENT_CENTER]) { - pparams.gradient.centerX = 0; - } - - if (options.baBehav[ADDSET_GRADIENT_CENTER]) { - pparams.gradient.centerY = 0; - } - - /* - if (options.baBehav[ADDSET_LOCALLAB_DEGREE]) { - pparams.locallab.degree = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_LOCY]) { - pparams.locallab.locY = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_LOCX]) { - pparams.locallab.locX = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_LOCYT]) { - pparams.locallab.locYT = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_LOCXL]) { - pparams.locallab.locXL = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_CENTER]) { - pparams.locallab.centerX = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_CENTER]) { - pparams.locallab.centerY = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_LIGHTNESS]) { - pparams.locallab.lightness = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_CONTRAST]) { - pparams.locallab.contrast = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_CHROMA]) { - pparams.locallab.chroma = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_SENSI]) { - pparams.locallab.sensi = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_RADIUS]) { - pparams.locallab.radius = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_STRENGTH]) { - pparams.locallab.strength = 0; - } - - if (options.baBehav[ADDSET_LOCALLAB_TRANSIT]) { - pparams.locallab.transit = 0; - } - */ - if (options.baBehav[ADDSET_PCVIGNETTE_STRENGTH]) { - pparams.pcvignette.strength = 0; - } - - if (options.baBehav[ADDSET_PCVIGNETTE_FEATHER]) { - pparams.pcvignette.feather = 0; - } - - if (options.baBehav[ADDSET_PCVIGNETTE_ROUNDNESS]) { - pparams.pcvignette.roundness = 0; - } - - if (options.baBehav[ADDSET_CA]) { - pparams.cacorrection.red = 0; - } - - if (options.baBehav[ADDSET_CA]) { - pparams.cacorrection.blue = 0; - } - - if (options.baBehav[ADDSET_VIGN_AMOUNT]) { - pparams.vignetting.amount = 0; - } - - if (options.baBehav[ADDSET_VIGN_RADIUS]) { - pparams.vignetting.radius = 0; - } - - if (options.baBehav[ADDSET_VIGN_STRENGTH]) { - pparams.vignetting.strength = 0; - } - - if (options.baBehav[ADDSET_VIGN_CENTER]) { - pparams.vignetting.centerX = 0; - } - - if (options.baBehav[ADDSET_VIGN_CENTER]) { - pparams.vignetting.centerY = 0; - } - - if (options.baBehav[ADDSET_DIRPYREQ]) for (int i = 0; i < 6; i++) { - pparams.dirpyrequalizer.mult[i] = 0; - } - - if (options.baBehav[ADDSET_DIRPYREQ_THRESHOLD]) { - pparams.dirpyrequalizer.threshold = 0; - } - - if (options.baBehav[ADDSET_DIRPYREQ_SKINPROTECT]) { - pparams.dirpyrequalizer.skinprotect = 0; - } - - if (options.baBehav[ADDSET_WA]) for (int i = 0; i < 8; i++) { - pparams.wavelet.c[i] = 0; - } - - if (options.baBehav[ADDSET_WA_THRESHOLD]) { - pparams.wavelet.threshold = 0; - } - - if (options.baBehav[ADDSET_WA_THRESHOLD2]) { - pparams.wavelet.threshold2 = 0; - } - - if (options.baBehav[ADDSET_WA_SKINPROTECT]) { - pparams.wavelet.skinprotect = 0; - } - - if (options.baBehav[ADDSET_WA_CHRO]) { - pparams.wavelet.chro = 0; - } - - if (options.baBehav[ADDSET_WA_CHROMA]) { - pparams.wavelet.chroma = 0; - } - - if (options.baBehav[ADDSET_WA_CONTRAST]) { - pparams.wavelet.contrast = 0; - } - - if (options.baBehav[ADDSET_WA_THRES]) { - pparams.wavelet.thres = 0; - } - - if (options.baBehav[ADDSET_WA_RESCON]) { - pparams.wavelet.rescon = 0; - } - - if (options.baBehav[ADDSET_WA_RESCONH]) { - pparams.wavelet.resconH = 0; - } - - if (options.baBehav[ADDSET_WA_RESCHRO]) { - pparams.wavelet.reschro = 0; - } - - if (options.baBehav[ADDSET_WA_TMRS]) { - pparams.wavelet.tmrs = 0; - } - - if (options.baBehav[ADDSET_WA_THRR]) { - pparams.wavelet.thr = 0; - } - - if (options.baBehav[ADDSET_WA_THRRH]) { - pparams.wavelet.thrH = 0; - } - - if (options.baBehav[ADDSET_WA_SKYPROTECT]) { - pparams.wavelet.sky = 0; - } - - if (options.baBehav[ADDSET_WA_EDGRAD]) { - pparams.wavelet.edgrad = 0; - } - - if (options.baBehav[ADDSET_WA_EDGVAL]) { - pparams.wavelet.edgval = 0; - } - - if (options.baBehav[ADDSET_WA_STRENGTH]) { - pparams.wavelet.strength = 0; - } - - if (options.baBehav[ADDSET_WA_EDGEDETECT]) { - pparams.wavelet.edgedetect = 0; - } - - if (options.baBehav[ADDSET_WA_GAMMA]) { - pparams.wavelet.gamma = 0; - } - - if (options.baBehav[ADDSET_RETI_STR]) { - pparams.retinex.str = 0; - } - - if (options.baBehav[ADDSET_RETI_NEIGH]) { - pparams.retinex.neigh = 0; - } - - if (options.baBehav[ADDSET_RETI_LIMD]) { - pparams.retinex.limd = 0; - } - - if (options.baBehav[ADDSET_RETI_OFFS]) { - pparams.retinex.offs = 0; - } - - if (options.baBehav[ADDSET_RETI_VART]) { - pparams.retinex.vart = 0; - } - - if (options.baBehav[ADDSET_RETI_GAM]) { - pparams.retinex.gam = 0; - } - - if (options.baBehav[ADDSET_RETI_SLO]) { - pparams.retinex.slope = 0; - } - - if (options.baBehav[ADDSET_DIRPYRDN_LUMA]) { - pparams.dirpyrDenoise.luma = 0; - } - - if (options.baBehav[ADDSET_DIRPYRDN_CHROMA]) { - pparams.dirpyrDenoise.chroma = 0; - } - - if (options.baBehav[ADDSET_DIRPYRDN_CHROMARED]) { - pparams.dirpyrDenoise.redchro = 0; - } - - if (options.baBehav[ADDSET_DIRPYRDN_CHROMABLUE]) { - pparams.dirpyrDenoise.bluechro = 0; - } - -// pparams.dirpyrDenoise.Ldetail = pparams.dirpyrDenoise.luma = pparams.dirpyrDenoise.chroma = 0; - if (options.baBehav[ADDSET_DIRPYRDN_GAMMA]) { - pparams.dirpyrDenoise.gamma = 0; - } - - if (options.baBehav[ADDSET_RAWCACORR]) { - pparams.raw.cablue = pparams.raw.cared = 0; - } - - if (options.baBehav[ADDSET_RAWEXPOS_LINEAR]) { - pparams.raw.expos = 0; - } - - if (options.baBehav[ADDSET_RAWEXPOS_PRESER]) { - pparams.raw.preser = 0; - } - + if (options.baBehav[ADDSET_COLORTONING_SATTHRESHOLD]) { pparams.colorToning.satProtectionThreshold = 0; } + if (options.baBehav[ADDSET_COLORTONING_SATOPACITY]) { pparams.colorToning.saturatedOpacity = 0; } + if (options.baBehav[ADDSET_COLORTONING_BALANCE]) { pparams.colorToning.balance = 0; } + if (options.baBehav[ADDSET_COLORTONING_STRENGTH]) { pparams.colorToning.strength = 0; } + if (options.baBehav[ADDSET_FILMSIMULATION_STRENGTH]) { pparams.filmSimulation.strength = 0; } + if (options.baBehav[ADDSET_ROTATE_DEGREE]) { pparams.rotate.degree = 0; } + if (options.baBehav[ADDSET_RESIZE_SCALE]) { pparams.resize.scale = 0; } + if (options.baBehav[ADDSET_DIST_AMOUNT]) { pparams.distortion.amount = 0; } + if (options.baBehav[ADDSET_PERSPECTIVE]) { pparams.perspective.horizontal = pparams.perspective.vertical = 0; } + if (options.baBehav[ADDSET_GRADIENT_DEGREE]) { pparams.gradient.degree = 0; } + if (options.baBehav[ADDSET_GRADIENT_FEATHER]) { pparams.gradient.feather = 0; } + if (options.baBehav[ADDSET_GRADIENT_STRENGTH]) { pparams.gradient.strength = 0; } + if (options.baBehav[ADDSET_GRADIENT_CENTER]) { pparams.gradient.centerX = pparams.gradient.centerY = 0; } + if (options.baBehav[ADDSET_PCVIGNETTE_STRENGTH]) { pparams.pcvignette.strength = 0; } + if (options.baBehav[ADDSET_PCVIGNETTE_FEATHER]) { pparams.pcvignette.feather = 0; } + if (options.baBehav[ADDSET_PCVIGNETTE_ROUNDNESS]) { pparams.pcvignette.roundness = 0; } + if (options.baBehav[ADDSET_CA]) { pparams.cacorrection.red = pparams.cacorrection.blue = 0; } + if (options.baBehav[ADDSET_VIGN_AMOUNT]) { pparams.vignetting.amount = 0; } + if (options.baBehav[ADDSET_VIGN_RADIUS]) { pparams.vignetting.radius = 0; } + if (options.baBehav[ADDSET_VIGN_STRENGTH]) { pparams.vignetting.strength = 0; } + if (options.baBehav[ADDSET_VIGN_CENTER]) { pparams.vignetting.centerX = pparams.vignetting.centerY = 0; } + if (options.baBehav[ADDSET_DIRPYREQ]) for (int i = 0; i < 6; i++) { pparams.dirpyrequalizer.mult[i] = 0; } + if (options.baBehav[ADDSET_DIRPYREQ_THRESHOLD]) { pparams.dirpyrequalizer.threshold = 0; } + if (options.baBehav[ADDSET_DIRPYREQ_SKINPROTECT]) { pparams.dirpyrequalizer.skinprotect = 0; } + if (options.baBehav[ADDSET_WA]) for (int i = 0; i < 8; i++) { pparams.wavelet.c[i] = 0; } + if (options.baBehav[ADDSET_WA_THRESHOLD]) { pparams.wavelet.threshold = 0; } + if (options.baBehav[ADDSET_WA_THRESHOLD2]) { pparams.wavelet.threshold2 = 0; } + if (options.baBehav[ADDSET_WA_SKINPROTECT]) { pparams.wavelet.skinprotect = 0; } + if (options.baBehav[ADDSET_WA_CHRO]) { pparams.wavelet.chro = 0; } + if (options.baBehav[ADDSET_WA_CHROMA]) { pparams.wavelet.chroma = 0; } + if (options.baBehav[ADDSET_WA_CONTRAST]) { pparams.wavelet.contrast = 0; } + if (options.baBehav[ADDSET_WA_THRES]) { pparams.wavelet.thres = 0; } + if (options.baBehav[ADDSET_WA_RESCON]) { pparams.wavelet.rescon = 0; } + if (options.baBehav[ADDSET_WA_RESCONH]) { pparams.wavelet.resconH = 0; } + if (options.baBehav[ADDSET_WA_RESCHRO]) { pparams.wavelet.reschro = 0; } + if (options.baBehav[ADDSET_WA_TMRS]) { pparams.wavelet.tmrs = 0; } + if (options.baBehav[ADDSET_WA_THRR]) { pparams.wavelet.thr = 0; } + if (options.baBehav[ADDSET_WA_THRRH]) { pparams.wavelet.thrH = 0; } + if (options.baBehav[ADDSET_WA_SKYPROTECT]) { pparams.wavelet.sky = 0; } + if (options.baBehav[ADDSET_WA_EDGRAD]) { pparams.wavelet.edgrad = 0; } + if (options.baBehav[ADDSET_WA_EDGVAL]) { pparams.wavelet.edgval = 0; } + if (options.baBehav[ADDSET_WA_STRENGTH]) { pparams.wavelet.strength = 0; } + if (options.baBehav[ADDSET_WA_EDGEDETECT]) { pparams.wavelet.edgedetect = 0; } + if (options.baBehav[ADDSET_WA_GAMMA]) { pparams.wavelet.gamma = 0; } + if (options.baBehav[ADDSET_RETI_STR]) { pparams.retinex.str = 0; } + if (options.baBehav[ADDSET_RETI_NEIGH]) { pparams.retinex.neigh = 0; } + if (options.baBehav[ADDSET_RETI_LIMD]) { pparams.retinex.limd = 0; } + if (options.baBehav[ADDSET_RETI_OFFS]) { pparams.retinex.offs = 0; } + if (options.baBehav[ADDSET_RETI_VART]) { pparams.retinex.vart = 0; } + if (options.baBehav[ADDSET_RETI_GAM]) { pparams.retinex.gam = 0; } + if (options.baBehav[ADDSET_RETI_SLO]) { pparams.retinex.slope = 0; } + if (options.baBehav[ADDSET_DIRPYRDN_LUMA]) { pparams.dirpyrDenoise.luma = 0; } + if (options.baBehav[ADDSET_DIRPYRDN_CHROMA]) { pparams.dirpyrDenoise.chroma = 0; } + if (options.baBehav[ADDSET_DIRPYRDN_CHROMARED]) { pparams.dirpyrDenoise.redchro = 0; } + if (options.baBehav[ADDSET_DIRPYRDN_CHROMABLUE]) { pparams.dirpyrDenoise.bluechro = 0; } + //pparams.dirpyrDenoise.Ldetail = pparams.dirpyrDenoise.luma = pparams.dirpyrDenoise.chroma = 0; + if (options.baBehav[ADDSET_DIRPYRDN_GAMMA]) { pparams.dirpyrDenoise.gamma = 0; } + if (options.baBehav[ADDSET_RAWCACORR]) { pparams.raw.cablue = pparams.raw.cared = 0; } + if (options.baBehav[ADDSET_RAWEXPOS_LINEAR]) { pparams.raw.expos = 0; } + if (options.baBehav[ADDSET_RAWEXPOS_PRESER]) { pparams.raw.preser = 0; } if (options.baBehav[ADDSET_RAWEXPOS_BLACKS]) { - pparams.raw.bayersensor.black0 = pparams.raw.bayersensor.black1 = pparams.raw.bayersensor.black2 = pparams.raw.bayersensor.black3 = 0; + pparams.raw.bayersensor.black0 = pparams.raw.bayersensor.black1 = pparams.raw.bayersensor.black2 = pparams.raw.bayersensor.black3 = pparams.raw.xtranssensor.blackred = pparams.raw.xtranssensor.blackgreen = pparams.raw.xtranssensor.blackblue = 0; } - - if (options.baBehav[ADDSET_RAWFFCLIPCONTROL]) { - pparams.raw.ff_clipControl = 0; - } - - if (options.baBehav[ADDSET_PREPROCESS_GREENEQUIL]) { - pparams.raw.bayersensor.greenthresh = 0; - } - - if (options.baBehav[ADDSET_PREPROCESS_LINEDENOISE]) { - pparams.raw.bayersensor.linenoise = 0; - } + if (options.baBehav[ADDSET_RAWFFCLIPCONTROL]) { pparams.raw.ff_clipControl = 0; } + if (options.baBehav[ADDSET_PREPROCESS_GREENEQUIL]) { pparams.raw.bayersensor.greenthresh = 0; } + if (options.baBehav[ADDSET_PREPROCESS_LINEDENOISE]) { pparams.raw.bayersensor.linenoise = 0; } + // *INDENT-ON* } for (size_t i = 0; i < toolPanels.size(); i++) { diff --git a/rtgui/crop.cc b/rtgui/crop.cc index 4b9e22fd2..546d910ba 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -54,7 +54,43 @@ int notifyListenerUI (void* data) } -Crop::Crop (): FoldableToolPanel(this, "crop", M("TP_CROP_LABEL"), false, true), opt(0), wDirty(true), hDirty(true), xDirty(true), yDirty(true), lastFixRatio(true) +Crop::Crop(): + FoldableToolPanel(this, "crop", M("TP_CROP_LABEL"), false, true), + crop_ratios{ + {"3:2", 3.0 / 2.0}, // L1.5, P0.666... + {"4:3", 4.0 / 3.0}, // L1.333..., P0.75 + {"16:9", 16.0 / 9.0}, // L1.777..., P0.5625 + {"16:10", 16.0 / 10.0}, // L1.6, P0.625 + {"1:1", 1.0 / 1.0}, // L1, P1 + {"2:1", 2.0 / 1.0}, // L2, P0.5 + {"3:1", 3.0 / 1.0}, // L3, P0.333... + {"4:1", 4.0 / 1.0}, // L4, P0.25 + {"5:1", 5.0 / 1.0}, // L5, P0.2 + {"6:1", 6.0 / 1.0}, // L6, P0.1666... + {"7:1", 7.0 / 1.0}, // L7, P0.142... + {"4:5", 4.0 / 5.0}, // L1.25, P0.8 + {"5:7", 5.0 / 7.0}, // L1.4, P0.714... + {"6:7", 6.0 / 7.0}, // L1.166..., P0.857... + {"6:17", 6.0 / 17.0}, // L2.833..., P0.352... + {"24:65 - XPAN", 24.0 / 65.0}, // L2.708..., P0.369... + {"1.414 - DIN EN ISO 216", 1.414}, // L1.414, P0.707... + {"3.5:5", 3.5 / 5.0}, // L1.428..., P0.7 + {"8.5:11 - US Letter", 8.5 / 11.0}, // L1.294..., P0.772... + {"9.5:12", 9.5 / 12.0}, // L1.263..., P0.791... + {"10:12", 10.0 / 12.0}, // L1.2, P0.833... + {"11:14", 11.0 / 14.0}, // L1.272..., P0.785... + {"11:17 - Tabloid", 11.0 / 17.0}, // L1.545..., P0.647... + {"13:19", 13.0 / 19.0}, // L1.461..., P0.684... + {"17:22", 17.0 / 22.0}, // L1.294..., P0.772... + {"45:35 - ePassport", 45.0 / 35.0}, // L1.285,... P0.777... + {"64:27", 64.0 / 27.0}, // L2.370..., P0.421... + }, + opt(0), + wDirty(true), + hDirty(true), + xDirty(true), + yDirty(true), + lastFixRatio(true) { clistener = nullptr; @@ -145,70 +181,9 @@ Crop::Crop (): FoldableToolPanel(this, "crop", M("TP_CROP_LABEL"), false, true), ppi->set_value (300); // ppibox END - /**************** - * Crop Ratio - *****************/ - int NumberOfCropRatios = 26; //!!! change this value when adding new crop ratios - cropratio.resize (NumberOfCropRatios); - - cropratio[0].label = "3:2"; - cropratio[0].value = 3.0 / 2.0; - cropratio[1].label = "4:3"; - cropratio[1].value = 4.0 / 3.0; - cropratio[2].label = "16:9"; - cropratio[2].value = 16.0 / 9.0; - cropratio[3].label = "16:10"; - cropratio[3].value = 16.0 / 10.0; - cropratio[4].label = "1:1"; - cropratio[4].value = 1.0 / 1.0; - cropratio[5].label = "2:1"; - cropratio[5].value = 2.0 / 1.0; - cropratio[6].label = "3:1"; - cropratio[6].value = 3.0 / 1.0; - cropratio[7].label = "4:1"; - cropratio[7].value = 4.0 / 1.0; - cropratio[8].label = "5:1"; - cropratio[8].value = 5.0 / 1.0; - cropratio[9].label = "6:1"; - cropratio[9].value = 6.0 / 1.0; - cropratio[10].label = "7:1"; - cropratio[10].value = 7.0 / 1.0; - cropratio[11].label = "4:5"; - cropratio[11].value = 4.0 / 5.0; - cropratio[12].label = "5:7"; - cropratio[12].value = 5.0 / 7.0; - cropratio[13].label = "6:7"; - cropratio[13].value = 6.0 / 7.0; - cropratio[14].label = "6:17"; - cropratio[14].value = 6.0 / 17.0; - cropratio[15].label = "24:65 - XPAN"; - cropratio[15].value = 24.0 / 65.0; - cropratio[16].label = "1.414 - DIN EN ISO 216"; - cropratio[16].value = 1.414; - cropratio[17].label = "3.5:5"; - cropratio[17].value = 3.5 / 5.0; - cropratio[18].label = "8.5:11 - US Letter"; - cropratio[18].value = 8.5 / 11.0; - cropratio[19].label = "9.5:12"; - cropratio[19].value = 9.5 / 12.0; - cropratio[20].label = "10:12"; - cropratio[20].value = 10.0 / 12.0; - cropratio[21].label = "11:14"; - cropratio[21].value = 11.0 / 14.0; - cropratio[22].label = "11:17 - Tabloid"; - cropratio[22].value = 11.0 / 17.0; - cropratio[23].label = "13:19"; - cropratio[23].value = 13.0 / 19.0; - cropratio[24].label = "17:22"; - cropratio[24].value = 17.0 / 22.0; - cropratio[25].label = "45:35 - ePassport"; - cropratio[25].value = 45.0 / 35.0; - - - - // populate the combobox - for (int i = 0; i < NumberOfCropRatios; i++) { - ratio->append (cropratio[i].label); + // Populate the combobox + for (const auto& crop_ratio : crop_ratios) { + ratio->append (crop_ratio.label); } ratio->set_active (0); @@ -320,7 +295,7 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) ratio->set_active_text (pp->crop.ratio); fixr->set_active (pp->crop.fixratio); - const bool flip_orientation = pp->crop.fixratio && cropratio[ratio->get_active_row_number()].value < 1.0; + const bool flip_orientation = pp->crop.fixratio && crop_ratios[ratio->get_active_row_number()].value < 1.0; if (pp->crop.orientation == "Landscape") { orientation->set_active (flip_orientation ? 1 : 0); @@ -415,7 +390,7 @@ void Crop::write (ProcParams* pp, ParamsEdited* pedited) pp->crop.ratio = ratio->get_active_text (); // for historical reasons we store orientation different if ratio is written as 2:3 instead of 3:2, but in GUI 'landscape' is always long side horizontal regardless of the ratio is written short or long side first. - const bool flip_orientation = fixr->get_active() && cropratio[ratio->get_active_row_number()].value < 1.0; + const bool flip_orientation = fixr->get_active() && crop_ratios[ratio->get_active_row_number()].value < 1.0; if (orientation->get_active_row_number() == 0) { pp->crop.orientation = flip_orientation ? "Portrait" : "Landscape"; @@ -1289,7 +1264,7 @@ double Crop::getRatio () return r; } - r = cropratio[ratio->get_active_row_number()].value; + r = crop_ratios[ratio->get_active_row_number()].value; if (r < 1.0) { r = 1.0 / r; // convert to long side first (eg 4:5 becomes 5:4) diff --git a/rtgui/crop.h b/rtgui/crop.h index 4c2d7a209..e786d8364 100644 --- a/rtgui/crop.h +++ b/rtgui/crop.h @@ -33,11 +33,6 @@ public: virtual void cropSelectRequested() = 0; }; -struct CropRatio { - Glib::ustring label; - double value; -}; - class Crop final : public ToolParamBlock, public CropGUIListener, @@ -94,6 +89,15 @@ public: void rotateCrop (int deg, bool hflip, bool vflip); private: + struct CropRatio { + Glib::ustring label; + double value; + }; + + const std::vector crop_ratios; + + void adjustCropToRatio(); + Gtk::CheckButton* fixr; MyComboBoxText* ratio; MyComboBoxText* orientation; @@ -116,8 +120,6 @@ private: int lastRotationDeg; sigc::connection xconn, yconn, wconn, hconn, fconn, rconn, oconn, gconn; bool wDirty, hDirty, xDirty, yDirty, lastFixRatio; - void adjustCropToRatio(); - std::vector cropratio; IdleRegister idle_register; }; diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 8af0541fe..93426a1c6 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -1324,6 +1324,8 @@ void CropWindow::expose (Cairo::RefPtr cr) cr->set_source_rgb (0, 0, 0); } else if (backColor == 2) { cr->set_source_rgb (1, 1, 1); + } else if (backColor == 3) { + cr->set_source_rgb (0.467, 0.467, 0.467); } cr->set_line_width (0.); @@ -1359,13 +1361,13 @@ void CropWindow::expose (Cairo::RefPtr cr) imgH = cropHandler.cropPixbuf->get_height (); exposeVersion++; - bool showcs = iarea->indClippedPanel->showClippedShadows(); - bool showch = iarea->indClippedPanel->showClippedHighlights(); const bool showR = iarea->previewModePanel->showR(); // will show clipping if R channel is clipped const bool showG = iarea->previewModePanel->showG(); // will show clipping if G channel is clipped const bool showB = iarea->previewModePanel->showB(); // will show clipping if B channel is clipped const bool showL = iarea->previewModePanel->showL(); // will show clipping if L value is clipped - const bool showFocusMask = iarea->previewModePanel->showFocusMask(); + const bool showFocusMask = iarea->indClippedPanel->showFocusMask(); + bool showcs = iarea->indClippedPanel->showClippedShadows(); + bool showch = iarea->indClippedPanel->showClippedHighlights(); // While the Right-side ALT is pressed, auto-enable highlight and shadow clipping indicators // TODO: Add linux/MacOS specific functions for alternative diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 71d0729e6..f1835be89 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -1581,11 +1581,7 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) return true; case GDK_KEY_F: //preview mode Focus Mask - iareapanel->imageArea->previewModePanel->toggleFocusMask(); - return true; - - case GDK_KEY_f: - iareapanel->imageArea->zoomPanel->zoomFitClicked(); + iareapanel->imageArea->indClippedPanel->toggleFocusMask(); return true; case GDK_KEY_less: @@ -1596,6 +1592,10 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) iareapanel->imageArea->indClippedPanel->toggleClipped (true); return true; + case GDK_KEY_f: + iareapanel->imageArea->zoomPanel->zoomFitClicked(); + return true; + case GDK_KEY_F5: openThm->openDefaultViewer ((event->state & GDK_SHIFT_MASK) ? 2 : 1); return true; diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index 989ff2758..a72889404 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -247,9 +247,10 @@ void drawCrop (Cairo::RefPtr cr, int imx, int imy, int imw, int cr->set_source_rgb (0, 0, 0); } else if (options.bgcolor == 2) { cr->set_source_rgb (1, 1, 1); + } else if (options.bgcolor == 3) { + cr->set_source_rgb (0.467, 0.467, 0.467); } - cr->rectangle (imx, imy, imw + 0.5, round(c1y) + 0.5); cr->rectangle (imx, round(imy + c2y) + 0.5, imw + 0.5, round(imh - c2y) + 0.5); cr->rectangle (imx, round(imy + c1y) + 0.5, round(c1x) + 0.5, round(c2y - c1y + 1) + 0.5); diff --git a/rtgui/indclippedpanel.cc b/rtgui/indclippedpanel.cc index 72180b31a..ae7cff644 100644 --- a/rtgui/indclippedpanel.cc +++ b/rtgui/indclippedpanel.cc @@ -24,38 +24,49 @@ IndicateClippedPanel::IndicateClippedPanel (ImageArea* ia) : imageArea(ia) { + iFon = new RTImage ("previewmodeF-focusScreen-on.png"); + iFoff = new RTImage ("previewmodeF-focusScreen-off.png"); + + previewFocusMask = Gtk::manage (new Gtk::ToggleButton ()); + previewFocusMask->set_relief(Gtk::RELIEF_NONE); + previewFocusMask->set_tooltip_markup (M("MAIN_TOOLTIP_PREVIEWFOCUSMASK")); + previewFocusMask->set_image(*iFoff); + Glib::ustring tt; - indclippedh = Gtk::manage (new Gtk::ToggleButton ()); - indclippedh->set_relief(Gtk::RELIEF_NONE); - indclippedh->add (*Gtk::manage (new RTImage ("warnhl.png"))); + indClippedH = Gtk::manage (new Gtk::ToggleButton ()); + indClippedH->set_relief(Gtk::RELIEF_NONE); + indClippedH->add (*Gtk::manage (new RTImage ("warnhl.png"))); tt = Glib::ustring::compose("%1\n%2 = %3", M("MAIN_TOOLTIP_INDCLIPPEDH"), M("MAIN_TOOLTIP_THRESHOLD"), options.highlightThreshold); if (tt.find("<") == Glib::ustring::npos && tt.find(">") == Glib::ustring::npos) { - indclippedh->set_tooltip_text (tt); + indClippedH->set_tooltip_text (tt); } else { - indclippedh->set_tooltip_markup (tt); + indClippedH->set_tooltip_markup (tt); } - indclippeds = Gtk::manage (new Gtk::ToggleButton ()); - indclippeds->set_relief(Gtk::RELIEF_NONE); - indclippeds->add (*Gtk::manage (new RTImage ("warnsh.png"))); + indClippedS = Gtk::manage (new Gtk::ToggleButton ()); + indClippedS->set_relief(Gtk::RELIEF_NONE); + indClippedS->add (*Gtk::manage (new RTImage ("warnsh.png"))); tt = Glib::ustring::compose("%1\n%2 = %3", M("MAIN_TOOLTIP_INDCLIPPEDS"), M("MAIN_TOOLTIP_THRESHOLD"), options.shadowThreshold); if (tt.find("<") == Glib::ustring::npos && tt.find(">") == Glib::ustring::npos) { - indclippeds->set_tooltip_text (tt); + indClippedS->set_tooltip_text (tt); } else { - indclippeds->set_tooltip_markup (tt); + indClippedS->set_tooltip_markup (tt); } - indclippedh->set_active (options.showClippedHighlights); - indclippeds->set_active (options.showClippedShadows); + previewFocusMask->set_active (false); + indClippedH->set_active (options.showClippedHighlights); + indClippedS->set_active (options.showClippedShadows); - pack_start (*indclippeds, Gtk::PACK_SHRINK, 0); - pack_start (*indclippedh, Gtk::PACK_SHRINK, 0); + pack_start (*previewFocusMask, Gtk::PACK_SHRINK, 0); + pack_start (*indClippedS, Gtk::PACK_SHRINK, 0); + pack_start (*indClippedH, Gtk::PACK_SHRINK, 0); - indclippedh->signal_toggled().connect( sigc::mem_fun(*this, &IndicateClippedPanel::buttonToggled) ); - indclippeds->signal_toggled().connect( sigc::mem_fun(*this, &IndicateClippedPanel::buttonToggled) ); + connFocusMask = previewFocusMask->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &IndicateClippedPanel::buttonToggled), previewFocusMask) ); + connClippedS = indClippedS->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &IndicateClippedPanel::buttonToggled), indClippedS) ); + connClippedH = indClippedH->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &IndicateClippedPanel::buttonToggled), indClippedH) ); show_all (); } @@ -64,14 +75,41 @@ IndicateClippedPanel::IndicateClippedPanel (ImageArea* ia) : imageArea(ia) void IndicateClippedPanel::toggleClipped (bool highlights) { if (highlights) { - indclippedh->set_active(!indclippedh->get_active()); + indClippedH->set_active(!indClippedH->get_active()); } else { - indclippeds->set_active(!indclippeds->get_active()); + indClippedS->set_active(!indClippedS->get_active()); } } -void IndicateClippedPanel::buttonToggled () +void IndicateClippedPanel::toggleFocusMask () { + previewFocusMask->set_active(!previewFocusMask->get_active()); +} + +void IndicateClippedPanel::buttonToggled (Gtk::ToggleButton* tb) +{ + + connFocusMask.block(true); + connClippedS.block(true); + connClippedH.block(true); + + if (tb != previewFocusMask) { + previewFocusMask->set_active(false); + } else { + if (indClippedS->get_active()) { + indClippedS->set_active(false); + } + if (indClippedH->get_active()) { + indClippedH->set_active(false); + } + } + + previewFocusMask->set_image(previewFocusMask->get_active() ? *iFon : *iFoff); + + connFocusMask.block(false); + connClippedS.block(false); + connClippedH.block(false); + imageArea->queue_draw (); // this will redraw the linked Before image area @@ -80,3 +118,9 @@ void IndicateClippedPanel::buttonToggled () imageArea->iLinkedImageArea->queue_draw (); } } + +IndicateClippedPanel::~IndicateClippedPanel () +{ + delete iFon; + delete iFoff; +} diff --git a/rtgui/indclippedpanel.h b/rtgui/indclippedpanel.h index 3a6bc5296..1da4b61de 100644 --- a/rtgui/indclippedpanel.h +++ b/rtgui/indclippedpanel.h @@ -25,24 +25,34 @@ class IndicateClippedPanel : public Gtk::HBox { protected: - Gtk::ToggleButton* indclippedh; - Gtk::ToggleButton* indclippeds; + Gtk::Image* iFon, *iFoff; + Gtk::ToggleButton* previewFocusMask; + Gtk::ToggleButton* indClippedH; + Gtk::ToggleButton* indClippedS; ImageArea* imageArea; public: - explicit IndicateClippedPanel (ImageArea* ia); + explicit IndicateClippedPanel(ImageArea* ia); + ~IndicateClippedPanel(); - void buttonToggled (); + void buttonToggled(Gtk::ToggleButton* tb); + void toggleClipped(bool highlights); // inverts a toggle programmatically + void toggleFocusMask(); - void toggleClipped (bool highlights); // inverts a toggle programmatically + sigc::connection connFocusMask, connClippedS, connClippedH; - bool showClippedShadows () + + bool showFocusMask () { - return indclippeds->get_active (); + return previewFocusMask->get_active (); } - bool showClippedHighlights () + bool showClippedShadows() { - return indclippedh->get_active (); + return indClippedS->get_active(); + } + bool showClippedHighlights() + { + return indClippedH->get_active(); } }; diff --git a/rtgui/main-cli.cc b/rtgui/main-cli.cc index 7908b9133..36ef4ce8b 100644 --- a/rtgui/main-cli.cc +++ b/rtgui/main-cli.cc @@ -285,8 +285,7 @@ bool dontLoadCache ( int argc, char **argv ) #if ECLIPSE_ARGS currParam = currParam.substr (1, currParam.length() - 2); #endif - - if ( currParam.at (0) == '-' && currParam.at (1) == 'q' ) { + if ( currParam.length() > 1 && currParam.at(0) == '-' && currParam.at(1) == 'q' ) { return true; } } @@ -317,6 +316,9 @@ int processLineParams ( int argc, char **argv ) for ( int iArg = 1; iArg < argc; iArg++) { Glib::ustring currParam (argv[iArg]); + if ( currParam.empty() ) { + continue; + } #if ECLIPSE_ARGS currParam = currParam.substr (1, currParam.length() - 2); #endif diff --git a/rtgui/main.cc b/rtgui/main.cc index cd2e273f3..5a4f37259 100644 --- a/rtgui/main.cc +++ b/rtgui/main.cc @@ -123,6 +123,9 @@ int processLineParams ( int argc, char **argv ) { for ( int iArg = 1; iArg < argc; iArg++) { Glib::ustring currParam (argv[iArg]); + if ( currParam.empty() ) { + continue; + } #if ECLIPSE_ARGS currParam = currParam.substr (1, currParam.length() - 2); #endif @@ -698,4 +701,3 @@ int main (int argc, char **argv) return ret; } - diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index f12515fce..3b497de4a 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -1509,7 +1509,7 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (labCurve.contrast) { - toEdit.labCurve.contrast = dontforceSet && options.baBehav[ADDSET_LC_CONTRAST] ? toEdit.labCurve.contrast + mods.labCurve.contrast : mods.labCurve.contrast; + toEdit.labCurve.contrast = dontforceSet && options.baBehav[ADDSET_LC_CONTRAST] ? toEdit.labCurve.contrast + mods.labCurve.contrast : mods.labCurve.contrast; } if (labCurve.chromaticity) { @@ -1517,15 +1517,15 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (labCurve.avoidcolorshift) { - toEdit.labCurve.avoidcolorshift = mods.labCurve.avoidcolorshift; + toEdit.labCurve.avoidcolorshift = mods.labCurve.avoidcolorshift; } if (labCurve.rstprotection) { - toEdit.labCurve.rstprotection = mods.labCurve.rstprotection; + toEdit.labCurve.rstprotection = mods.labCurve.rstprotection; } if (labCurve.lcredsk) { - toEdit.labCurve.lcredsk = mods.labCurve.lcredsk; + toEdit.labCurve.lcredsk = mods.labCurve.lcredsk; } if (rgbCurves.lumamode) { @@ -1545,11 +1545,11 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (colorToning.enabled) { - toEdit.colorToning.enabled = mods.colorToning.enabled; + toEdit.colorToning.enabled = mods.colorToning.enabled; } if (colorToning.twocolor) { - toEdit.colorToning.twocolor = mods.colorToning.twocolor; + toEdit.colorToning.twocolor = mods.colorToning.twocolor; } if (colorToning.opacityCurve) { @@ -1573,19 +1573,19 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (colorToning.autosat) { - toEdit.colorToning.autosat = mods.colorToning.autosat; + toEdit.colorToning.autosat = mods.colorToning.autosat; } if (colorToning.saturatedopacity) { - toEdit.colorToning.saturatedOpacity = dontforceSet && options.baBehav[ADDSET_COLORTONING_SATOPACITY] ? toEdit.colorToning.saturatedOpacity + mods.colorToning.saturatedOpacity : mods.colorToning.saturatedOpacity; + toEdit.colorToning.saturatedOpacity = dontforceSet && options.baBehav[ADDSET_COLORTONING_SATOPACITY] ? toEdit.colorToning.saturatedOpacity + mods.colorToning.saturatedOpacity : mods.colorToning.saturatedOpacity; } if (colorToning.strength) { - toEdit.colorToning.strength = dontforceSet && options.baBehav[ADDSET_COLORTONING_STRENGTH] ? toEdit.colorToning.strength + mods.colorToning.strength : mods.colorToning.strength; + toEdit.colorToning.strength = dontforceSet && options.baBehav[ADDSET_COLORTONING_STRENGTH] ? toEdit.colorToning.strength + mods.colorToning.strength : mods.colorToning.strength; } if (colorToning.shadowsColSat) { - toEdit.colorToning.shadowsColSat = mods.colorToning.shadowsColSat; + toEdit.colorToning.shadowsColSat = mods.colorToning.shadowsColSat; } if (colorToning.hlColSat) { @@ -1693,7 +1693,7 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (sharpening.radius) { - toEdit.sharpening.radius = mods.sharpening.radius; + toEdit.sharpening.radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.sharpening.radius + mods.sharpening.radius : mods.sharpening.radius; } if (sharpening.amount) { @@ -1709,19 +1709,19 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (sharpening.edges_radius) { - toEdit.sharpening.edges_radius = mods.sharpening.edges_radius; + toEdit.sharpening.edges_radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.sharpening.edges_radius + mods.sharpening.edges_radius: mods.sharpening.edges_radius; } if (sharpening.edges_tolerance) { - toEdit.sharpening.edges_tolerance = mods.sharpening.edges_tolerance; + toEdit.sharpening.edges_tolerance = dontforceSet && options.baBehav[ADDSET_SHARP_EDGETOL] ? toEdit.sharpening.edges_tolerance + mods.sharpening.edges_tolerance : mods.sharpening.edges_tolerance; } if (sharpening.halocontrol) { - toEdit.sharpening.halocontrol = mods.sharpening.halocontrol; + toEdit.sharpening.halocontrol = mods.sharpening.halocontrol; } if (sharpening.halocontrol_amount) { - toEdit.sharpening.halocontrol_amount = mods.sharpening.halocontrol_amount; + toEdit.sharpening.halocontrol_amount = dontforceSet && options.baBehav[ADDSET_SHARP_HALOCTRL] ? toEdit.sharpening.halocontrol_amount + mods.sharpening.halocontrol_amount : mods.sharpening.halocontrol_amount; } if (sharpening.method) { @@ -1729,19 +1729,19 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (sharpening.deconvamount) { - toEdit.sharpening.deconvamount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.sharpening.deconvamount + mods.sharpening.deconvamount : mods.sharpening.deconvamount; + toEdit.sharpening.deconvamount = dontforceSet && options.baBehav[ADDSET_SHARP_AMOUNT] ? toEdit.sharpening.deconvamount + mods.sharpening.deconvamount : mods.sharpening.deconvamount; } if (sharpening.deconvradius) { - toEdit.sharpening.deconvradius = mods.sharpening.deconvradius; + toEdit.sharpening.deconvradius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.sharpening.deconvradius + mods.sharpening.deconvradius : mods.sharpening.deconvradius; } if (sharpening.deconviter) { - toEdit.sharpening.deconviter = mods.sharpening.deconviter; + toEdit.sharpening.deconviter = dontforceSet && options.baBehav[ADDSET_SHARP_ITER] ? toEdit.sharpening.deconviter + mods.sharpening.deconviter : mods.sharpening.deconviter; } if (sharpening.deconvdamping) { - toEdit.sharpening.deconvdamping = mods.sharpening.deconvdamping; + toEdit.sharpening.deconvdamping = dontforceSet && options.baBehav[ADDSET_SHARP_DAMPING] ? toEdit.sharpening.deconvdamping + mods.sharpening.deconvdamping : mods.sharpening.deconvdamping; } if (prsharpening.enabled) { @@ -1749,7 +1749,7 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (prsharpening.radius) { - toEdit.prsharpening.radius = mods.prsharpening.radius; + toEdit.prsharpening.radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.prsharpening.radius + mods.prsharpening.radius : mods.prsharpening.radius; } if (prsharpening.amount) { @@ -1765,11 +1765,11 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (prsharpening.edges_radius) { - toEdit.prsharpening.edges_radius = mods.prsharpening.edges_radius; + toEdit.prsharpening.edges_radius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.prsharpening.edges_radius + mods.prsharpening.edges_radius : mods.prsharpening.edges_radius; } if (prsharpening.edges_tolerance) { - toEdit.prsharpening.edges_tolerance = mods.prsharpening.edges_tolerance; + toEdit.prsharpening.edges_tolerance = dontforceSet && options.baBehav[ADDSET_SHARP_EDGETOL] ? toEdit.prsharpening.edges_tolerance + mods.prsharpening.edges_tolerance : mods.prsharpening.edges_tolerance; } if (prsharpening.halocontrol) { @@ -1777,7 +1777,7 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (prsharpening.halocontrol_amount) { - toEdit.prsharpening.halocontrol_amount = mods.prsharpening.halocontrol_amount; + toEdit.prsharpening.halocontrol_amount = dontforceSet && options.baBehav[ADDSET_SHARP_HALOCTRL] ? toEdit.prsharpening.halocontrol_amount + mods.prsharpening.halocontrol_amount : mods.prsharpening.halocontrol_amount; } if (prsharpening.method) { @@ -1789,15 +1789,15 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (prsharpening.deconvradius) { - toEdit.prsharpening.deconvradius = mods.prsharpening.deconvradius; + toEdit.prsharpening.deconvradius = dontforceSet && options.baBehav[ADDSET_SHARP_RADIUS] ? toEdit.prsharpening.deconvradius + mods.prsharpening.deconvradius : mods.prsharpening.deconvradius; } if (prsharpening.deconviter) { - toEdit.prsharpening.deconviter = mods.prsharpening.deconviter; + toEdit.prsharpening.deconviter = dontforceSet && options.baBehav[ADDSET_SHARP_ITER] ? toEdit.prsharpening.deconviter + mods.prsharpening.deconviter : mods.prsharpening.deconviter; } if (prsharpening.deconvdamping) { - toEdit.prsharpening.deconvdamping = mods.prsharpening.deconvdamping; + toEdit.prsharpening.deconvdamping = dontforceSet && options.baBehav[ADDSET_SHARP_DAMPING] ? toEdit.prsharpening.deconvdamping + mods.prsharpening.deconvdamping : mods.prsharpening.deconvdamping; } if (vibrance.enabled) { @@ -1937,7 +1937,7 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (colorappearance.adapscen) { - toEdit.colorappearance.adapscen = mods.colorappearance.adapscen; + toEdit.colorappearance.adapscen = dontforceSet && options.baBehav[ADDSET_CAT_ADAPTSCENE] ? toEdit.colorappearance.adapscen + mods.colorappearance.adapscen : mods.colorappearance.adapscen; } if (colorappearance.autoybscen) { @@ -2272,23 +2272,23 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (gradient.degree) { - toEdit.gradient.degree = dontforceSet && options.baBehav[ADDSET_GRADIENT_DEGREE] ? toEdit.gradient.degree + mods.gradient.degree : mods.gradient.degree; + toEdit.gradient.degree = dontforceSet && options.baBehav[ADDSET_GRADIENT_DEGREE] ? toEdit.gradient.degree + mods.gradient.degree : mods.gradient.degree; } if (gradient.feather) { - toEdit.gradient.feather = mods.gradient.feather; + toEdit.gradient.feather = dontforceSet && options.baBehav[ADDSET_GRADIENT_FEATHER] ? toEdit.gradient.feather + mods.gradient.feather : mods.gradient.feather; } if (gradient.strength) { - toEdit.gradient.strength = mods.gradient.strength; + toEdit.gradient.strength = dontforceSet && options.baBehav[ADDSET_GRADIENT_STRENGTH] ? toEdit.gradient.strength + mods.gradient.strength : mods.gradient.strength; } if (gradient.centerX) { - toEdit.gradient.centerX = mods.gradient.centerX; + toEdit.gradient.centerX = dontforceSet && options.baBehav[ADDSET_GRADIENT_CENTER] ? toEdit.gradient.centerX + mods.gradient.centerX : mods.gradient.centerX; } if (gradient.centerY) { - toEdit.gradient.centerY = mods.gradient.centerY; + toEdit.gradient.centerY = dontforceSet && options.baBehav[ADDSET_GRADIENT_CENTER] ? toEdit.gradient.centerY + mods.gradient.centerY : mods.gradient.centerY; } if (locallab.enabled) { @@ -2655,15 +2655,15 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (pcvignette.strength) { - toEdit.pcvignette.strength = mods.pcvignette.strength; + toEdit.pcvignette.strength = dontforceSet && options.baBehav[ADDSET_PCVIGNETTE_STRENGTH] ? toEdit.pcvignette.strength + mods.pcvignette.strength : mods.pcvignette.strength; } if (pcvignette.feather) { - toEdit.pcvignette.feather = mods.pcvignette.feather; + toEdit.pcvignette.feather = dontforceSet && options.baBehav[ADDSET_PCVIGNETTE_FEATHER] ? toEdit.pcvignette.feather + mods.pcvignette.feather : mods.pcvignette.feather; } if (pcvignette.roundness) { - toEdit.pcvignette.roundness = mods.pcvignette.roundness; + toEdit.pcvignette.roundness = dontforceSet && options.baBehav[ADDSET_PCVIGNETTE_ROUNDNESS] ? toEdit.pcvignette.roundness + mods.pcvignette.roundness : mods.pcvignette.roundness; } if (cacorrection.red) { @@ -2679,19 +2679,19 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (vignetting.radius) { - toEdit.vignetting.radius = mods.vignetting.radius; + toEdit.vignetting.radius = dontforceSet && options.baBehav[ADDSET_VIGN_RADIUS] ? toEdit.vignetting.radius + mods.vignetting.radius : mods.vignetting.radius; } if (vignetting.strength) { - toEdit.vignetting.strength = mods.vignetting.strength; + toEdit.vignetting.strength = dontforceSet && options.baBehav[ADDSET_VIGN_STRENGTH] ? toEdit.vignetting.strength + mods.vignetting.strength : mods.vignetting.strength; } if (vignetting.centerX) { - toEdit.vignetting.centerX = mods.vignetting.centerX; + toEdit.vignetting.centerX = dontforceSet && options.baBehav[ADDSET_VIGN_CENTER] ? toEdit.vignetting.centerX + mods.vignetting.centerX : mods.vignetting.centerX; } if (vignetting.centerY) { - toEdit.vignetting.centerY = mods.vignetting.centerY; + toEdit.vignetting.centerY = dontforceSet && options.baBehav[ADDSET_VIGN_CENTER] ? toEdit.vignetting.centerY + mods.vignetting.centerY : mods.vignetting.centerY; } for (int i = 0; i < 3; i++) { @@ -2801,7 +2801,7 @@ void ParamsEdited::combine (rtengine::procparams::ProcParams& toEdit, const rten } if (resize.scale) { - toEdit.resize.scale = mods.resize.scale; + toEdit.resize.scale = dontforceSet && options.baBehav[ADDSET_RESIZE_SCALE] ? toEdit.resize.scale + mods.resize.scale : mods.resize.scale; } if (resize.appliesTo) { diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 3576a0f7e..9401c5b6b 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -210,9 +210,12 @@ Gtk::Widget* Preferences::getBatchProcPanel () appendBehavList (mi, M ("TP_LABCURVE_CONTRAST"), ADDSET_LC_CONTRAST, false); appendBehavList (mi, M ("TP_LABCURVE_CHROMATICITY"), ADDSET_LC_CHROMATICITY, false); - mi = behModel->append (); + mi = behModel->append (); // Used for both Resize and Post-Resize sharpening mi->set_value (behavColumns.label, M ("TP_SHARPENING_LABEL")); + appendBehavList (mi, M ("TP_SHARPENING_RADIUS"), ADDSET_SHARP_RADIUS, false); appendBehavList (mi, M ("TP_SHARPENING_AMOUNT"), ADDSET_SHARP_AMOUNT, false); + appendBehavList (mi, M ("TP_SHARPENING_RLD_DAMPING"), ADDSET_SHARP_DAMPING, false); + appendBehavList (mi, M ("TP_SHARPENING_RLD_ITERATIONS"), ADDSET_SHARP_ITER, false); mi = behModel->append (); mi->set_value (behavColumns.label, M ("TP_SHARPENEDGE_LABEL")); @@ -293,6 +296,11 @@ Gtk::Widget* Preferences::getBatchProcPanel () mi->set_value (behavColumns.label, M ("TP_ROTATE_LABEL")); appendBehavList (mi, M ("TP_ROTATE_DEGREE"), ADDSET_ROTATE_DEGREE, false); + mi = behModel->append (); + mi->set_value (behavColumns.label, M ("TP_RESIZE_LABEL")); + appendBehavList (mi, M ("TP_RESIZE_SCALE"), ADDSET_RESIZE_SCALE, true); + + mi = behModel->append (); mi->set_value (behavColumns.label, M ("TP_DISTORTION_LABEL")); appendBehavList (mi, M ("TP_DISTORTION_AMOUNT"), ADDSET_DIST_AMOUNT, false); diff --git a/rtgui/previewmodepanel.cc b/rtgui/previewmodepanel.cc index 50beb8b66..60b450e4a 100644 --- a/rtgui/previewmodepanel.cc +++ b/rtgui/previewmodepanel.cc @@ -28,19 +28,19 @@ PreviewModePanel::PreviewModePanel (ImageArea* ia) : imageArea(ia) iG = new RTImage ("previewmodeG-on.png"); iB = new RTImage ("previewmodeB-on.png"); iL = new RTImage ("previewmodeL-on.png"); - iF = new RTImage ("previewmodeF-on.png"); iBC0 = new RTImage ("previewmodeBC0-on.png"); iBC1 = new RTImage ("previewmodeBC1-on.png"); iBC2 = new RTImage ("previewmodeBC2-on.png"); + iBC3 = new RTImage ("previewmodeBC3-on.png"); igR = new RTImage ("previewmodeR-off.png"); igG = new RTImage ("previewmodeG-off.png"); igB = new RTImage ("previewmodeB-off.png"); igL = new RTImage ("previewmodeL-off.png"); - igF = new RTImage ("previewmodeF-off.png"); igBC0 = new RTImage ("previewmodeBC0-off.png"); igBC1 = new RTImage ("previewmodeBC1-off.png"); igBC2 = new RTImage ("previewmodeBC2-off.png"); + igBC3 = new RTImage ("previewmodeBC3-off.png"); backColor0 = Gtk::manage (new Gtk::ToggleButton ()); backColor0->set_relief(Gtk::RELIEF_NONE); @@ -52,6 +52,11 @@ PreviewModePanel::PreviewModePanel (ImageArea* ia) : imageArea(ia) backColor1->set_tooltip_markup (M("MAIN_TOOLTIP_BACKCOLOR1")); backColor1->set_image(options.bgcolor == 1 ? *iBC1 : *igBC1); + backColor3 = Gtk::manage (new Gtk::ToggleButton ()); + backColor3->set_relief(Gtk::RELIEF_NONE); + backColor3->set_tooltip_markup (M("MAIN_TOOLTIP_BACKCOLOR3")); + backColor3->set_image(options.bgcolor == 3 ? *iBC3 : *igBC3); + backColor2 = Gtk::manage (new Gtk::ToggleButton ()); backColor2->set_relief(Gtk::RELIEF_NONE); backColor2->set_tooltip_markup (M("MAIN_TOOLTIP_BACKCOLOR2")); @@ -77,42 +82,37 @@ PreviewModePanel::PreviewModePanel (ImageArea* ia) : imageArea(ia) previewL->set_tooltip_markup (M("MAIN_TOOLTIP_PREVIEWL")); previewL->set_image(*igL); - previewFocusMask = Gtk::manage (new Gtk::ToggleButton ()); - previewFocusMask->set_relief(Gtk::RELIEF_NONE); - previewFocusMask->set_tooltip_markup (M("MAIN_TOOLTIP_PREVIEWFOCUSMASK")); - previewFocusMask->set_image(*igF); - previewR->set_active (false); previewG->set_active (false); previewB->set_active (false); previewL->set_active (false); - previewFocusMask->set_active (false); backColor0->set_active (options.bgcolor == 0); backColor1->set_active (options.bgcolor == 1); backColor2->set_active (options.bgcolor == 2); + backColor3->set_active (options.bgcolor == 3); - vbbackColor = Gtk::manage (new Gtk::VBox ()); - vbbackColor->pack_start (*backColor0, Gtk::PACK_SHRINK, 0); - vbbackColor->pack_start (*backColor1, Gtk::PACK_SHRINK, 0); - vbbackColor->pack_start (*backColor2, Gtk::PACK_SHRINK, 0); - pack_start (*vbbackColor, Gtk::PACK_SHRINK, 0); + pack_start (*backColor0, Gtk::PACK_SHRINK, 0); + pack_start (*backColor1, Gtk::PACK_SHRINK, 0); + pack_start (*backColor3, Gtk::PACK_SHRINK, 0); + pack_start (*backColor2, Gtk::PACK_SHRINK, 0); + + pack_start (*Gtk::manage (new Gtk::VSeparator ()), Gtk::PACK_SHRINK, 2); pack_start (*previewR, Gtk::PACK_SHRINK, 0); pack_start (*previewG, Gtk::PACK_SHRINK, 0); pack_start (*previewB, Gtk::PACK_SHRINK, 0); pack_start (*previewL, Gtk::PACK_SHRINK, 0); - pack_start (*previewFocusMask, Gtk::PACK_SHRINK, 0); connR = previewR->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &PreviewModePanel::buttonToggled), previewR) ); connG = previewG->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &PreviewModePanel::buttonToggled), previewG) ); connB = previewB->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &PreviewModePanel::buttonToggled), previewB) ); connL = previewL->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &PreviewModePanel::buttonToggled), previewL) ); - connFocusMask = previewFocusMask->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &PreviewModePanel::buttonToggled), previewFocusMask) ); connbackColor0 = backColor0->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &PreviewModePanel::buttonToggled_backColor), backColor0) ); connbackColor1 = backColor1->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &PreviewModePanel::buttonToggled_backColor), backColor1) ); connbackColor2 = backColor2->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &PreviewModePanel::buttonToggled_backColor), backColor2) ); + connbackColor3 = backColor3->signal_toggled().connect( sigc::bind(sigc::mem_fun(*this, &PreviewModePanel::buttonToggled_backColor), backColor3) ); //show_all (); } @@ -123,18 +123,18 @@ PreviewModePanel::~PreviewModePanel () delete iG; delete iB; delete iL; - delete iF; delete iBC0; delete iBC1; delete iBC2; + delete iBC3; delete igR; delete igG; delete igB; delete igL; - delete igF; delete igBC0; delete igBC1; delete igBC2; + delete igBC3; } //toggle Functions below are for shortcuts void PreviewModePanel::toggleR () @@ -153,10 +153,6 @@ void PreviewModePanel::toggleL () { previewL->set_active(!previewL->get_active()); } -void PreviewModePanel::toggleFocusMask () -{ - previewFocusMask->set_active(!previewFocusMask->get_active()); -} void PreviewModePanel::togglebackColor0 () { @@ -170,6 +166,10 @@ void PreviewModePanel::togglebackColor2 () { backColor2->set_active(!backColor2->get_active()); } +void PreviewModePanel::togglebackColor3 () +{ + backColor3->set_active(!backColor3->get_active()); +} void PreviewModePanel::buttonToggled (Gtk::ToggleButton* tbpreview) { @@ -178,7 +178,6 @@ void PreviewModePanel::buttonToggled (Gtk::ToggleButton* tbpreview) connG.block(true); connB.block(true); connL.block(true); - connFocusMask.block(true); // control state of the buttons // only 0 or 1 button at a time can remain pressed @@ -198,22 +197,16 @@ void PreviewModePanel::buttonToggled (Gtk::ToggleButton* tbpreview) previewL->set_active(false); } - if (tbpreview != previewFocusMask) { - previewFocusMask->set_active(false); - } - // set image based on button's state previewR->set_image(previewR->get_active() ? *iR : *igR); previewG->set_image(previewG->get_active() ? *iG : *igG); previewB->set_image(previewB->get_active() ? *iB : *igB); previewL->set_image(previewL->get_active() ? *iL : *igL); - previewFocusMask->set_image(previewFocusMask->get_active() ? *iF : *igF); connR.block(false); connG.block(false); connB.block(false); connL.block(false); - connFocusMask.block(false); imageArea->queue_draw (); @@ -240,6 +233,10 @@ int PreviewModePanel::GetbackColor() backColor = 2; } + if (backColor3->get_active ()) { + backColor = 3; + } + return backColor; } @@ -250,6 +247,8 @@ void PreviewModePanel::togglebackColor() if(backColor == 0) { togglebackColor1(); } else if(backColor == 1) { + togglebackColor3(); + } else if(backColor == 3) { togglebackColor2(); } else { togglebackColor0(); @@ -262,6 +261,7 @@ void PreviewModePanel::buttonToggled_backColor (Gtk::ToggleButton* tbbackColor) connbackColor0.block(true); connbackColor1.block(true); connbackColor2.block(true); + connbackColor3.block(true); // control the state of the buttons // Exactly 1 button at a time must remain pressed @@ -277,6 +277,10 @@ void PreviewModePanel::buttonToggled_backColor (Gtk::ToggleButton* tbbackColor) backColor2->set_active(true); } + if (tbbackColor == backColor3 && !backColor3->get_active()) { + backColor3->set_active(true); + } + if (tbbackColor != backColor0) { backColor0->set_active(false); } @@ -289,14 +293,20 @@ void PreviewModePanel::buttonToggled_backColor (Gtk::ToggleButton* tbbackColor) backColor2->set_active(false); } + if (tbbackColor != backColor3) { + backColor3->set_active(false); + } + // set image based on button's state backColor0->set_image(backColor0->get_active() ? *iBC0 : *igBC0); backColor1->set_image(backColor1->get_active() ? *iBC1 : *igBC1); backColor2->set_image(backColor2->get_active() ? *iBC2 : *igBC2); + backColor3->set_image(backColor3->get_active() ? *iBC3 : *igBC3); connbackColor0.block(false); connbackColor1.block(false); connbackColor2.block(false); + connbackColor3.block(false); //TODO not sure if queue_draw is necessary, but will need to reach to backColor of the Before view imageArea->queue_draw (); diff --git a/rtgui/previewmodepanel.h b/rtgui/previewmodepanel.h index d3bf3c8e4..1d7b99625 100644 --- a/rtgui/previewmodepanel.h +++ b/rtgui/previewmodepanel.h @@ -30,21 +30,20 @@ protected: Gtk::ToggleButton* previewG; Gtk::ToggleButton* previewB; Gtk::ToggleButton* previewL; - Gtk::ToggleButton* previewFocusMask; Gtk::ToggleButton* backColor0; Gtk::ToggleButton* backColor1; Gtk::ToggleButton* backColor2; - Gtk::VBox* vbbackColor; + Gtk::ToggleButton* backColor3; ImageArea* imageArea; Gtk::Image* iR, *igR; Gtk::Image* iG, *igG; Gtk::Image* iB, *igB; Gtk::Image* iL, *igL; - Gtk::Image* iF, *igF; Gtk::Image* iBC0, *igBC0; Gtk::Image* iBC1, *igBC1; Gtk::Image* iBC2, *igBC2; + Gtk::Image* iBC3, *igBC3; public: explicit PreviewModePanel (ImageArea* ia); @@ -54,13 +53,13 @@ public: void toggleG (); void toggleB (); void toggleL (); - void toggleFocusMask (); void togglebackColor0(); void togglebackColor1(); void togglebackColor2(); + void togglebackColor3(); void togglebackColor(); - sigc::connection connR, connB, connG, connL, connFocusMask, connbackColor0, connbackColor1, connbackColor2; + sigc::connection connR, connB, connG, connL, connbackColor0, connbackColor1, connbackColor2, connbackColor3; void buttonToggled(Gtk::ToggleButton* tbpreview); void buttonToggled_backColor(Gtk::ToggleButton* tbbackColor); @@ -81,10 +80,6 @@ public: { return previewL->get_active (); } - bool showFocusMask () - { - return previewFocusMask->get_active (); - } int GetbackColor(); }; diff --git a/rtgui/prsharpening.cc b/rtgui/prsharpening.cc index 5e79d078a..94034b471 100644 --- a/rtgui/prsharpening.cc +++ b/rtgui/prsharpening.cc @@ -240,20 +240,20 @@ void PrSharpening::write (ProcParams* pp, ParamsEdited* pedited) } if (pedited) { - pedited->prsharpening.amount = amount->getEditedState (); - pedited->prsharpening.radius = radius->getEditedState (); - pedited->prsharpening.threshold = threshold->getEditedState (); - pedited->prsharpening.edges_radius = eradius->getEditedState (); - pedited->prsharpening.edges_tolerance = etolerance->getEditedState (); + pedited->prsharpening.amount = amount->getEditedState (); + pedited->prsharpening.radius = radius->getEditedState (); + pedited->prsharpening.threshold = threshold->getEditedState (); + pedited->prsharpening.edges_radius = eradius->getEditedState (); + pedited->prsharpening.edges_tolerance = etolerance->getEditedState (); pedited->prsharpening.halocontrol_amount = hcamount->getEditedState (); - pedited->prsharpening.deconvamount = damount->getEditedState (); - pedited->prsharpening.deconvradius = dradius->getEditedState (); - pedited->prsharpening.deconviter = diter->getEditedState (); - pedited->prsharpening.deconvdamping = ddamping->getEditedState (); - pedited->prsharpening.method = method->get_active_row_number() != 2; - pedited->prsharpening.halocontrol = !halocontrol->get_inconsistent(); - pedited->prsharpening.edgesonly = !edgesonly->get_inconsistent(); - pedited->prsharpening.enabled = !get_inconsistent(); + pedited->prsharpening.deconvamount = damount->getEditedState (); + pedited->prsharpening.deconvradius = dradius->getEditedState (); + pedited->prsharpening.deconviter = diter->getEditedState (); + pedited->prsharpening.deconvdamping = ddamping->getEditedState (); + pedited->prsharpening.method = method->get_active_row_number() != 2; + pedited->prsharpening.halocontrol = !halocontrol->get_inconsistent(); + pedited->prsharpening.edgesonly = !edgesonly->get_inconsistent(); + pedited->prsharpening.enabled = !get_inconsistent(); } } @@ -420,13 +420,15 @@ void PrSharpening::halocontrol_toggled () void PrSharpening::method_changed () { - removeIfThere (this, usm, false); - removeIfThere (this, rld, false); + if (!batchMode) { + removeIfThere (this, usm, false); + removeIfThere (this, rld, false); - if (method->get_active_row_number() == 0) { - pack_start (*usm); - } else if (method->get_active_row_number() == 1) { - pack_start (*rld); + if (method->get_active_row_number() == 0) { + pack_start (*usm); + } else if (method->get_active_row_number() == 1) { + pack_start (*rld); + } } if (listener && (multiImage || getEnabled()) ) { @@ -453,6 +455,7 @@ void PrSharpening::setBatchMode (bool batchMode) hcbin->pack_start (*hcbox); removeIfThere (edgebin, edgebox, false); edgebin->pack_start (*edgebox); + pack_start (*rld); radius->showEditedCB (); amount->showEditedCB (); @@ -467,16 +470,30 @@ void PrSharpening::setBatchMode (bool batchMode) method->append (M("GENERAL_UNCHANGED")); } -void PrSharpening::setAdjusterBehavior (bool amountadd) +void PrSharpening::setAdjusterBehavior (bool radiusadd, bool amountadd, bool dampingadd, bool iteradd, bool edgetoladd, bool haloctrladd) { + radius->setAddMode(radiusadd); + dradius->setAddMode(radiusadd); amount->setAddMode(amountadd); damount->setAddMode(amountadd); + ddamping->setAddMode(dampingadd); + diter->setAddMode(iteradd); + eradius->setAddMode(radiusadd); + etolerance->setAddMode(edgetoladd); + hcamount->setAddMode(haloctrladd); } void PrSharpening::trimValues (rtengine::procparams::ProcParams* pp) { + radius->trimValue(pp->prsharpening.radius); + dradius->trimValue(pp->prsharpening.deconvradius); amount->trimValue(pp->prsharpening.amount); damount->trimValue(pp->prsharpening.deconvamount); + ddamping->trimValue(pp->prsharpening.deconvdamping); + diter->trimValue(pp->prsharpening.deconviter); + eradius->trimValue(pp->prsharpening.edges_radius); + etolerance->trimValue(pp->prsharpening.edges_tolerance); + hcamount->trimValue(pp->prsharpening.halocontrol_amount); } diff --git a/rtgui/prsharpening.h b/rtgui/prsharpening.h index 9bf90cc6c..50dc91258 100644 --- a/rtgui/prsharpening.h +++ b/rtgui/prsharpening.h @@ -70,7 +70,7 @@ public: void method_changed (); void adjusterChanged (ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR); - void setAdjusterBehavior (bool amountadd); + void setAdjusterBehavior (bool radiusadd, bool amountadd, bool dampingadd, bool iteradd, bool edgetoladd, bool haloctrladd); void trimValues (rtengine::procparams::ProcParams* pp); }; diff --git a/rtgui/resize.cc b/rtgui/resize.cc index 1a87bbe8c..971901b84 100644 --- a/rtgui/resize.cc +++ b/rtgui/resize.cc @@ -620,3 +620,14 @@ void Resize::enabledChanged () } } +void Resize::setAdjusterBehavior (bool scaleadd) +{ + + scale->setAddMode(scaleadd); +} + +void Resize::trimValues (rtengine::procparams::ProcParams* pp) +{ + + scale->trimValue(pp->resize.scale); +} diff --git a/rtgui/resize.h b/rtgui/resize.h index acba5b478..2b2c2ea26 100644 --- a/rtgui/resize.h +++ b/rtgui/resize.h @@ -57,6 +57,9 @@ public: void setDimensions (); void enabledChanged (); + void setAdjusterBehavior (bool scaleadd); + void trimValues (rtengine::procparams::ProcParams* pp); + private: void fitBoxScale (); int getComputedWidth (); diff --git a/rtgui/sharpening.cc b/rtgui/sharpening.cc index 72f4c62d8..9abfc6de8 100644 --- a/rtgui/sharpening.cc +++ b/rtgui/sharpening.cc @@ -423,13 +423,15 @@ void Sharpening::halocontrol_toggled () void Sharpening::method_changed () { - removeIfThere (this, usm, false); - removeIfThere (this, rld, false); + if (!batchMode) { + removeIfThere (this, usm, false); + removeIfThere (this, rld, false); - if (method->get_active_row_number() == 0) { - pack_start (*usm); - } else if (method->get_active_row_number() == 1) { - pack_start (*rld); + if (method->get_active_row_number() == 0) { + pack_start (*usm); + } else if (method->get_active_row_number() == 1) { + pack_start (*rld); + } } if (listener && (multiImage || getEnabled()) ) { @@ -447,6 +449,7 @@ void Sharpening::setBatchMode (bool batchMode) hcbin->pack_start (*hcbox); removeIfThere (edgebin, edgebox, false); edgebin->pack_start (*edgebox); + pack_start (*rld); radius->showEditedCB (); amount->showEditedCB (); @@ -461,16 +464,30 @@ void Sharpening::setBatchMode (bool batchMode) method->append (M("GENERAL_UNCHANGED")); } -void Sharpening::setAdjusterBehavior (bool amountadd) +void Sharpening::setAdjusterBehavior (bool radiusadd, bool amountadd, bool dampingadd, bool iteradd, bool edgetoladd, bool haloctrladd) { + radius->setAddMode(radiusadd); + dradius->setAddMode(radiusadd); amount->setAddMode(amountadd); damount->setAddMode(amountadd); + ddamping->setAddMode(dampingadd); + diter->setAddMode(iteradd); + eradius->setAddMode(radiusadd); + etolerance->setAddMode(edgetoladd); + hcamount->setAddMode(haloctrladd); } void Sharpening::trimValues (rtengine::procparams::ProcParams* pp) { + radius->trimValue(pp->sharpening.radius); + dradius->trimValue(pp->sharpening.deconvradius); amount->trimValue(pp->sharpening.amount); damount->trimValue(pp->sharpening.deconvamount); + ddamping->trimValue(pp->sharpening.deconvdamping); + diter->trimValue(pp->sharpening.deconviter); + eradius->trimValue(pp->sharpening.edges_radius); + etolerance->trimValue(pp->sharpening.edges_tolerance); + hcamount->trimValue(pp->sharpening.halocontrol_amount); } diff --git a/rtgui/sharpening.h b/rtgui/sharpening.h index 45c2d9fe1..2901036f5 100644 --- a/rtgui/sharpening.h +++ b/rtgui/sharpening.h @@ -70,7 +70,7 @@ public: void halocontrol_toggled (); void method_changed (); - void setAdjusterBehavior (bool amountadd); + void setAdjusterBehavior (bool radiusadd, bool amountadd, bool dampingadd, bool iteradd, bool edgetoladd, bool haloctrladd); void trimValues (rtengine::procparams::ProcParams* pp); }; diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 366d9c5ce..769838c80 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -61,7 +61,7 @@ ToolPanelCoordinator::ToolPanelCoordinator () : ipc (nullptr), hasChanged (false colorappearance = Gtk::manage (new ColorAppearance ()); whitebalance = Gtk::manage (new WhiteBalance ()); vignetting = Gtk::manage (new Vignetting ()); - retinex = Gtk::manage (new Retinex ()); + retinex = Gtk::manage (new Retinex ()); gradient = Gtk::manage (new Gradient ()); locallab = Gtk::manage (new Locallab ()); pcvignette = Gtk::manage (new PCVignette ()); diff --git a/tools/source_icons/scalable/previewmodeB-off.file b/tools/source_icons/scalable/previewmodeB-off.file new file mode 100644 index 000000000..78d96d991 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeB-off.file @@ -0,0 +1 @@ +previewmodeB-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeB-off.svg b/tools/source_icons/scalable/previewmodeB-off.svg new file mode 100644 index 000000000..2566c37cf --- /dev/null +++ b/tools/source_icons/scalable/previewmodeB-off.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeB-on.file b/tools/source_icons/scalable/previewmodeB-on.file new file mode 100644 index 000000000..045f8a31b --- /dev/null +++ b/tools/source_icons/scalable/previewmodeB-on.file @@ -0,0 +1 @@ +previewmodeB-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeB-on.svg b/tools/source_icons/scalable/previewmodeB-on.svg new file mode 100644 index 000000000..cc3faa733 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeB-on.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeBC0-off.file b/tools/source_icons/scalable/previewmodeBC0-off.file new file mode 100644 index 000000000..baf7ab70a --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC0-off.file @@ -0,0 +1 @@ +previewmodeBC0-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC0-off.svg b/tools/source_icons/scalable/previewmodeBC0-off.svg new file mode 100644 index 000000000..7c29636e9 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC0-off.svg @@ -0,0 +1,92 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + T + + diff --git a/tools/source_icons/scalable/previewmodeBC0-on.file b/tools/source_icons/scalable/previewmodeBC0-on.file new file mode 100644 index 000000000..033a88501 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC0-on.file @@ -0,0 +1 @@ +previewmodeBC0-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC0-on.svg b/tools/source_icons/scalable/previewmodeBC0-on.svg new file mode 100644 index 000000000..7613279ec --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC0-on.svg @@ -0,0 +1,92 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + T + + diff --git a/tools/source_icons/scalable/previewmodeBC1-off.file b/tools/source_icons/scalable/previewmodeBC1-off.file new file mode 100644 index 000000000..db5e6f2e2 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC1-off.file @@ -0,0 +1 @@ +previewmodeBC1-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC1-off.svg b/tools/source_icons/scalable/previewmodeBC1-off.svg new file mode 100644 index 000000000..1e7d3e669 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC1-off.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeBC1-on.file b/tools/source_icons/scalable/previewmodeBC1-on.file new file mode 100644 index 000000000..1de2f604d --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC1-on.file @@ -0,0 +1 @@ +previewmodeBC1-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC1-on.svg b/tools/source_icons/scalable/previewmodeBC1-on.svg new file mode 100644 index 000000000..b4b21cd85 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC1-on.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeBC2-off.file b/tools/source_icons/scalable/previewmodeBC2-off.file new file mode 100644 index 000000000..6073f7aac --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC2-off.file @@ -0,0 +1 @@ +previewmodeBC2-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC2-off.svg b/tools/source_icons/scalable/previewmodeBC2-off.svg new file mode 100644 index 000000000..e9f4e10f2 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC2-off.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeBC2-on.file b/tools/source_icons/scalable/previewmodeBC2-on.file new file mode 100644 index 000000000..18229b31d --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC2-on.file @@ -0,0 +1 @@ +previewmodeBC2-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC2-on.svg b/tools/source_icons/scalable/previewmodeBC2-on.svg new file mode 100644 index 000000000..582b69fd8 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC2-on.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeBC3-off.file b/tools/source_icons/scalable/previewmodeBC3-off.file new file mode 100644 index 000000000..1538e97f1 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC3-off.file @@ -0,0 +1 @@ +previewmodeBC3-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC3-off.svg b/tools/source_icons/scalable/previewmodeBC3-off.svg new file mode 100644 index 000000000..f8adf9626 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC3-off.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeBC3-on.file b/tools/source_icons/scalable/previewmodeBC3-on.file new file mode 100644 index 000000000..6dad52343 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC3-on.file @@ -0,0 +1 @@ +previewmodeBC3-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeBC3-on.svg b/tools/source_icons/scalable/previewmodeBC3-on.svg new file mode 100644 index 000000000..8e92c0b35 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeBC3-on.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeF-focusScreen-off.file b/tools/source_icons/scalable/previewmodeF-focusScreen-off.file new file mode 100644 index 000000000..f019c1bfb --- /dev/null +++ b/tools/source_icons/scalable/previewmodeF-focusScreen-off.file @@ -0,0 +1 @@ +previewmodeF-focusScreen-off.png,w22,actions diff --git a/tools/source_icons/scalable/previewmodeF-focusScreen-off.svg b/tools/source_icons/scalable/previewmodeF-focusScreen-off.svg new file mode 100644 index 000000000..814bc9e93 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeF-focusScreen-off.svg @@ -0,0 +1,630 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeF-focusScreen-on.file b/tools/source_icons/scalable/previewmodeF-focusScreen-on.file new file mode 100644 index 000000000..07dc7c137 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeF-focusScreen-on.file @@ -0,0 +1 @@ +previewmodeF-focusScreen-on.png,w22,actions diff --git a/tools/source_icons/scalable/previewmodeF-focusScreen-on.svg b/tools/source_icons/scalable/previewmodeF-focusScreen-on.svg new file mode 100644 index 000000000..63b0e4ec8 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeF-focusScreen-on.svg @@ -0,0 +1,604 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeF-off.file b/tools/source_icons/scalable/previewmodeF-off.file new file mode 100644 index 000000000..420ff2d30 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeF-off.file @@ -0,0 +1 @@ +previewmodeF-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeF-off.svg b/tools/source_icons/scalable/previewmodeF-off.svg new file mode 100644 index 000000000..dd4f099b9 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeF-off.svg @@ -0,0 +1,92 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + F + + diff --git a/tools/source_icons/scalable/previewmodeF-on.file b/tools/source_icons/scalable/previewmodeF-on.file new file mode 100644 index 000000000..64d9940b3 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeF-on.file @@ -0,0 +1 @@ +previewmodeF-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeF-on.svg b/tools/source_icons/scalable/previewmodeF-on.svg new file mode 100644 index 000000000..0b5ca90c5 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeF-on.svg @@ -0,0 +1,92 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + F + + diff --git a/tools/source_icons/scalable/previewmodeG-off.file b/tools/source_icons/scalable/previewmodeG-off.file new file mode 100644 index 000000000..be2f098d4 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeG-off.file @@ -0,0 +1 @@ +previewmodeG-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeG-off.svg b/tools/source_icons/scalable/previewmodeG-off.svg new file mode 100644 index 000000000..29f08ebec --- /dev/null +++ b/tools/source_icons/scalable/previewmodeG-off.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeG-on.file b/tools/source_icons/scalable/previewmodeG-on.file new file mode 100644 index 000000000..d6c82f803 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeG-on.file @@ -0,0 +1 @@ +previewmodeG-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeG-on.svg b/tools/source_icons/scalable/previewmodeG-on.svg new file mode 100644 index 000000000..4e5e19b56 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeG-on.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeL-off.file b/tools/source_icons/scalable/previewmodeL-off.file new file mode 100644 index 000000000..7a743f2a3 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeL-off.file @@ -0,0 +1 @@ +previewmodeL-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeL-off.svg b/tools/source_icons/scalable/previewmodeL-off.svg new file mode 100644 index 000000000..ea9300e7a --- /dev/null +++ b/tools/source_icons/scalable/previewmodeL-off.svg @@ -0,0 +1,92 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + L + + diff --git a/tools/source_icons/scalable/previewmodeL-on.file b/tools/source_icons/scalable/previewmodeL-on.file new file mode 100644 index 000000000..e7b99191f --- /dev/null +++ b/tools/source_icons/scalable/previewmodeL-on.file @@ -0,0 +1 @@ +previewmodeL-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeL-on.svg b/tools/source_icons/scalable/previewmodeL-on.svg new file mode 100644 index 000000000..41cd85c07 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeL-on.svg @@ -0,0 +1,92 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + L + + diff --git a/tools/source_icons/scalable/previewmodeR-off.file b/tools/source_icons/scalable/previewmodeR-off.file new file mode 100644 index 000000000..a18cb0f3d --- /dev/null +++ b/tools/source_icons/scalable/previewmodeR-off.file @@ -0,0 +1 @@ +previewmodeR-off.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeR-off.svg b/tools/source_icons/scalable/previewmodeR-off.svg new file mode 100644 index 000000000..2bb60f3b6 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeR-off.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/tools/source_icons/scalable/previewmodeR-on.file b/tools/source_icons/scalable/previewmodeR-on.file new file mode 100644 index 000000000..5901958fb --- /dev/null +++ b/tools/source_icons/scalable/previewmodeR-on.file @@ -0,0 +1 @@ +previewmodeR-on.png,w8,actions diff --git a/tools/source_icons/scalable/previewmodeR-on.svg b/tools/source_icons/scalable/previewmodeR-on.svg new file mode 100644 index 000000000..0648c48b2 --- /dev/null +++ b/tools/source_icons/scalable/previewmodeR-on.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + +