merge with dev

This commit is contained in:
Desmis 2019-11-10 08:56:38 +01:00
commit e79bb87c91
99 changed files with 482 additions and 199 deletions

View File

@ -106,6 +106,7 @@ set(RTENGINESOURCEFILES
lj92.c lj92.c
loadinitial.cc loadinitial.cc
myfile.cc myfile.cc
panasonic_decoders.cc
pdaflinesfilter.cc pdaflinesfilter.cc
PF_correct_RT.cc PF_correct_RT.cc
pipettebuffer.cc pipettebuffer.cc

View File

@ -2142,6 +2142,11 @@ Camera constants:
} }
}, },
{ // Quality B, per ISO info missing
"make_model": [ "Panasonic DC-S1", "Panasonic DC-S1R" ],
"ranges": { "white": 16225 }
},
{ // Quality B, per ISO info missing { // Quality B, per ISO info missing
"make_model": "PENTAX K-x", "make_model": "PENTAX K-x",
"dcraw_matrix": [ 8843,-2837,-625,-5025,12644,2668,-411,1234,7410 ], // adobe dcp d65 "dcraw_matrix": [ 8843,-2837,-625,-5025,12644,2668,-411,1234,7410 ], // adobe dcp d65

View File

@ -2688,93 +2688,6 @@ void CLASS canon_rmf_load_raw()
maximum = curve[0x3ff]; maximum = curve[0x3ff];
} }
unsigned CLASS pana_bits_t::operator() (int nbits, unsigned *bytes)
{
/*RT static uchar buf[0x4000]; */
/*RT static int vbits;*/
int byte;
if (!nbits && !bytes) return vbits=0;
if (!vbits) {
fread (buf+load_flags, 1, 0x4000-load_flags, ifp);
fread (buf, 1, load_flags, ifp);
}
if (encoding == 5) {
for (byte = 0; byte < 16; byte++)
{
bytes[byte] = buf[vbits++];
vbits &= 0x3FFF;
}
return 0;
} else {
vbits = (vbits - nbits) & 0x1ffff;
byte = vbits >> 3 ^ 0x3ff0;
return (buf[byte] | buf[byte+1] << 8) >> (vbits & 7) & ~(-1 << nbits);
}
}
void CLASS panasonic_load_raw()
{
pana_bits_t pana_bits(ifp,load_flags, RT_pana_info.encoding);
int row, col, i, j, sh=0, pred[2], nonz[2];
unsigned bytes[16] = {};
ushort *raw_block_data;
pana_bits(0, 0);
int enc_blck_size = RT_pana_info.bpp == 12 ? 10 : 9;
if (RT_pana_info.encoding == 5) {
for (row = 0; row < raw_height; row++)
{
raw_block_data = raw_image + row * raw_width;
for (col = 0; col < raw_width; col += enc_blck_size) {
pana_bits(0, bytes);
if (RT_pana_info.bpp == 12) {
raw_block_data[col] = ((bytes[1] & 0xF) << 8) + bytes[0];
raw_block_data[col + 1] = 16 * bytes[2] + (bytes[1] >> 4);
raw_block_data[col + 2] = ((bytes[4] & 0xF) << 8) + bytes[3];
raw_block_data[col + 3] = 16 * bytes[5] + (bytes[4] >> 4);
raw_block_data[col + 4] = ((bytes[7] & 0xF) << 8) + bytes[6];
raw_block_data[col + 5] = 16 * bytes[8] + (bytes[7] >> 4);
raw_block_data[col + 6] = ((bytes[10] & 0xF) << 8) + bytes[9];
raw_block_data[col + 7] = 16 * bytes[11] + (bytes[10] >> 4);
raw_block_data[col + 8] = ((bytes[13] & 0xF) << 8) + bytes[12];
raw_block_data[col + 9] = 16 * bytes[14] + (bytes[13] >> 4);
}
else if (RT_pana_info.bpp == 14) {
raw_block_data[col] = bytes[0] + ((bytes[1] & 0x3F) << 8);
raw_block_data[col + 1] = (bytes[1] >> 6) + 4 * (bytes[2]) +
((bytes[3] & 0xF) << 10);
raw_block_data[col + 2] = (bytes[3] >> 4) + 16 * (bytes[4]) +
((bytes[5] & 3) << 12);
raw_block_data[col + 3] = ((bytes[5] & 0xFC) >> 2) + (bytes[6] << 6);
raw_block_data[col + 4] = bytes[7] + ((bytes[8] & 0x3F) << 8);
raw_block_data[col + 5] = (bytes[8] >> 6) + 4 * bytes[9] + ((bytes[10] & 0xF) << 10);
raw_block_data[col + 6] = (bytes[10] >> 4) + 16 * bytes[11] + ((bytes[12] & 3) << 12);
raw_block_data[col + 7] = ((bytes[12] & 0xFC) >> 2) + (bytes[13] << 6);
raw_block_data[col + 8] = bytes[14] + ((bytes[15] & 0x3F) << 8);
}
}
}
} else {
for (row=0; row < height; row++)
for (col=0; col < raw_width; col++) {
if ((i = col % 14) == 0)
pred[0] = pred[1] = nonz[0] = nonz[1] = 0;
if (i % 3 == 2) sh = 4 >> (3 - pana_bits(2));
if (nonz[i & 1]) {
if ((j = pana_bits(8))) {
if ((pred[i & 1] -= 0x80 << sh) < 0 || sh == 4)
pred[i & 1] &= ~(-1 << sh);
pred[i & 1] += j << sh;
}
} else if ((nonz[i & 1] = pana_bits(8)) || i > 11)
pred[i & 1] = nonz[i & 1] << 4 | pana_bits(4);
if ((RAW(row,col) = pred[col & 1]) > 4098 && col < width) derror();
}
}
}
void CLASS olympus_load_raw() void CLASS olympus_load_raw()
{ {
@ -10759,8 +10672,6 @@ void CLASS nikon_14bit_load_raw()
free(buf); free(buf);
} }
//-----------------------------------------------------------------------------
/* RT: Delete from here */ /* RT: Delete from here */
/*RT*/#undef SQR /*RT*/#undef SQR
/*RT*/#undef MAX /*RT*/#undef MAX

View File

@ -411,6 +411,9 @@ private:
unsigned encoding; unsigned encoding;
}; };
void panasonicC6_load_raw();
void panasonicC7_load_raw();
void canon_rmf_load_raw(); void canon_rmf_load_raw();
void panasonic_load_raw(); void panasonic_load_raw();
void olympus_load_raw(); void olympus_load_raw();

View File

