Merge branch 'dev' into newlocallab

This commit is contained in:
Ingo Weyrich 2020-02-07 18:24:50 +01:00
commit c984a95b9e
83 changed files with 1676 additions and 1767 deletions

View File

@ -252,6 +252,12 @@ if(NOT DEFINED APPDATADIR)
endif()
endif()
if (NOT APPLE)
if(DEFINED LENSFUNDBDIR AND NOT IS_ABSOLUTE "${LENSFUNDBDIR}")
set(LENSFUNDBDIR "${DATADIR}/${LENSFUNDBDIR}")
endif()
endif()
if(APPLE)
if("${CODESIGNID}")
set(CODESIGNID "${CODESIGNID}" CACHE STRING "Codesigning Identity")

View File

@ -638,7 +638,7 @@ CameraConst::update_globalGreenEquilibration(bool other)
}
bool
CameraConstantsStore::parse_camera_constants_file(Glib::ustring filename_)
CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_)
{
// read the file into a single long string
const char *filename = filename_.c_str();
@ -809,7 +809,7 @@ CameraConstantsStore::~CameraConstantsStore()
}
}
void CameraConstantsStore::init(Glib::ustring baseDir, Glib::ustring userSettingsDir)
void CameraConstantsStore::init(const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir)
{
parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json"));

View File

@ -3,10 +3,17 @@
*/
#pragma once
#include <glibmm/ustring.h>
#include <map>
#include <string>
#include <vector>
namespace Glib
{
class ustring;
}
namespace rtengine
{
@ -14,7 +21,7 @@ struct camera_const_levels {
int levels[4];
};
class CameraConst
class CameraConst final
{
private:
std::string make_model;
@ -56,17 +63,17 @@ public:
void update_globalGreenEquilibration(bool other);
};
class CameraConstantsStore
class CameraConstantsStore final
{
private:
std::map<std::string, CameraConst *> mCameraConstants;
CameraConstantsStore();
bool parse_camera_constants_file(Glib::ustring filename);
bool parse_camera_constants_file(const Glib::ustring& filename);
public:
~CameraConstantsStore();
void init(Glib::ustring baseDir, Glib::ustring userSettingsDir);
void init(const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir);
static CameraConstantsStore *getInstance(void);
CameraConst *get(const char make[], const char model[]);
};

View File

@ -23,7 +23,7 @@
namespace rtengine
{
class CieImage :
class CieImage final :
public NonCopyable
{
private:

View File

@ -20,7 +20,6 @@
#pragma once
#include <array>
#include <glibmm/ustring.h>
#include "rt_math.h"
#include "LUT.h"
@ -30,6 +29,13 @@
#define SAT(a,b,c) ((float)max(a,b,c)-(float)min(a,b,c))/(float)max(a,b,c)
namespace Glib
{
class ustring;
}
namespace rtengine
{

View File

@ -21,8 +21,7 @@
#include <memory>
#include <cmath>
#include <cstring>
#include <glib.h>
#include <glib/gstdio.h>
#include <glibmm/ustring.h>
#include "rt_math.h"
@ -4104,7 +4103,7 @@ void PerceptualToneCurve::init()
}
}
void PerceptualToneCurve::initApplyState(PerceptualToneCurveState & state, Glib::ustring workingSpace) const
void PerceptualToneCurve::initApplyState(PerceptualToneCurveState & state, const Glib::ustring &workingSpace) const
{
// Get the curve's contrast value, and convert to a chroma scaling

View File

@ -22,21 +22,23 @@
#include <string>
#include <vector>
#include <glibmm/ustring.h>
#include "rt_math.h"
#include "flatcurvetypes.h"
#include "diagonalcurvetypes.h"
#include "pipettebuffer.h"
#include "noncopyable.h"
#include "LUT.h"
#include "sleef.h"
#define CURVES_MIN_POLY_POINTS 1000
#include "rt_math.h"
#define CLIPI(a) ((a)>0?((a)<65534?(a):65534):0)
namespace Glib
{
class ustring;
}
using namespace std;
namespace rtengine
@ -475,7 +477,7 @@ public:
virtual bool isIdentity() const = 0;
};
class DiagonalCurve : public Curve
class DiagonalCurve final : public Curve
{
protected:
@ -497,7 +499,7 @@ public:
};
};
class FlatCurve : public Curve
class FlatCurve final : public Curve
{
private:
@ -1742,7 +1744,7 @@ private:
float calculateToneCurveContrastValue() const;
public:
static void init();
void initApplyState(PerceptualToneCurveState & state, Glib::ustring workingSpace) const;
void initApplyState(PerceptualToneCurveState & state, const Glib::ustring& workingSpace) const;
void BatchApply(const size_t start, const size_t end, float *r, float *g, float *b, const PerceptualToneCurveState &state) const;
};

View File

@ -9868,6 +9868,7 @@ void CLASS identify()
filters = 0;
tiff_samples = colors = 3;
load_raw = &CLASS canon_sraw_load_raw;
FORC4 cblack[c] = 0; // ALB
} else if (!strcmp(model,"PowerShot 600")) {
height = 613;
width = 854;

View File

@ -24,6 +24,7 @@
#include "dcrop.h"
#include "image8.h"
#include "imagefloat.h"
#include "improccoordinator.h"
#include "labimage.h"
#include "mytime.h"
#include "procparams.h"

View File

@ -18,11 +18,7 @@
*/
#pragma once
#include "improccoordinator.h"
#include "rtengine.h"
#include "improcfun.h"
#include "imagesource.h"
#include "procevents.h"
#include "pipettebuffer.h"
#include "../rtgui/threadutils.h"
@ -30,12 +26,13 @@ namespace rtengine
{
class Image8;
class CieImage;
using namespace procparams;
class ImProcCoordinator;
class Crop : public DetailedCrop, public PipetteBuffer
class Crop final : public DetailedCrop, public PipetteBuffer
{
protected:

View File

@ -31,7 +31,7 @@ namespace rtengine
{
class RawImage;
class dfInfo
class dfInfo final
{
public:
@ -74,7 +74,7 @@ protected:
void updateRawImage();
};
class DFManager
class DFManager final
{
public:
void init(const Glib::ustring &pathname);

View File

@ -16,8 +16,6 @@
* You should have received a copy of the GNU General Public License
* along with RawTherapee. If not, see <https://www.gnu.org/licenses/>.
*/
#include <glib.h>
#include <glib/gstdio.h>
#include "curves.h"
#include <cmath>
#include <vector>

View File

@ -29,7 +29,7 @@ namespace rtengine
{
class RawImage;
class ffInfo
class ffInfo final
{
public:
@ -71,7 +71,7 @@ protected:
void updateRawImage();
};
class FFManager
class FFManager final
{
public:
void init(const Glib::ustring &pathname);

View File

@ -28,6 +28,8 @@
* available at https://arxiv.org/abs/1505.00996
*/
#include "array2D.h"
#include "boxblur.h"
#include "guidedfilter.h"
#include "boxblur.h"
#include "sleef.h"

View File

@ -39,7 +39,7 @@ namespace procparams
typedef const double(*TMatrix)[3];
class ProfileContent
class ProfileContent final
{
public:
ProfileContent();
@ -54,7 +54,7 @@ private:
std::string data;
};
class ICCStore
class ICCStore final
{
public:
enum class ProfileType {

View File

@ -20,7 +20,6 @@
#include <vector>
#include <glibmm/ustring.h>
#include <lcms2.h>
#include "alignedbuffer.h"
@ -41,6 +40,13 @@
#define CHECK_BOUNDS 0
namespace Glib
{
class ustring;
}
namespace rtengine
{
@ -658,7 +664,7 @@ public:
/* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed
* Can be safely used to reallocate an existing image */
void allocate (int W, int H) override
void allocate (int W, int H) final
{
if (W == width && H == height) {
@ -746,7 +752,7 @@ public:
}
}
void rotate (int deg) override
void rotate (int deg) final
{
if (deg == 90) {
@ -873,7 +879,7 @@ public:
}
}
void hflip () override
void hflip () final
{
int width2 = width / 2;
@ -905,7 +911,7 @@ public:
#endif
}
void vflip () override
void vflip () final
{
int height2 = height / 2;
@ -989,7 +995,7 @@ public:
}
}
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const final
{
histogram.clear();
avg_r = avg_g = avg_b = 0.;
@ -1328,7 +1334,7 @@ public:
* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed
* Can be safely used to reallocate an existing image or to free up it's memory with "allocate (0,0);"
*/
void allocate (int W, int H) override
void allocate (int W, int H) final
{
if (W == width && H == height) {
@ -1382,7 +1388,7 @@ public:
memcpy (dest->data, data, 3 * width * height * sizeof(T));
}
void rotate (int deg) override
void rotate (int deg) final
{
if (deg == 90) {
@ -1516,7 +1522,7 @@ public:
}
}
void hflip () override
void hflip () final
{
int width2 = width / 2;
@ -1552,7 +1558,7 @@ public:
}
}
void vflip () override
void vflip () final
{
AlignedBuffer<T> lBuffer(3 * width);
@ -1619,7 +1625,7 @@ public:
}
}
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override
void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const final
{
histogram.clear();
avg_r = avg_g = avg_b = 0.;

View File

@ -29,7 +29,7 @@ namespace rtengine
class Image8;
class Imagefloat;
class Image16 : public IImage16, public ImageIO
class Image16 final : public IImage16, public ImageIO
{
public:

View File

@ -27,7 +27,7 @@ namespace rtengine
{
class Imagefloat;
class Image8 : public IImage8, public ImageIO
class Image8 final : public IImage8, public ImageIO
{
public:

View File

@ -23,12 +23,18 @@
#include <string>
#include <vector>
#include <glibmm/ustring.h>
#include <libiptcdata/iptc-data.h>
#include "imageio.h"
namespace Glib
{
class ustring;
}
namespace rtexif
{
@ -38,7 +44,7 @@ class TagDirectory;
namespace rtengine
{
class FrameData
class FrameData final
{
protected:
@ -95,7 +101,7 @@ public:
int getRating () const;
};
class FramesData : public FramesMetaData {
class FramesData final : public FramesMetaData {
private:
// frame's root IFD, can be a file root IFD or a SUB-IFD
std::vector<std::unique_ptr<FrameData>> frames;

View File

@ -34,7 +34,7 @@ class LabImage;
/*
* Image type used by most tools; expected range: [0.0 ; 65535.0]
*/
class Imagefloat : public IImagefloat, public ImageIO
class Imagefloat final : public IImagefloat, public ImageIO
{
public:

View File

@ -25,7 +25,6 @@
#include "coord2d.h"
#include "imagedata.h"
#include "LUT.h"
#include "rtengine.h"
template<typename T>
@ -143,11 +142,11 @@ public:
virtual void setProgressListener (ProgressListener* pl) {}
void increaseRef () override
void increaseRef () final
{
references++;
}
void decreaseRef () override
void decreaseRef () final
{
references--;
@ -175,15 +174,15 @@ public:
return dirpyrdenoiseExpComp;
}
// functions inherited from the InitialImage interface
Glib::ustring getFileName () override
Glib::ustring getFileName () final
{
return fileName;
}
cmsHPROFILE getEmbeddedProfile () override
cmsHPROFILE getEmbeddedProfile () final
{
return embProfile;
}
const FramesMetaData* getMetaData () override
const FramesMetaData* getMetaData () final
{
return idata;
}

View File

@ -27,7 +27,6 @@
#include "imagesource.h"
#include "improcfun.h"
#include "LUT.h"
#include "procevents.h"
#include "rtengine.h"
#include "../rtgui/threadutils.h"
@ -55,7 +54,7 @@ class Crop;
* but using this class' LUT and other precomputed parameters. The main preview area is displaying a non framed Crop object,
* while detail windows are framed Crop objects.
*/
class ImProcCoordinator : public StagedImageProcessor
class ImProcCoordinator final : public StagedImageProcessor
{
friend class Crop;

View File

@ -31,15 +31,16 @@
#include "cieimage.h"
#include "clutstore.h"
#include "color.h"
#include "colortemp.h"
#include "curves.h"
#include "dcp.h"
#include "EdgePreservingDecomposition.h"
#include "iccmatrices.h"
#include "iccstore.h"
#include "imagesource.h"
#include "improccoordinator.h"
#include "improcfun.h"
#include "labimage.h"
#include "pipettebuffer.h"
#include "procparams.h"
#include "rt_math.h"
#include "rtengine.h"

View File

@ -19,6 +19,7 @@
#pragma once
#include <memory>
#include <vector>
#include "coord2d.h"
#include "gamutwarning.h"
@ -28,6 +29,12 @@
#include "imagesource.h"
#include <cairomm/cairomm.h>
namespace Glib
{
class ustring;
}
template<typename T>
class LUT;
@ -56,6 +63,7 @@ class LocLHCurve;
class LocHHCurve;
class NoiseCurve;
class OpacityCurve;
class PipetteBuffer;
class ToneCurve;
class WavCurve;
class WavOpacityCurveBY;

View File

@ -32,6 +32,7 @@
#include <iostream>
#include <vector>
#include "array2D.h"
#include "color.h"
#include "guidedfilter.h"
#include "iccstore.h"

View File

@ -23,7 +23,7 @@
namespace rtengine
{
class LabImage
class LabImage final
{
private:
void allocLab(size_t w, size_t h);

View File

@ -18,27 +18,24 @@
// along with this program. If not, see <https://www.gnu.org/licenses/>.
//
////////////////////////////////////////////////////////////////
#pragma once
#ifndef OPTHELPER_H
#define OPTHELPER_H
#define pow_F(a,b) (xexpf(b*xlogf(a)))
#define pow_F(a,b) (xexpf(b*xlogf(a)))
#ifdef __SSE2__
#include "sleefsseavx.c"
#endif
#ifdef __GNUC__
#define RESTRICT __restrict__
#define LIKELY(x) __builtin_expect (!!(x), 1)
#define UNLIKELY(x) __builtin_expect (!!(x), 0)
#define ALIGNED64 __attribute__ ((aligned (64)))
#define ALIGNED16 __attribute__ ((aligned (16)))
#else
#define RESTRICT
#define LIKELY(x) (x)
#define UNLIKELY(x) (x)
#define ALIGNED64
#define ALIGNED16
#endif
#ifdef __SSE2__
#include "sleefsseavx.h"
#endif
#ifdef __GNUC__
#define RESTRICT __restrict__
#define LIKELY(x) __builtin_expect (!!(x), 1)
#define UNLIKELY(x) __builtin_expect (!!(x), 0)
#define ALIGNED64 __attribute__ ((aligned (64)))
#define ALIGNED16 __attribute__ ((aligned (16)))
#else
#define RESTRICT
#define LIKELY(x) (x)
#define UNLIKELY(x) (x)
#define ALIGNED64
#define ALIGNED16
#endif

View File

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

View File

@ -24,7 +24,7 @@
namespace rtengine
{
class ProcessingJobImpl : public ProcessingJob
class ProcessingJobImpl final : public ProcessingJob
{
public:

View File

@ -37,7 +37,7 @@ class DiagonalCurve;
class RetinextransmissionCurve;
class RetinexgaintransmissionCurve;
class RawImageSource : public ImageSource
class RawImageSource final : public ImageSource
{
private:
static DiagonalCurve *phaseOneIccCurve;

View File

@ -20,9 +20,12 @@
#pragma once
#include "array2D.h"
#include "rt_math.h"
template<typename T>
class array2D;
namespace rtengine
{

View File

@ -31,7 +31,6 @@
#include "imageformat.h"
#include "procevents.h"
#include "rawmetadatalocation.h"
#include "rt_math.h"
#include "settings.h"
#include "../rtgui/threadutils.h"

View File

@ -18,8 +18,6 @@
*/
#pragma once
#include <glibmm/ustring.h>
#include <lcms2.h>
#include "image16.h"
@ -30,6 +28,13 @@
#include "../rtgui/threadutils.h"
namespace Glib
{
class ustring;
}
namespace rtengine
{

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,6 @@
#include "rt_math.h"
#include "utils.h"
#include "rt_math.h"
using namespace std;

View File

@ -696,7 +696,7 @@ public:
};
PAColorSpaceInterpreter paColorSpaceInterpreter;
class PALensTypeInterpreter : public IntLensInterpreter< int >
class PALensTypeInterpreter final: public IntLensInterpreter< int >
{
public:
PALensTypeInterpreter ()

View File

@ -163,14 +163,14 @@ public:
// Try to get the Tag in the current directory and in subdirectories
// if lookUpward = true, it will scan the parents TagDirectory up to the root one,
// but w/o looking into their subdirs
virtual Tag* findTag (const char* name, bool lookUpward = false) const;
Tag* findTag (const char* name, bool lookUpward = false) const;
// Find a all Tags with the given name by scanning the whole tag tree
std::vector<const Tag*> findTags (const char* name);
// Find a all Tags with the given ID by scanning the whole tag tree
std::vector<const Tag*> findTags (int ID);
// Try to get the Tag in the current directory and in parent directories
// (won't look into subdirs)
virtual Tag* findTagUpward (const char* name) const;
Tag* findTagUpward (const char* name) const;
bool getXMPTagValue (const char* name, char* value) const;
void keepTag (int ID);
@ -191,10 +191,10 @@ public:
virtual TagDirectory* clone (TagDirectory* parent) const;
void applyChange (const std::string &field, const Glib::ustring &value);
virtual void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call !
virtual bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams,
void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call !
bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams,
const CacheImageData* cfs, const bool flagMode, Glib::KeyFile *keyFile = nullptr, Glib::ustring tagDirName = "") const;
virtual void sort ();
void sort ();
};
// a table of tags: id are offset from beginning and not identifiers

View File

@ -541,7 +541,7 @@ public:
};
SAAntiBlurInterpreter saAntiBlurInterpreter;
class SALensIDInterpreter : public IntLensInterpreter<int>
class SALensIDInterpreter final : public IntLensInterpreter<int>
{
public:
SALensIDInterpreter ()
@ -1015,7 +1015,7 @@ public:
};
SALensIDInterpreter saLensIDInterpreter;
class SALensID2Interpreter : public IntLensInterpreter< int >
class SALensID2Interpreter final : public IntLensInterpreter< int >
{
public:
SALensID2Interpreter ()

View File

@ -33,7 +33,7 @@ public:
typedef double(*double2double_fun)(double val);
class Adjuster : public Gtk::Grid
class Adjuster final : public Gtk::Grid
{
protected:

View File

@ -50,7 +50,7 @@ struct BatchQueueEntryIdleHelper {
int pending;
};
class BatchQueueEntry : public ThumbBrowserEntryBase, public BQEntryUpdateListener, public rtengine::NonCopyable
class BatchQueueEntry final : public ThumbBrowserEntryBase, public BQEntryUpdateListener, public rtengine::NonCopyable
{
guint8* opreview;

View File

@ -28,7 +28,7 @@
class FilePanel;
class Thumbnail;
class BatchToolPanelCoordinator :
class BatchToolPanelCoordinator final :
public ToolPanelCoordinator,
public FileSelectionChangeListener,
public BatchPParamsChangeListener,

View File

@ -30,7 +30,7 @@
* the bar itself, i.e. use render_background (depending on its Gtk::Style)
*
*/
class ColoredBar : private BackBuffer, public ColorCaller
class ColoredBar final : private BackBuffer, public ColorCaller
{
private:

View File

@ -69,7 +69,7 @@ public:
*
* The position of the Axis in the vector will be used in the communication between the Adjuster and the Provider to identify the Axis
*/
class CoordinateAdjuster : public Gtk::FlowBox
class CoordinateAdjuster final : public Gtk::FlowBox
{
public:

View File

@ -37,6 +37,7 @@
#include "rtsurface.h"
#include "../rtengine/dcrop.h"
#include "../rtengine/imagesource.h"
#include "../rtengine/procparams.h"
#include "../rtengine/rt_math.h"

View File

@ -54,7 +54,7 @@ public:
};
class ImageArea;
class CropWindow : public LWButtonListener, public CropDisplayHandler, public EditCoordSystem, public ObjectMOBuffer, public rtengine::NonCopyable
class CropWindow final : public LWButtonListener, public CropDisplayHandler, public EditCoordSystem, public ObjectMOBuffer, public rtengine::NonCopyable
{
static bool initialized;

View File

@ -18,8 +18,8 @@
*/
#pragma once
#include "coloredbar.h"
#include "editcallbacks.h"
#include "guiutils.h"
#include "../rtengine/diagonalcurvetypes.h"
#include "../rtengine/flatcurvetypes.h"
@ -28,6 +28,7 @@
class CurveEditorGroup;
class CurveEditorSubGroup;
class ColorProvider;
class PopUpToggleButton;
/*

View File

@ -27,7 +27,7 @@
class DiagonalCurveEditor;
class MyDiagonalCurve;
class DiagonalCurveEditorSubGroup :
class DiagonalCurveEditorSubGroup final :
public CurveEditorSubGroup,
public SHCListener,
public AdjusterListener,

View File

@ -129,19 +129,19 @@ public:
@param picked True if the cursor is still above the the same object than on button pressed and with the same modifier keys.
If false, the user moved the cursor away or the modifier key is different, so the element is considered as NOT selected.
@return true if the preview has to be redrawn, false otherwise */
virtual bool pick1 (bool picked);
bool pick1 (bool picked);
/** @brief Triggered when the user is releasing mouse button 2 while in action==ES_ACTION_PICKING mode
@param picked True if the cursor is still above the the same object than on button pressed and with the same modifier keys.
If false, the user moved the cursor away or the modifier key is different, so the element is considered as NOT selected.
@return true if the preview has to be redrawn, false otherwise */
virtual bool pick2 (bool picked);
bool pick2 (bool picked);
/** @brief Triggered when the user is releasing mouse button 3 while in action==ES_ACTION_PICKING mode
@param picked True if the cursor is still above the the same object than on button pressed and with the same modifier keys.
If false, the user moved the cursor away or the modifier key is different, so the element is considered as NOT selected.
@return true if the preview has to be redrawn, false otherwise */
virtual bool pick3 (bool picked);
bool pick3 (bool picked);
/** @brief Get the geometry to be shown to the user */
const std::vector<Geometry*>& getVisibleGeometry ();

View File

@ -25,7 +25,7 @@
#include "toolpanel.h"
#include "../rtexif/rtexif.h"
class ExifPanel :
class ExifPanel final :
public Gtk::VBox,
public ToolPanel
{

View File

@ -56,7 +56,7 @@ public:
/*
* Class handling actions common to all thumbnails of the file browser
*/
class FileBrowser : public ThumbBrowserBase,
class FileBrowser final : public ThumbBrowserBase,
public LWButtonListener,
public ExportPanelListener,
public ProfileStoreListener,

View File

@ -43,7 +43,7 @@ struct FileBrowserEntryIdleHelper {
};
class FileThumbnailButtonSet;
class FileBrowserEntry : public ThumbBrowserEntryBase,
class FileBrowserEntry final : public ThumbBrowserEntryBase,
public ThumbnailListener,
public ThumbImageUpdateListener,
public rtengine::NonCopyable

View File

@ -43,7 +43,7 @@ class ToolBar;
* - handling the thumbnail toolbar,
* - monitoring the directory (for any change)
*/
class FileCatalog : public Gtk::VBox,
class FileCatalog final : public Gtk::VBox,
public PreviewLoaderListener,
public FilterPanelListener,
public FileBrowserListener,

View File

@ -27,7 +27,7 @@
class FlatCurveEditor;
class MyFlatCurve;
class FlatCurveEditorSubGroup:
class FlatCurveEditorSubGroup final :
public CurveEditorSubGroup,
public rtengine::NonCopyable
{

View File

@ -20,7 +20,6 @@
#include "guiutils.h"
#include "options.h"
#include "../rtengine/rt_math.h"
#include "../rtengine/utils.h"
#include "../rtengine/procparams.h"
#include "rtimage.h"

View File

@ -92,7 +92,7 @@ private:
* }
* </code>
*/
class GThreadLock
class GThreadLock final
{
public:
GThreadLock()
@ -110,7 +110,7 @@ public:
*
* Will relock on destruction.
*/
class GThreadUnLock
class GThreadUnLock final
{
public:
GThreadUnLock()
@ -125,7 +125,7 @@ public:
#pragma GCC diagnostic pop
class ConnectionBlocker
class ConnectionBlocker final
{
public:
explicit ConnectionBlocker (Gtk::Widget *associatedWidget, sigc::connection& connection) : connection (associatedWidget ? &connection : nullptr), wasBlocked(false)
@ -152,7 +152,7 @@ private:
/**
* @brief Glue box to control visibility of the MyExpender's content ; also handle the frame around it
*/
class ExpanderBox: public Gtk::EventBox
class ExpanderBox final : public Gtk::EventBox
{
private:
Gtk::Container *pC;
@ -185,7 +185,7 @@ public:
*
* Warning: once you've instantiated this class with a text label or a widget label, you won't be able to revert to the other solution.
*/
class MyExpander : public Gtk::VBox
class MyExpander final : public Gtk::VBox
{
public:
typedef sigc::signal<void> type_signal_enabled_toggled;
@ -295,7 +295,7 @@ public:
/**
* @brief subclass of Gtk::ScrolledWindow in order to handle the scrollwheel
*/
class MyScrolledWindow : public Gtk::ScrolledWindow
class MyScrolledWindow final : public Gtk::ScrolledWindow
{
bool on_scroll_event (GdkEventScroll* event) override;
@ -310,7 +310,7 @@ public:
/**
* @brief subclass of Gtk::ScrolledWindow in order to handle the large toolbars (wider than available space)
*/
class MyScrolledToolbar : public Gtk::ScrolledWindow
class MyScrolledToolbar final : public Gtk::ScrolledWindow
{
bool on_scroll_event (GdkEventScroll* event) override;
@ -340,7 +340,7 @@ public:
/**
* @brief subclass of Gtk::ComboBoxText in order to handle the scrollwheel
*/
class MyComboBoxText : public Gtk::ComboBoxText
class MyComboBoxText final : public Gtk::ComboBoxText
{
int naturalWidth, minimumWidth;
sigc::connection myConnection;
@ -360,7 +360,7 @@ public:
/**
* @brief subclass of Gtk::SpinButton in order to handle the scrollwheel
*/
class MySpinButton : public Gtk::SpinButton
class MySpinButton final : public Gtk::SpinButton
{
protected:
@ -375,7 +375,7 @@ public:
/**
* @brief subclass of Gtk::HScale in order to handle the scrollwheel
*/
class MyHScale : public Gtk::HScale
class MyHScale final : public Gtk::HScale
{
bool on_scroll_event (GdkEventScroll* event) override;
@ -385,7 +385,7 @@ class MyHScale : public Gtk::HScale
/**
* @brief subclass of Gtk::FileChooserButton in order to handle the scrollwheel
*/
class MyFileChooserButton: public Gtk::Button {
class MyFileChooserButton final : public Gtk::Button {
private:
void show_chooser();
@ -473,14 +473,14 @@ typedef enum RTNav {
/**
* @brief Handle the switch between text and image to be displayed in the HBox (to be used in a button/toolpanel)
*/
class TextOrIcon : public Gtk::HBox
class TextOrIcon final : public Gtk::HBox
{
public:
TextOrIcon (const Glib::ustring &filename, const Glib::ustring &labelTx, const Glib::ustring &tooltipTx);
};
class MyImageMenuItem : public Gtk::MenuItem
class MyImageMenuItem final : public Gtk::MenuItem
{
private:
Gtk::Grid *box;
@ -493,7 +493,7 @@ public:
const Gtk::Label* getLabel () const;
};
class MyProgressBar : public Gtk::ProgressBar
class MyProgressBar final : public Gtk::ProgressBar
{
private:
int w;
@ -512,7 +512,7 @@ public:
/**
* @brief Define a gradient milestone
*/
class GradientMilestone
class GradientMilestone final
{
public:
double position;

View File

@ -53,7 +53,7 @@ public:
double log (double vsize, double val);
};
class HistogramRGBArea : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling, public rtengine::NonCopyable
class HistogramRGBArea final : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling, public rtengine::NonCopyable
{
private:
typedef const double (*TMatrix)[3];
@ -116,7 +116,7 @@ public:
virtual void toggleButtonMode() = 0;
};
class HistogramArea : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling, public rtengine::NonCopyable
class HistogramArea final : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling, public rtengine::NonCopyable
{
public:
typedef sigc::signal<void, double> type_signal_factor_changed;
@ -174,7 +174,7 @@ private:
void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override;
};
class HistogramPanel : public Gtk::Grid, public PointerMotionListener, public DrawModeListener, public rtengine::NonCopyable
class HistogramPanel final : public Gtk::Grid, public PointerMotionListener, public DrawModeListener, public rtengine::NonCopyable
{
protected:

View File

@ -27,7 +27,7 @@
class RTWindow;
class ICCProfileCreator : public Gtk::Dialog, public AdjusterListener
class ICCProfileCreator final : public Gtk::Dialog, public AdjusterListener
{
private:

View File

@ -34,7 +34,7 @@
class ImageAreaPanel;
class ImageArea :
class ImageArea final :
public Gtk::DrawingArea,
public CropWindowListener,
public EditDataProvider,

View File

@ -22,7 +22,7 @@
class ImageArea;
class ImageAreaPanel :
class ImageAreaPanel final :
public Gtk::VBox
{

View File

@ -40,7 +40,7 @@ public:
//~InspectorBuffer();
};
class Inspector : public Gtk::DrawingArea
class Inspector final : public Gtk::DrawingArea
{
private:

View File

@ -25,7 +25,7 @@
#include "guiutils.h"
#include "toolpanel.h"
class IPTCPanel :
class IPTCPanel final :
public Gtk::VBox,
public ToolPanel
{

View File

@ -33,7 +33,7 @@ public:
virtual void switchPickerVisibility(bool isVisible) = 0;
};
class LockableColorPicker : BackBuffer
class LockableColorPicker final : BackBuffer
{
public:
enum class Size {

View File

@ -41,7 +41,7 @@ public:
std::vector<double> x, y; // in case of parametric curves the curve parameters are stored in vector x. In other cases these vectors store the coordinates of the bullets.
};
class MyDiagonalCurve : public MyCurve
class MyDiagonalCurve final : public MyCurve
{
private:
IdleRegister idle_register;

View File

@ -66,7 +66,7 @@ public:
double centerY;
};
class MyFlatCurve : public MyCurve
class MyFlatCurve final : public MyCurve
{
private:
IdleRegister idle_register;

View File

@ -25,7 +25,7 @@
class PreviewWindow;
class Navigator :
class Navigator final :
public Gtk::Frame,
public PointerMotionListener
{

View File

@ -34,7 +34,7 @@ class ProcParams;
struct ParamsEdited;
class PartialPasteDlg : public Gtk::Dialog
class PartialPasteDlg final : public Gtk::Dialog
{
public:

View File

@ -24,7 +24,7 @@
#include "popupcommon.h"
class PopUpButton :
class PopUpButton final :
public Gtk::Button,
public PopUpCommon
{

View File

@ -29,7 +29,7 @@
class RTWindow;
class Splash;
class Preferences :
class Preferences final :
public Gtk::Dialog,
public ProfileStoreListener
{

View File

@ -44,7 +44,7 @@ struct PreviewHandlerIdleHelper {
int pending;
};
class PreviewHandler : public rtengine::PreviewImageListener, public rtengine::NonCopyable
class PreviewHandler final : public rtengine::PreviewImageListener, public rtengine::NonCopyable
{
private:
friend int setImageUI (void* data);

View File

@ -20,10 +20,15 @@
#include <set>
#include <glibmm/ustring.h>
#include "../rtengine/noncopyable.h"
namespace Glib
{
class ustring;
}
class FileBrowserEntry;
class PreviewLoaderListener

View File

@ -49,7 +49,7 @@ class PartialProfile;
}
class RTImage;
class ProfilePanel :
class ProfilePanel final :
public Gtk::Grid,
public PParamsChangeListener,
public ProfileStoreListener,

View File

@ -28,7 +28,7 @@
#undef THREAD_PRIORITY_NORMAL
class PLDBridge :
class PLDBridge final :
public rtengine::ProgressListener
{
public:

View File

@ -26,7 +26,7 @@
class CacheImageData;
class RenameDialog :
class RenameDialog final :
public Gtk::Dialog
{

View File

@ -25,7 +25,7 @@
/**
* @brief A derived class of Gtk::Image in order to handle theme-related icon sets.
*/
class RTImage : public Gtk::Image, public RTScalable
class RTImage final : public Gtk::Image, public RTScalable
{
static double dpiBack; // used to keep track of master dpi change
static int scaleBack; // used to keep track of master scale change

View File

@ -35,7 +35,7 @@ class BatchQueuePanel;
class EditorPanel;
class FilePanel;
class PLDBridge;
class RTWindow :
class RTWindow final :
public Gtk::Window,
public rtengine::ProgressListener,
public rtengine::NonCopyable

View File

@ -22,7 +22,7 @@
#include "saveformatpanel.h"
class SaveAsDialog :
class SaveAsDialog final :
public Gtk::Dialog,
public FormatChangeListener
{

View File

@ -29,7 +29,7 @@ public:
virtual void shcChanged() = 0;
};
class SHCSelector : public Gtk::DrawingArea, BackBuffer
class SHCSelector final : public Gtk::DrawingArea, BackBuffer
{
protected:

View File

@ -20,7 +20,7 @@
#include <gtkmm.h>
class SplashImage :
class SplashImage final :
public Gtk::DrawingArea
{
@ -39,7 +39,7 @@ public:
};
//class Splash : public Gtk::Window {
class Splash : public Gtk::Dialog
class Splash final : public Gtk::Dialog
{
private:

View File

@ -113,10 +113,10 @@ protected:
void updateBackBuffer();
Gtk::SizeRequestMode get_request_mode_vfunc () const override;
void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override;
void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override;
void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override;
void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override;
void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const final;
void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const final;
void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const final;
void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const final;
void on_realize () override;
bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override;
bool on_button_press_event (GdkEventButton* event) override;

View File

@ -60,10 +60,10 @@ class ThumbBrowserBase :
bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override;
Gtk::SizeRequestMode get_request_mode_vfunc () const override;
void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const override;
void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override;
void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override;
void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override;
void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const final;
void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const final;
void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const final;
void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const final;
bool on_button_press_event (GdkEventButton* event) override;
bool on_button_release_event (GdkEventButton* event) override;

View File

@ -143,7 +143,7 @@ public:
this->batchMode = batchMode;
}
virtual Glib::ustring getToolName () {
Glib::ustring getToolName () {
return toolName;
}
};
@ -164,11 +164,11 @@ public:
FoldableToolPanel(Gtk::Box* content, Glib::ustring toolName, Glib::ustring UILabel, bool need11 = false, bool useEnabled = false);
MyExpander* getExpander() override
MyExpander* getExpander() final
{
return exp;
}
void setExpanded (bool expanded) override
void setExpanded (bool expanded) final
{
if (exp) {
exp->set_expanded( expanded );
@ -186,7 +186,7 @@ public:
exp->show();
}
}
bool getExpanded () override
bool getExpanded () final
{
if (exp) {
return exp->get_expanded();
@ -194,11 +194,11 @@ public:
return false;
}
void setParent (Gtk::Box* parent) override
void setParent (Gtk::Box* parent) final
{
parentContainer = parent;
}
Gtk::Box* getParent () override
Gtk::Box* getParent () final
{
return parentContainer;
}

View File

@ -323,11 +323,11 @@ public:
// imageareatoollistener interface
void spotWBselected(int x, int y, Thumbnail* thm = nullptr) override;
void sharpMaskSelected(bool sharpMask) override;
void sharpMaskSelected(bool sharpMask) override final;
int getSpotWBRectSize() const override;
void cropSelectionReady() override;
void rotateSelectionReady(double rotate_deg, Thumbnail* thm = nullptr) override;
ToolBar* getToolBar() const override;
ToolBar* getToolBar() const final;
CropGUIListener* startCropEditing(Thumbnail* thm = nullptr) override;
void updateTPVScrollbar(bool hide);
@ -335,7 +335,7 @@ public:
// ToolBarListener interface
void toolSelected (ToolMode tool) override;
void editModeSwitchedOff () override;
void editModeSwitchedOff () final;
void setEditProvider(EditDataProvider *provider);