@ -0,0 +1,278 @@
/*
* This file is part of RawTherapee.
*
* RawTherapee is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* RawTherapee is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <iostream>
#include "dcraw.h"
// Code adapted from libraw
/* -*- C++ -*-
* Copyright 2019 LibRaw LLC (info@libraw.org)
*
LibRaw is free software; you can redistribute it and/or modify
it under the terms of the one of two licenses as you choose:
1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1
(See file LICENSE.LGPL provided in LibRaw distribution archive for details).
2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
(See file LICENSE.CDDL provided in LibRaw distribution archive for details).
*/
unsigned DCraw::pana_bits_t::operator() (int nbits, unsigned *bytes)
{
int byte;
if (!nbits && !bytes) {
return vbits=0;
}
if (!vbits) {
fread (buf+load_flags, 1, 0x4000-load_flags, ifp);
fread (buf, 1, load_flags, ifp);
}
if (encoding == 5) {
for (byte = 0; byte < 16; byte++)
{
bytes[byte] = buf[vbits++];
vbits &= 0x3FFF;
}
return 0;
} else {
vbits = (vbits - nbits) & 0x1ffff;
byte = vbits >> 3 ^ 0x3ff0;
return (buf[byte] | buf[byte+1] << 8) >> (vbits & 7) & ~(-1 << nbits);
}
}
class pana_cs6_page_decoder
{
unsigned int pixelbuffer[14], lastoffset, maxoffset;
unsigned char current, *buffer;
public:
pana_cs6_page_decoder(unsigned char *_buffer, unsigned int bsize)
: lastoffset(0), maxoffset(bsize), current(0), buffer(_buffer)
{
}
void read_page(); // will throw IO error if not enough space in buffer
unsigned int nextpixel()
{
return current < 14 ? pixelbuffer[current++] : 0;
}
};
#define wbuffer(i) ((unsigned short)buffer[lastoffset + 15 - i])
void pana_cs6_page_decoder::read_page()
{
if (!buffer || (maxoffset - lastoffset < 16))
;
pixelbuffer[0] = (wbuffer(0) << 6) | (wbuffer(1) >> 2); // 14 bit
pixelbuffer[1] = (((wbuffer(1) & 0x3) << 12) | (wbuffer(2) << 4) | (wbuffer(3) >> 4)) & 0x3fff;
pixelbuffer[2] = (wbuffer(3) >> 2) & 0x3;
pixelbuffer[3] = ((wbuffer(3) & 0x3) << 8) | wbuffer(4);
pixelbuffer[4] = (wbuffer(5) << 2) | (wbuffer(6) >> 6);
pixelbuffer[5] = ((wbuffer(6) & 0x3f) << 4) | (wbuffer(7) >> 4);
pixelbuffer[6] = (wbuffer(7) >> 2) & 0x3;
pixelbuffer[7] = ((wbuffer(7) & 0x3) << 8) | wbuffer(8);
pixelbuffer[8] = ((wbuffer(9) << 2) & 0x3fc) | (wbuffer(10) >> 6);
pixelbuffer[9] = ((wbuffer(10) << 4) | (wbuffer(11) >> 4)) & 0x3ff;
pixelbuffer[10] = (wbuffer(11) >> 2) & 0x3;
pixelbuffer[11] = ((wbuffer(11) & 0x3) << 8) | wbuffer(12);
pixelbuffer[12] = (((wbuffer(13) << 2) & 0x3fc) | wbuffer(14) >> 6) & 0x3ff;
pixelbuffer[13] = ((wbuffer(14) << 4) | (wbuffer(15) >> 4)) & 0x3ff;
current = 0;
lastoffset += 16;
}
#undef wbuffer
void DCraw::panasonic_load_raw()
{
int enc_blck_size = RT_pana_info.bpp == 12 ? 10 : 9;
if (RT_pana_info.encoding == 5) {
pana_bits_t pana_bits(ifp, load_flags, RT_pana_info.encoding);
pana_bits(0, 0);
unsigned bytes[16] = {};
for (int row = 0; row < raw_height; ++row) {
ushort* raw_block_data = raw_image + row * raw_width;
for (int col = 0; col < raw_width; col += enc_blck_size) {
pana_bits(0, bytes);
if (RT_pana_info.bpp == 12) {
raw_block_data[col] = ((bytes[1] & 0xF) << 8) + bytes[0];
raw_block_data[col + 1] = 16 * bytes[2] + (bytes[1] >> 4);
raw_block_data[col + 2] = ((bytes[4] & 0xF) << 8) + bytes[3];
raw_block_data[col + 3] = 16 * bytes[5] + (bytes[4] >> 4);
raw_block_data[col + 4] = ((bytes[7] & 0xF) << 8) + bytes[6];
raw_block_data[col + 5] = 16 * bytes[8] + (bytes[7] >> 4);
raw_block_data[col + 6] = ((bytes[10] & 0xF) << 8) + bytes[9];
raw_block_data[col + 7] = 16 * bytes[11] + (bytes[10] >> 4);
raw_block_data[col + 8] = ((bytes[13] & 0xF) << 8) + bytes[12];
raw_block_data[col + 9] = 16 * bytes[14] + (bytes[13] >> 4);
}
else if (RT_pana_info.bpp == 14) {
raw_block_data[col] = bytes[0] + ((bytes[1] & 0x3F) << 8);
raw_block_data[col + 1] = (bytes[1] >> 6) + 4 * (bytes[2]) + ((bytes[3] & 0xF) << 10);
raw_block_data[col + 2] = (bytes[3] >> 4) + 16 * (bytes[4]) + ((bytes[5] & 3) << 12);
raw_block_data[col + 3] = ((bytes[5] & 0xFC) >> 2) + (bytes[6] << 6);
raw_block_data[col + 4] = bytes[7] + ((bytes[8] & 0x3F) << 8);
raw_block_data[col + 5] = (bytes[8] >> 6) + 4 * bytes[9] + ((bytes[10] & 0xF) << 10);
raw_block_data[col + 6] = (bytes[10] >> 4) + 16 * bytes[11] + ((bytes[12] & 3) << 12);
raw_block_data[col + 7] = ((bytes[12] & 0xFC) >> 2) + (bytes[13] << 6);
raw_block_data[col + 8] = bytes[14] + ((bytes[15] & 0x3F) << 8);
}
}
}
} else if (RT_pana_info.encoding == 6) {
panasonicC6_load_raw();
} else if (RT_pana_info.encoding == 7) {
panasonicC7_load_raw();
} else {
pana_bits_t pana_bits(ifp, load_flags, RT_pana_info.encoding);
pana_bits(0, 0);
int sh = 0, pred[2], nonz[2];
for (int row = 0; row < height; ++row) {
for (int col = 0; col < raw_width; ++col) {
int i;
if ((i = col % 14) == 0) {
pred[0] = pred[1] = nonz[0] = nonz[1] = 0;
}
if (i % 3 == 2) {
sh = 4 >> (3 - pana_bits(2));
}
if (nonz[i & 1]) {
int j;
if ((j = pana_bits(8))) {
if ((pred[i & 1] -= 0x80 << sh) < 0 || sh == 4) {
pred[i & 1] &= ~(-1 << sh);
}
pred[i & 1] += j << sh;
}
} else if ((nonz[i & 1] = pana_bits(8)) || i > 11) {
pred[i & 1] = nonz[i & 1] << 4 | pana_bits(4);
}
if ((raw_image[(row)*raw_width+(col)] = pred[col & 1]) > 4098 && col < width) {
derror();
}
}
}
}
}
void DCraw::panasonicC6_load_raw()
{
constexpr int rowstep = 16;
const int blocksperrow = raw_width / 11;
const int rowbytes = blocksperrow * 16;
unsigned char *iobuf = (unsigned char *)malloc(rowbytes * rowstep);
merror(iobuf, "panasonicC6_load_raw()");
for (int row = 0; row < raw_height - rowstep + 1; row += rowstep) {
const int rowstoread = MIN(rowstep, raw_height - row);
fread(iobuf, rowbytes, rowstoread, ifp);
pana_cs6_page_decoder page(iobuf, rowbytes * rowstoread);
for (int crow = 0, col = 0; crow < rowstoread; ++crow, col = 0) {
unsigned short *rowptr = &raw_image[(row + crow) * raw_width];
for (int rblock = 0; rblock < blocksperrow; rblock++) {
page.read_page();
unsigned oddeven[2] = {0, 0}, nonzero[2] = {0, 0};
unsigned pmul = 0, pixel_base = 0;
for (int pix = 0; pix < 11; ++pix) {
if (pix % 3 == 2) {
unsigned base = page.nextpixel();
if (base > 3) {
derror();
}
if (base == 3) {
base = 4;
}
pixel_base = 0x200 << base;
pmul = 1 << base;
}
unsigned epixel = page.nextpixel();
if (oddeven[pix % 2]) {
epixel *= pmul;
if (pixel_base < 0x2000 && nonzero[pix % 2] > pixel_base) {
epixel += nonzero[pix % 2] - pixel_base;
}
nonzero[pix % 2] = epixel;
} else {
oddeven[pix % 2] = epixel;
if (epixel) {
nonzero[pix % 2] = epixel;
} else {
epixel = nonzero[pix % 2];
}
}
const unsigned spix = epixel - 0xf;
if (spix <= 0xffff) {
rowptr[col++] = spix & 0xffff;
} else {
epixel = (((signed int)(epixel + 0x7ffffff1)) >> 0x1f);
rowptr[col++] = epixel & 0x3fff;
}
}
}
}
}
free(iobuf);
tiff_bps = RT_pana_info.bpp;
}
void DCraw::panasonicC7_load_raw()
{
constexpr int rowstep = 16;
const int pixperblock = RT_pana_info.bpp == 14 ? 9 : 10;
const int rowbytes = raw_width / pixperblock * 16;
unsigned char *iobuf = (unsigned char *)malloc(rowbytes * rowstep);
merror(iobuf, "panasonicC7_load_raw()");
for (int row = 0; row < raw_height - rowstep + 1; row += rowstep) {
const int rowstoread = MIN(rowstep, raw_height - row);
fread (iobuf, rowbytes, rowstoread, ifp);
unsigned char *bytes = iobuf;
for (int crow = 0; crow < rowstoread; crow++) {
ushort *rowptr = &raw_image[(row + crow) * raw_width];
for (int col = 0; col < raw_width - pixperblock + 1; col += pixperblock, bytes += 16) {
if (RT_pana_info.bpp == 14) {
rowptr[col] = bytes[0] + ((bytes[1] & 0x3F) << 8);
rowptr[col + 1] = (bytes[1] >> 6) + 4 * (bytes[2]) + ((bytes[3] & 0xF) << 10);
rowptr[col + 2] = (bytes[3] >> 4) + 16 * (bytes[4]) + ((bytes[5] & 3) << 12);
rowptr[col + 3] = ((bytes[5] & 0xFC) >> 2) + (bytes[6] << 6);
rowptr[col + 4] = bytes[7] + ((bytes[8] & 0x3F) << 8);
rowptr[col + 5] = (bytes[8] >> 6) + 4 * bytes[9] + ((bytes[10] & 0xF) << 10);
rowptr[col + 6] = (bytes[10] >> 4) + 16 * bytes[11] + ((bytes[12] & 3) << 12);
rowptr[col + 7] = ((bytes[12] & 0xFC) >> 2) + (bytes[13] << 6);
rowptr[col + 8] = bytes[14] + ((bytes[15] & 0x3F) << 8);
} else if (RT_pana_info.bpp == 12) { // have not seen in the wild yet
rowptr[col] = ((bytes[1] & 0xF) << 8) + bytes[0];
rowptr[col + 1] = 16 * bytes[2] + (bytes[1] >> 4);
rowptr[col + 2] = ((bytes[4] & 0xF) << 8) + bytes[3];
rowptr[col + 3] = 16 * bytes[5] + (bytes[4] >> 4);
rowptr[col + 4] = ((bytes[7] & 0xF) << 8) + bytes[6];
rowptr[col + 5] = 16 * bytes[8] + (bytes[7] >> 4);
rowptr[col + 6] = ((bytes[10] & 0xF) << 8) + bytes[9];
rowptr[col + 7] = 16 * bytes[11] + (bytes[10] >> 4);
rowptr[col + 8] = ((bytes[13] & 0xF) << 8) + bytes[12];
rowptr[col + 9] = 16 * bytes[14] + (bytes[13] >> 4);
}
}
}
}
free(iobuf);
tiff_bps = RT_pana_info.bpp;
}

View File

@ -19,7 +19,6 @@
#pragma once #pragma once
#include "array2D.h" #include "array2D.h"
#include "coord.h"
#include "iimage.h" #include "iimage.h"
class EditDataProvider; class EditDataProvider;

View File

@ -54,13 +54,13 @@ Interpreter stdInterpreter;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
TagDirectory::TagDirectory () TagDirectory::TagDirectory ()
: attribs (ifdAttribs), order (HOSTORDER), parent (nullptr) {} : attribs (ifdAttribs), order (HOSTORDER), parent (nullptr), parseJPEG(true) {}
TagDirectory::TagDirectory (TagDirectory* p, const TagAttrib* ta, ByteOrder border) TagDirectory::TagDirectory (TagDirectory* p, const TagAttrib* ta, ByteOrder border)
: attribs (ta), order (border), parent (p) {} : attribs (ta), order (border), parent (p), parseJPEG(true) {}
TagDirectory::TagDirectory (TagDirectory* p, FILE* f, int base, const TagAttrib* ta, ByteOrder border, bool skipIgnored) TagDirectory::TagDirectory (TagDirectory* p, FILE* f, int base, const TagAttrib* ta, ByteOrder border, bool skipIgnored, bool parseJpeg)
: attribs (ta), order (border), parent (p) : attribs (ta), order (border), parent (p), parseJPEG(parseJpeg)
{ {
int numOfTags = get2 (f, order); int numOfTags = get2 (f, order);
@ -980,9 +980,10 @@ Tag::Tag (TagDirectory* p, FILE* f, int base)
} }
} }
if (tag == 0x002e) { // location of the embedded preview image in raw files of Panasonic cameras if (parent->getParseJpeg() && tag == 0x002e) { // location of the embedded preview image in raw files of Panasonic cameras
ExifManager eManager(f, nullptr, true); ExifManager eManager(f, nullptr, true);
const auto fpos = ftell(f); const auto fpos = ftell(f);
if (fpos >= 0) { if (fpos >= 0) {
eManager.parseJPEG(fpos); // try to parse the exif data from the preview image eManager.parseJPEG(fpos); // try to parse the exif data from the preview image
@ -1239,7 +1240,7 @@ defsubdirs:
for (size_t j = 0, i = 0; j < count; j++, i++) { for (size_t j = 0, i = 0; j < count; j++, i++) {
int newpos = base + toInt (j * 4, LONG); int newpos = base + toInt (j * 4, LONG);
fseek (f, newpos, SEEK_SET); fseek (f, newpos, SEEK_SET);
directory[i] = new TagDirectory (parent, f, base, attrib->subdirAttribs, order); directory[i] = new TagDirectory (parent, f, base, attrib->subdirAttribs, order, true, parent->getParseJpeg());
} }
// set the terminating NULL // set the terminating NULL
@ -1374,7 +1375,7 @@ bool Tag::parseMakerNote (FILE* f, int base, ByteOrder bom )
value = new unsigned char[12]; value = new unsigned char[12];
fread (value, 1, 12, f); fread (value, 1, 12, f);
directory = new TagDirectory*[2]; directory = new TagDirectory*[2];
directory[0] = new TagDirectory (parent, f, base, panasonicAttribs, bom); directory[0] = new TagDirectory (parent, f, base, panasonicAttribs, bom, true, parent->getParseJpeg());
directory[1] = nullptr; directory[1] = nullptr;
} else { } else {
return false; return false;
@ -2777,7 +2778,7 @@ void ExifManager::parseStd (bool skipIgnored) {
parse(false, skipIgnored); parse(false, skipIgnored);
} }
void ExifManager::parse (bool isRaw, bool skipIgnored) void ExifManager::parse (bool isRaw, bool skipIgnored, bool parseJpeg)
{ {
int ifdOffset = IFDOffset; int ifdOffset = IFDOffset;
@ -2806,7 +2807,7 @@ void ExifManager::parse (bool isRaw, bool skipIgnored)
fseek (f, rml->exifBase + ifdOffset, SEEK_SET); fseek (f, rml->exifBase + ifdOffset, SEEK_SET);
// first read the IFD directory // first read the IFD directory
TagDirectory* root = new TagDirectory (nullptr, f, rml->exifBase, ifdAttribs, order, skipIgnored); TagDirectory* root = new TagDirectory (nullptr, f, rml->exifBase, ifdAttribs, order, skipIgnored, parseJpeg);
// fix ISO issue with nikon and panasonic cameras // fix ISO issue with nikon and panasonic cameras
Tag* make = root->getTag ("Make"); Tag* make = root->getTag ("Make");
@ -3174,7 +3175,7 @@ void ExifManager::parseJPEG (int offset)
rml.reset(new rtengine::RawMetaDataLocation(0)); rml.reset(new rtengine::RawMetaDataLocation(0));
} }
rml->exifBase = tiffbase; rml->exifBase = tiffbase;
parse (false); parse (false, true, false);
if (rmlCreated) { if (rmlCreated) {
rml.reset(); rml.reset();
} }

View File

@ -119,11 +119,12 @@ protected:
const TagAttrib* attribs; // descriptor table to decode the tags const TagAttrib* attribs; // descriptor table to decode the tags
ByteOrder order; // byte order ByteOrder order; // byte order
TagDirectory* parent; // parent directory (NULL if root) TagDirectory* parent; // parent directory (NULL if root)
bool parseJPEG;
static Glib::ustring getDumpKey (int tagID, const Glib::ustring &tagName); static Glib::ustring getDumpKey (int tagID, const Glib::ustring &tagName);
public: public:
TagDirectory (); TagDirectory ();
TagDirectory (TagDirectory* p, FILE* f, int base, const TagAttrib* ta, ByteOrder border, bool skipIgnored = true); TagDirectory (TagDirectory* p, FILE* f, int base, const TagAttrib* ta, ByteOrder border, bool skipIgnored = true, bool parseJpeg = true);
TagDirectory (TagDirectory* p, const TagAttrib* ta, ByteOrder border); TagDirectory (TagDirectory* p, const TagAttrib* ta, ByteOrder border);
virtual ~TagDirectory (); virtual ~TagDirectory ();
@ -135,6 +136,10 @@ public:
{ {
return parent; return parent;
} }
inline bool getParseJpeg() const
{
return parseJPEG;
}
TagDirectory* getRoot (); TagDirectory* getRoot ();
inline int getCount () const inline int getCount () const
{ {
@ -346,7 +351,7 @@ class ExifManager
Tag* saveCIFFMNTag (TagDirectory* root, int len, const char* name); Tag* saveCIFFMNTag (TagDirectory* root, int len, const char* name);
void parseCIFF (int length, TagDirectory* root); void parseCIFF (int length, TagDirectory* root);
void parse (bool isRaw, bool skipIgnored = true); void parse (bool isRaw, bool skipIgnored = true, bool parseJpeg = true);
public: public:
FILE* f; FILE* f;

View File

@ -31,6 +31,7 @@
#include "cachemanager.h" #include "cachemanager.h"
#include "thumbnail.h" #include "thumbnail.h"
#include "batchqueue.h" #include "batchqueue.h"
#include "batchqueueentry.h"
#include "multilangmgr.h" #include "multilangmgr.h"
#include "filecatalog.h" #include "filecatalog.h"
#include "batchqueuebuttonset.h" #include "batchqueuebuttonset.h"

View File

@ -21,7 +21,6 @@
#include <gtkmm.h> #include <gtkmm.h>
#include "batchqueueentry.h"
#include "lwbutton.h" #include "lwbutton.h"
#include "lwbuttonset.h" #include "lwbuttonset.h"
#include "threadutils.h" #include "threadutils.h"
@ -30,6 +29,8 @@
#include "../rtengine/rtengine.h" #include "../rtengine/rtengine.h"
#include "../rtengine/noncopyable.h" #include "../rtengine/noncopyable.h"
class BatchQueueEntry;
class BatchQueueListener class BatchQueueListener
{ {

View File

@ -29,6 +29,7 @@
class RTWindow; class RTWindow;
class FileCatalog; class FileCatalog;
class Thumbnail; class Thumbnail;
class BatchQueuePanel : public Gtk::VBox, class BatchQueuePanel : public Gtk::VBox,
public BatchQueueListener, public BatchQueueListener,
public FormatChangeListener public FormatChangeListener

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class BayerPreProcess : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel class BayerPreProcess final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
{ {
protected: protected:

View File

@ -25,7 +25,7 @@
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class BayerProcess : class BayerProcess final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public CheckBoxListener, public CheckBoxListener,

View File

@ -24,7 +24,7 @@
#include "checkbox.h" #include "checkbox.h"
#include "toolpanel.h" #include "toolpanel.h"
class BayerRAWExposure : class BayerRAWExposure final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public CheckBoxListener, public CheckBoxListener,

View File

@ -21,6 +21,8 @@
#include "blackwhite.h" #include "blackwhite.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "rtimage.h" #include "rtimage.h"
#include "options.h" #include "options.h"

View File

@ -22,13 +22,14 @@
#include "adjuster.h" #include "adjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "mycurve.h"
#include "toolpanel.h" #include "toolpanel.h"
class DiagonalCurveEditor;
class CurveEditorGroup;
class EditDataProvider; class EditDataProvider;
class FlatCurveEditor;
class BlackWhite final : class BlackWhite final :
public ToolParamBlock, public ToolParamBlock,

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class CACorrection : class CACorrection final:
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class ChMixer : class ChMixer final:
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -22,7 +22,7 @@
#include "toolpanel.h" #include "toolpanel.h"
class CoarsePanel : class CoarsePanel final :
public Gtk::HBox, public Gtk::HBox,
public ToolPanel public ToolPanel
{ {

View File

@ -20,6 +20,8 @@
#include "colorappearance.h" #include "colorappearance.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "options.h" #include "options.h"
#include "rtimage.h" #include "rtimage.h"

View File

@ -22,11 +22,14 @@
#include "adjuster.h" #include "adjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class DiagonalCurveEditor;
class CurveEditorGroup;
class CurveEditor;
class ColorAppearance final : class ColorAppearance final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,

View File

@ -2,6 +2,8 @@
* This file is part of RawTherapee. * This file is part of RawTherapee.
*/ */
#include "colortoning.h" #include "colortoning.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "mycurve.h" #include "mycurve.h"
#include "rtimage.h" #include "rtimage.h"
#include "eventmapper.h" #include "eventmapper.h"

View File

@ -7,15 +7,19 @@
#include "adjuster.h" #include "adjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "labgrid.h"
#include "thresholdadjuster.h" #include "thresholdadjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
#include "../rtengine/procparams.h" #include "../rtengine/procparams.h"
class CurveEditor;
class CurveEditorGroup;
class DiagonalCurveEditor;
class FlatCurveEditor;
class LabGrid;
class ColorToning final : class ColorToning final :
public ToolParamBlock, public ToolParamBlock,
public FoldableToolPanel, public FoldableToolPanel,

View File

@ -21,6 +21,7 @@
#include <string> #include <string>
#include "guiutils.h" #include "guiutils.h"
#include "multilangmgr.h" #include "multilangmgr.h"
#include "popuptogglebutton.h"
#include "../rtengine/LUT.h" #include "../rtengine/LUT.h"
#include <cstring> #include <cstring>

View File

@ -20,7 +20,6 @@
#include "coloredbar.h" #include "coloredbar.h"
#include "editcallbacks.h" #include "editcallbacks.h"
#include "popuptogglebutton.h"
#include "../rtengine/diagonalcurvetypes.h" #include "../rtengine/diagonalcurvetypes.h"
#include "../rtengine/flatcurvetypes.h" #include "../rtengine/flatcurvetypes.h"
@ -29,6 +28,7 @@
class CurveEditorGroup; class CurveEditorGroup;
class CurveEditorSubGroup; class CurveEditorSubGroup;
class PopUpToggleButton;
/* /*
*********************** Curve Editor *********************** *********************** Curve Editor ***********************
@ -143,7 +143,7 @@ public:
*/ */
class DiagonalCurveEditor : public CurveEditor class DiagonalCurveEditor final : public CurveEditor
{ {
friend class DiagonalCurveEditorSubGroup; friend class DiagonalCurveEditorSubGroup;
@ -179,7 +179,7 @@ public:
*/ */
class FlatCurveEditor : public CurveEditor class FlatCurveEditor final : public CurveEditor
{ {
friend class FlatCurveEditorSubGroup; friend class FlatCurveEditorSubGroup;

View File

@ -24,6 +24,7 @@
#include "diagonalcurveeditorsubgroup.h" #include "diagonalcurveeditorsubgroup.h"
#include "flatcurveeditorsubgroup.h" #include "flatcurveeditorsubgroup.h"
#include "multilangmgr.h" #include "multilangmgr.h"
#include "popuptogglebutton.h"
#include "rtimage.h" #include "rtimage.h"
#include "options.h" #include "options.h"
#include "pathutils.h" #include "pathutils.h"

View File

@ -41,7 +41,7 @@ class FlatCurveEditorSubGroup;
* - to start a new line of curve button, use the 'newLine' method * - to start a new line of curve button, use the 'newLine' method
* - if you add more than one curve, you must add a "CurveEditor* ce" parameter to your listener * - if you add more than one curve, you must add a "CurveEditor* ce" parameter to your listener
*/ */
class CurveEditorGroup : public Gtk::Grid, public CurveListener class CurveEditorGroup final : public Gtk::Grid, public CurveListener
{ {
friend class CurveEditor; friend class CurveEditor;

View File

@ -41,7 +41,7 @@ public:
// add other info here // add other info here
}; };
class DarkFrame : class DarkFrame final:
public ToolParamBlock, public ToolParamBlock,
public FoldableToolPanel public FoldableToolPanel
{ {

View File

@ -20,6 +20,8 @@
#include <iomanip> #include <iomanip>
#include "defringe.h" #include "defringe.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "options.h" #include "options.h"
#include "../rtengine/color.h" #include "../rtengine/color.h"

View File

@ -22,12 +22,14 @@
#include "adjuster.h" #include "adjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class Defringe : class CurveEditorGroup;
class FlatCurveEditor;
class Defringe final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel, public FoldableToolPanel,

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class Dehaze: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel class Dehaze final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
{ {
private: private:
Adjuster *strength; Adjuster *strength;

View File

@ -32,6 +32,7 @@
#include "diagonalcurveeditorsubgroup.h" #include "diagonalcurveeditorsubgroup.h"
#include "rtimage.h" #include "rtimage.h"
#include "options.h" #include "options.h"
#include "popuptogglebutton.h"
#include "../rtengine/curves.h" #include "../rtengine/curves.h"

View File

@ -21,6 +21,8 @@
#include "dirpyrdenoise.h" #include "dirpyrdenoise.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "editbuffer.h" #include "editbuffer.h"
#include "guiutils.h" #include "guiutils.h"
#include "options.h" #include "options.h"

View File

@ -22,11 +22,13 @@
#include "adjuster.h" #include "adjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class CurveEditor;
class CurveEditorGroup;
class FlatCurveEditor;
class EditDataProvider; class EditDataProvider;
class DirPyrDenoise final : class DirPyrDenoise final :

View File

@ -25,7 +25,7 @@
#include "thresholdadjuster.h" #include "thresholdadjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class DirPyrEqualizer : class DirPyrEqualizer final :
public ToolParamBlock, public ToolParamBlock,
public ThresholdAdjusterListener, public ThresholdAdjusterListener,
public AdjusterListener, public AdjusterListener,

View File

@ -24,7 +24,7 @@
#include "lensgeomlistener.h" #include "lensgeomlistener.h"
#include "toolpanel.h" #include "toolpanel.h"
class Distortion : class Distortion final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -19,9 +19,14 @@
#pragma once #pragma once
#include "editid.h" #include "editid.h"
#include "../rtengine/coord.h"
#include <cairomm/cairomm.h> #include <cairomm/cairomm.h>
namespace rtengine {
struct Coord;
}
class EditDataProvider; class EditDataProvider;
class EditSubscriber; class EditSubscriber;

View File

@ -24,6 +24,7 @@
#include "../rtengine/imagesource.h" #include "../rtengine/imagesource.h"
#include "../rtengine/iccstore.h" #include "../rtengine/iccstore.h"
#include "batchqueue.h" #include "batchqueue.h"
#include "batchqueueentry.h"
#include "soundman.h" #include "soundman.h"
#include "rtimage.h" #include "rtimage.h"
#include "rtwindow.h" #include "rtwindow.h"

View File

@ -21,7 +21,6 @@
#include <gtkmm.h> #include <gtkmm.h>
#include "batchqueueentry.h"
#include "filepanel.h" #include "filepanel.h"
#include "histogrampanel.h" #include "histogrampanel.h"
#include "history.h" #include "history.h"
@ -35,7 +34,9 @@
#include "../rtengine/noncopyable.h" #include "../rtengine/noncopyable.h"
#include "../rtengine/rtengine.h" #include "../rtengine/rtengine.h"
class BatchQueueEntry;
class EditorPanel; class EditorPanel;
class FilePanel;
class MyProgressBar; class MyProgressBar;
class Thumbnail; class Thumbnail;
class ToolPanelCoordinator; class ToolPanelCoordinator;

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class EdgePreservingDecompositionUI : class EdgePreservingDecompositionUI final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class FattalToneMapping: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel class FattalToneMapping final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
{ {
protected: protected:
Adjuster *threshold; Adjuster *threshold;

View File

@ -21,6 +21,7 @@
#include <cstring> #include <cstring>
#include <iomanip> #include <iomanip>
#include "cropguilistener.h"
#include "cursormanager.h" #include "cursormanager.h"
#include "guiutils.h" #include "guiutils.h"
#include "inspector.h" #include "inspector.h"
@ -28,6 +29,7 @@
#include "threadutils.h" #include "threadutils.h"
#include "thumbbrowserbase.h" #include "thumbbrowserbase.h"
#include "thumbnail.h" #include "thumbnail.h"
#include "toolbar.h"
#include "../rtengine/procparams.h" #include "../rtengine/procparams.h"

View File

@ -36,6 +36,7 @@
#include "renamedlg.h" #include "renamedlg.h"
#include "thumbimageupdater.h" #include "thumbimageupdater.h"
#include "batchqueue.h" #include "batchqueue.h"
#include "batchqueueentry.h"
#include "placesbrowser.h" #include "placesbrowser.h"
#include "pathutils.h" #include "pathutils.h"
#include "thumbnail.h" #include "thumbnail.h"

View File

@ -22,7 +22,6 @@
#include <gtkmm.h> #include <gtkmm.h>
#include "filebrowserentry.h"
#include "lwbuttonset.h" #include "lwbuttonset.h"
class FileBrowserEntry; class FileBrowserEntry;

View File

@ -26,7 +26,6 @@
#include "editcallbacks.h" #include "editcallbacks.h"
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
#include "wbprovider.h"
class FilmNegProvider class FilmNegProvider
{ {
@ -36,7 +35,7 @@ public:
virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array<float, 3>& newExps) = 0; virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array<float, 3>& newExps) = 0;
}; };
class FilmNegative : class FilmNegative final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel, public FoldableToolPanel,

View File

@ -10,7 +10,7 @@
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class ClutComboBox : class ClutComboBox final :
public MyComboBox public MyComboBox
{ {
public: public:

View File

@ -33,6 +33,7 @@
#include "flatcurveeditorsubgroup.h" #include "flatcurveeditorsubgroup.h"
#include "rtimage.h" #include "rtimage.h"
#include "options.h" #include "options.h"
#include "popuptogglebutton.h"
#include "../rtengine/curves.h" #include "../rtengine/curves.h"

View File

@ -42,7 +42,7 @@ public:
// add other info here // add other info here
}; };
class FlatField : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public rtengine::FlatFieldAutoClipListener class FlatField final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public rtengine::FlatFieldAutoClipListener
{ {
protected: protected:

View File

@ -10,7 +10,7 @@
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class Gradient : class Gradient final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel, public FoldableToolPanel,

View File

@ -18,6 +18,8 @@
*/ */
#include "hsvequalizer.h" #include "hsvequalizer.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "options.h" #include "options.h"
#include "../rtengine/color.h" #include "../rtengine/color.h"

View File

@ -22,12 +22,15 @@
#include "adjuster.h" #include "adjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class HSVEqualizer : class CurveEditor;
class CurveEditorGroup;
class FlatCurveEditor;
class HSVEqualizer final :
public ToolParamBlock, public ToolParamBlock,
public FoldableToolPanel, public FoldableToolPanel,
public CurveListener, public CurveListener,

View File

@ -36,7 +36,7 @@ public:
virtual void saveInputICCReference(const Glib::ustring& fname, bool apply_wb) = 0; virtual void saveInputICCReference(const Glib::ustring& fname, bool apply_wb) = 0;
}; };
class ICMPanel : class ICMPanel final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -18,10 +18,9 @@
*/ */
#pragma once #pragma once
#include "cropguilistener.h" class CropGUIListener;
#include "toolbar.h"
class Thumbnail; class Thumbnail;
class ToolBar;
class ImageAreaToolListener class ImageAreaToolListener
{ {

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class ImpulseDenoise : class ImpulseDenoise final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -20,6 +20,8 @@
#include "labcurve.h" #include "labcurve.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "options.h" #include "options.h"
#include "../rtengine/color.h" #include "../rtengine/color.h"

View File

@ -22,13 +22,15 @@
#include "adjuster.h" #include "adjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "toolpanel.h" #include "toolpanel.h"
class CurveEditorGroup;
class DiagonalCurveEditor;
class EditDataProvider; class EditDataProvider;
class FlatCurveEditor;
class LCurve : class LCurve final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel, public FoldableToolPanel,

View File

@ -43,7 +43,7 @@
#include "toolpanel.h" #include "toolpanel.h"
class LabGridArea: public Gtk::DrawingArea, public BackBuffer { class LabGridArea final : public Gtk::DrawingArea, public BackBuffer {
private: private:
rtengine::ProcEvent evt; rtengine::ProcEvent evt;
Glib::ustring evtMsg; Glib::ustring evtMsg;

View File

@ -23,7 +23,7 @@
#include "lensgeomlistener.h" #include "lensgeomlistener.h"
#include "toolpanel.h" #include "toolpanel.h"
class LensGeometry : class LensGeometry final :
public ToolParamBlock, public ToolParamBlock,
public FoldableToolPanel public FoldableToolPanel
{ {

View File

@ -21,7 +21,6 @@
#include <gtkmm.h> #include <gtkmm.h>
#include "guiutils.h" #include "guiutils.h"
#include "lensgeom.h"
#include "toolpanel.h" #include "toolpanel.h"
class LensProfilePanel final : class LensProfilePanel final :

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class LocalContrast: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel class LocalContrast final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
{ {
private: private:
Adjuster *radius; Adjuster *radius;

View File

@ -8,7 +8,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class PCVignette : class PCVignette final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class PerspCorrection : class PerspCorrection final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -18,10 +18,14 @@
*/ */
#pragma once #pragma once
#include <glibmm/ustring.h>
struct ParamsEdited; struct ParamsEdited;
namespace Glib
{
class ustring;
}
namespace rtengine namespace rtengine
{ {

View File

@ -24,7 +24,7 @@
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class PreProcess : class PreProcess final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -18,8 +18,12 @@
*/ */
#pragma once #pragma once
#include <glibmm/ustring.h> namespace Glib
{
class ustring;
}
namespace rtengine namespace rtengine
{ {

View File

@ -24,7 +24,7 @@
#include "thresholdadjuster.h" #include "thresholdadjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class PrSharpening : class PrSharpening final :
public ToolParamBlock, public ToolParamBlock,
public ThresholdAdjusterListener, public ThresholdAdjusterListener,
public AdjusterListener, public AdjusterListener,

View File

@ -24,7 +24,7 @@
#include "checkbox.h" #include "checkbox.h"
#include "toolpanel.h" #include "toolpanel.h"
class RAWCACorr : class RAWCACorr final:
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public CheckBoxListener, public CheckBoxListener,

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class RAWExposure : class RAWExposure final:
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel
@ -32,8 +32,6 @@ class RAWExposure :
protected: protected:
Adjuster* PexPos; Adjuster* PexPos;
private:
// Gtk::CheckButton* PextwoGreen;
public: public:
RAWExposure (); RAWExposure ();

View File

@ -2,6 +2,9 @@
* This file is part of RawTherapee. * This file is part of RawTherapee.
*/ */
#include "retinex.h" #include "retinex.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "mycurve.h" #include "mycurve.h"
#include "rtimage.h" #include "rtimage.h"
#include "options.h" #include "options.h"

View File

@ -7,13 +7,18 @@
#include "adjuster.h" #include "adjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h" #include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "thresholdadjuster.h" #include "thresholdadjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class Retinex : class CurveEditor;
class CurveEditorGroup;
class DiagonalCurveEditor;
class FlatCurveEditor;
class Retinex final :
public ToolParamBlock, public ToolParamBlock,
public FoldableToolPanel, public FoldableToolPanel,
public rtengine::RetinexListener, public rtengine::RetinexListener,

View File

@ -18,6 +18,8 @@
*/ */
#include "rgbcurves.h" #include "rgbcurves.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "options.h" #include "options.h"
#include "../rtengine/procparams.h" #include "../rtengine/procparams.h"

View File

@ -22,11 +22,13 @@
#include "adjuster.h" #include "adjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "toolpanel.h" #include "toolpanel.h"
class RGBCurves : class CurveEditorGroup;
class DiagonalCurveEditor;
class RGBCurves final :
public ToolParamBlock, public ToolParamBlock,
public FoldableToolPanel, public FoldableToolPanel,
public CurveListener, public CurveListener,

View File

@ -21,6 +21,7 @@
#include "rotate.h" #include "rotate.h"
#include "guiutils.h" #include "guiutils.h"
#include "lensgeomlistener.h"
#include "rtimage.h" #include "rtimage.h"
#include "../rtengine/procparams.h" #include "../rtengine/procparams.h"

View File

@ -21,10 +21,10 @@
#include <gtkmm.h> #include <gtkmm.h>
#include "adjuster.h" #include "adjuster.h"
#include "lensgeomlistener.h"
#include "toolpanel.h" #include "toolpanel.h"
class Rotate : class LensGeomListener;
class Rotate final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -29,6 +29,7 @@
#include "whitebalance.h" #include "whitebalance.h"
#include "../rtengine/settings.h" #include "../rtengine/settings.h"
#include "batchqueuepanel.h" #include "batchqueuepanel.h"
#include "batchqueueentry.h"
#include "editorpanel.h" #include "editorpanel.h"
#include "filepanel.h" #include "filepanel.h"
#include "filmsimulation.h" #include "filmsimulation.h"

View File

@ -22,7 +22,7 @@
#include "toolpanel.h" #include "toolpanel.h"
class SensorBayer : class SensorBayer final :
public ToolParamBlock, public ToolParamBlock,
public FoldableToolPanel public FoldableToolPanel
{ {

View File

@ -22,7 +22,7 @@
#include "toolpanel.h" #include "toolpanel.h"
class SensorXTrans : class SensorXTrans final:
public ToolParamBlock, public ToolParamBlock,
public FoldableToolPanel public FoldableToolPanel
{ {

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class ShadowsHighlights : class ShadowsHighlights final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -28,7 +28,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class SharpenEdge : class SharpenEdge final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -24,7 +24,7 @@
#include "thresholdadjuster.h" #include "thresholdadjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class Sharpening : class Sharpening final:
public ToolParamBlock, public ToolParamBlock,
public ThresholdAdjusterListener, public ThresholdAdjusterListener,
public AdjusterListener, public AdjusterListener,

View File

@ -28,7 +28,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class SharpenMicro : class SharpenMicro final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class SoftLight: public ToolParamBlock, public AdjusterListener, public FoldableToolPanel class SoftLight final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel
{ {
private: private:
Adjuster *strength; Adjuster *strength;

View File

@ -23,6 +23,7 @@
#include "options.h" #include "options.h"
#include "rtscalable.h" #include "rtscalable.h"
#include "thumbbrowserbase.h" #include "thumbbrowserbase.h"
#include "thumbbrowserentrybase.h"
#include "../rtengine/rt_math.h" #include "../rtengine/rt_math.h"

View File

@ -24,13 +24,13 @@
#include "guiutils.h" #include "guiutils.h"
#include "options.h" #include "options.h"
#include "thumbbrowserentrybase.h"
/* /*
* Class handling the list of ThumbBrowserEntry objects and their position in it's allocated space * Class handling the list of ThumbBrowserEntry objects and their position in it's allocated space
*/ */
class Inspector; class Inspector;
class ThumbBrowserEntryBase;
class ThumbBrowserBase : class ThumbBrowserBase :
public Gtk::Grid public Gtk::Grid

View File

@ -23,6 +23,7 @@
#include <gtkmm.h> #include <gtkmm.h>
#include "thumbimageupdater.h" #include "thumbimageupdater.h"
#include "thumbbrowserentrybase.h"
#include "guiutils.h" #include "guiutils.h"
#include "threadutils.h" #include "threadutils.h"

View File

@ -20,7 +20,6 @@
#include <glib.h> #include <glib.h>
#include "thumbbrowserentrybase.h"
#include "../rtengine/noncopyable.h" #include "../rtengine/noncopyable.h"
@ -36,6 +35,9 @@ namespace procparams
} }
} }
class ThumbBrowserEntryBase;
class ThumbImageUpdateListener class ThumbImageUpdateListener
{ {
public: public:

View File

@ -23,6 +23,8 @@
#include "tonecurve.h" #include "tonecurve.h"
#include "adjuster.h" #include "adjuster.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "eventmapper.h" #include "eventmapper.h"
#include "ppversion.h" #include "ppversion.h"
#include "options.h" #include "options.h"

View File

@ -21,14 +21,16 @@
#include <gtkmm.h> #include <gtkmm.h>
#include "adjuster.h" #include "adjuster.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class CurveEditor;
class CurveEditorGroup;
class DiagonalCurveEditor;
class EditDataProvider; class EditDataProvider;
class ToneCurve : class ToneCurve final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel, public FoldableToolPanel,

View File

@ -37,7 +37,7 @@ public:
virtual void editModeSwitchedOff() = 0; virtual void editModeSwitchedOff() = 0;
}; };
class ToolBar : public Gtk::HBox class ToolBar final : public Gtk::HBox
{ {
private: private:
std::unique_ptr<RTImage> handimg; std::unique_ptr<RTImage> handimg;

View File

@ -41,9 +41,6 @@ class ProcParams;
} }
} }
class FoldableToolPanel;
class ToolPanel;
class ToolPanelListener class ToolPanelListener
{ {
public: public:

View File

@ -21,6 +21,7 @@
#include "metadatapanel.h" #include "metadatapanel.h"
#include "options.h" #include "options.h"
#include "rtimage.h" #include "rtimage.h"
#include "../rtengine/imagesource.h" #include "../rtengine/imagesource.h"
#include "../rtengine/dfmanager.h" #include "../rtengine/dfmanager.h"
#include "../rtengine/ffmanager.h" #include "../rtengine/ffmanager.h"

View File

@ -18,6 +18,9 @@
*/ */
#include "vibrance.h" #include "vibrance.h"
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "options.h" #include "options.h"
#include "../rtengine/color.h" #include "../rtengine/color.h"

View File

@ -21,12 +21,14 @@
#include <gtkmm.h> #include <gtkmm.h>
#include "adjuster.h" #include "adjuster.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "thresholdadjuster.h" #include "thresholdadjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class Vibrance : class CurveEditorGroup;
class DiagonalCurveEditor;
class Vibrance final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public ThresholdCurveProvider, public ThresholdCurveProvider,

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class Vignetting : class Vignetting final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel

View File

@ -20,6 +20,8 @@
#include "wavelet.h" #include "wavelet.h"
#include <cmath> #include <cmath>
#include "curveeditor.h"
#include "curveeditorgroup.h"
#include "editcallbacks.h" #include "editcallbacks.h"
#include "guiutils.h" #include "guiutils.h"
#include "rtimage.h" #include "rtimage.h"

View File

@ -22,15 +22,18 @@
#include <gtkmm.h> #include <gtkmm.h>
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
#include "curveeditor.h" #include "curvelistener.h"
#include "curveeditorgroup.h"
#include "thresholdadjuster.h" #include "thresholdadjuster.h"
#include "colorprovider.h" #include "colorprovider.h"
#include "guiutils.h" #include "guiutils.h"
class CurveEditor;
class CurveEditorGroup;
class DiagonalCurveEditor;
class EditDataProvider; class EditDataProvider;
class FlatCurveEditor;
class Wavelet : class Wavelet final :
public ToolParamBlock, public ToolParamBlock,
public ThresholdAdjusterListener, public ThresholdAdjusterListener,
public AdjusterListener, public AdjusterListener,

View File

@ -35,7 +35,7 @@ public:
virtual void spotWBRequested(int size) = 0; virtual void spotWBRequested(int size) = 0;
}; };
class WhiteBalance : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public rtengine::AutoWBListener class WhiteBalance final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, public rtengine::AutoWBListener
{ {
enum WB_LabelType { enum WB_LabelType {

View File

@ -25,7 +25,7 @@
#include "guiutils.h" #include "guiutils.h"
#include "toolpanel.h" #include "toolpanel.h"
class XTransProcess : class XTransProcess final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public CheckBoxListener, public CheckBoxListener,

View File

@ -23,7 +23,7 @@
#include "adjuster.h" #include "adjuster.h"
#include "toolpanel.h" #include "toolpanel.h"
class XTransRAWExposure : class XTransRAWExposure final :
public ToolParamBlock, public ToolParamBlock,
public AdjusterListener, public AdjusterListener,
public FoldableToolPanel public FoldableToolPanel