Fix build crash (see #5232), but this branch is still not usable

This commit is contained in:
Hombre 2019-03-19 22:29:10 +01:00
parent e2caaf3571
commit e0c04955e3
17 changed files with 84 additions and 76 deletions

View File

@ -746,6 +746,29 @@ void Crop::update(int todo)
parent->ipf.ToneMapFattal02(f);
}
// Apply Spot removal
if (params.spot.enabled) {
if (todo & M_SPOT) {
if(!spotCrop) {
spotCrop = new Imagefloat (cropw, croph);
}
baseCrop->copyData (spotCrop);
PreviewProps pp (cropx, cropy, cropw, croph, skip);
parent->ipf.removeSpots (spotCrop, params.spot.entries, pp);
}
} else {
if (spotCrop) {
delete spotCrop;
}
spotCrop = NULL;
}
if (spotCrop) {
baseCrop = spotCrop;
}
// crop back to the size expected by the rest of the pipeline
if (need_cropping) {
Imagefloat *c = origCrop;
@ -798,28 +821,6 @@ void Crop::update(int todo)
transCrop = nullptr;
}
if (params.spot.enabled) {
if (todo & M_SPOT) {
if(!spotCrop) {
spotCrop = new Imagefloat (cropw, croph);
}
baseCrop->copyData (spotCrop);
PreviewProps pp (cropx, cropy, cropw, croph, skip);
parent->ipf.removeSpots (spotCrop, params.spot.entries, pp);
}
} else {
if (spotCrop) {
delete spotCrop;
}
spotCrop = NULL;
}
if (spotCrop) {
baseCrop = spotCrop;
}
if ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled) {
const int W = baseCrop->getWidth();

View File

@ -21,6 +21,7 @@
#include "bayerpreprocess.h"
#include "eventmapper.h"
#include "guiutils.h"
#include "options.h"
#include "../rtengine/procparams.h"

View File

@ -19,6 +19,7 @@
#include "bayerrawexposure.h"
#include "guiutils.h"
#include "options.h"
#include "../rtengine/procparams.h"

View File

@ -27,10 +27,11 @@
#include "../rtengine/rtengine.h"
#include "edit.h"
#include "lockablecolorpicker.h"
#include "threadutils.h"
class EditSubscriber;
class CropDisplayHandler
{

View File

@ -802,11 +802,11 @@ void OPIcon::drivenPointToRectangle(const rtengine::Coord &pos,
bottomRight.y = topLeft.y + H - 1;
}
OPIcon::OPIcon(const Cairo::RefPtr<RTSurface> &normal,
const Cairo::RefPtr<RTSurface> &active,
const Cairo::RefPtr<RTSurface> &prelight,
const Cairo::RefPtr<RTSurface> &dragged,
const Cairo::RefPtr<RTSurface> &insensitive,
OPIcon::OPIcon(const Cairo::RefPtr<Cairo::ImageSurface> &normal,
const Cairo::RefPtr<Cairo::ImageSurface> &active,
const Cairo::RefPtr<Cairo::ImageSurface> &prelight,
const Cairo::RefPtr<Cairo::ImageSurface> &dragged,
const Cairo::RefPtr<Cairo::ImageSurface> &insensitive,
DrivenPoint drivenPoint) :
drivenPoint(drivenPoint)
{
@ -835,53 +835,53 @@ OPIcon::OPIcon(Glib::ustring normalImage, Glib::ustring activeImage, Glib::ustri
Glib::ustring draggedImage, Glib::ustring insensitiveImage, DrivenPoint drivenPoint) : drivenPoint(drivenPoint)
{
if (!normalImage.empty()) {
normalImg->setImage(normalImage);
normalImg = RTImage::createImgSurfFromFile(normalImage);
}
if (!prelightImage.empty()) {
prelightImg->setImage(prelightImage);
prelightImg = RTImage::createImgSurfFromFile(prelightImage);
}
if (!activeImage.empty()) {
activeImg->setImage(activeImage);
activeImg = RTImage::createImgSurfFromFile(activeImage);
}
if (!draggedImage.empty()) {
draggedImg->setImage(draggedImage);
draggedImg = RTImage::createImgSurfFromFile(draggedImage);
}
if (!insensitiveImage.empty()) {
insensitiveImg->setImage(insensitiveImage);
insensitiveImg = RTImage::createImgSurfFromFile(insensitiveImage);
}
}
const Cairo::RefPtr<RTSurface> OPIcon::getNormalImg()
const Cairo::RefPtr<Cairo::ImageSurface> OPIcon::getNormalImg()
{
return normalImg;
}
const Cairo::RefPtr<RTSurface> OPIcon::getPrelightImg()
const Cairo::RefPtr<Cairo::ImageSurface> OPIcon::getPrelightImg()
{
return prelightImg;
}
const Cairo::RefPtr<RTSurface> OPIcon::getActiveImg()
const Cairo::RefPtr<Cairo::ImageSurface> OPIcon::getActiveImg()
{
return activeImg;
}
const Cairo::RefPtr<RTSurface> OPIcon::getDraggedImg()
const Cairo::RefPtr<Cairo::ImageSurface> OPIcon::getDraggedImg()
{
return draggedImg;
}
const Cairo::RefPtr<RTSurface> OPIcon::getInsensitiveImg()
const Cairo::RefPtr<Cairo::ImageSurface> OPIcon::getInsensitiveImg()
{
return insensitiveImg;
}
void OPIcon::drawImage(Cairo::RefPtr<RTSurface> &img,
void OPIcon::drawImage(Cairo::RefPtr<Cairo::ImageSurface> &img,
Cairo::RefPtr<Cairo::Context> &cr, ObjectMOBuffer *objectBuffer,
EditCoordSystem &coordSystem)
{
int imgW = img->getWidth();
int imgH = img->getHeight();
int imgW = img->get_width();
int imgH = img->get_height();
rtengine::Coord pos;
@ -896,19 +896,19 @@ void OPIcon::drawImage(Cairo::RefPtr<RTSurface> &img,
rtengine::Coord tl, br; // Coordinate of the rectangle in the CropBuffer coordinate system
drivenPointToRectangle(pos, tl, br, imgW, imgH);
cr->set_source(img->get(), tl.x, tl.y);
cr->set_source(img, tl.x, tl.y);
cr->set_line_width(0.);
cr->rectangle(tl.x, tl.y, imgW, imgH);
cr->fill();
}
void OPIcon::drawMOImage(Cairo::RefPtr<RTSurface> &img, Cairo::RefPtr<Cairo::Context> &cr,
void OPIcon::drawMOImage(Cairo::RefPtr<Cairo::ImageSurface> &img, Cairo::RefPtr<Cairo::Context> &cr,
unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem)
{
// test of F_HOVERABLE has already been done
int imgW = img->getWidth();
int imgH = img->getHeight();
int imgW = img->get_width();
int imgH = img->get_height();
rtengine::Coord pos;

View File

@ -407,34 +407,34 @@ class OPIcon : public Geometry // OP stands for "On Preview"
{
private:
Cairo::RefPtr<RTSurface> normalImg;
Cairo::RefPtr<RTSurface> prelightImg;
Cairo::RefPtr<RTSurface> activeImg;
Cairo::RefPtr<RTSurface> draggedImg;
Cairo::RefPtr<RTSurface> insensitiveImg;
Cairo::RefPtr<Cairo::ImageSurface> normalImg;
Cairo::RefPtr<Cairo::ImageSurface> prelightImg;
Cairo::RefPtr<Cairo::ImageSurface> activeImg;
Cairo::RefPtr<Cairo::ImageSurface> draggedImg;
Cairo::RefPtr<Cairo::ImageSurface> insensitiveImg;
static void updateImages();
void changeImage(Glib::ustring &newImage);
void drawImage (Cairo::RefPtr<RTSurface> &img, Cairo::RefPtr<Cairo::Context> &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem);
void drawMOImage (Cairo::RefPtr<RTSurface> &img, Cairo::RefPtr<Cairo::Context> &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem);
void drawImage (Cairo::RefPtr<Cairo::ImageSurface> &img, Cairo::RefPtr<Cairo::Context> &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem);
void drawMOImage (Cairo::RefPtr<Cairo::ImageSurface> &img, Cairo::RefPtr<Cairo::Context> &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem);
void drivenPointToRectangle(const rtengine::Coord &pos, rtengine::Coord &topLeft, rtengine::Coord &bottomRight, int W, int H);
public:
DrivenPoint drivenPoint;
rtengine::Coord position;
OPIcon (const Cairo::RefPtr<RTSurface> &normal,
const Cairo::RefPtr<RTSurface> &active,
const Cairo::RefPtr<RTSurface> &prelight = {},
const Cairo::RefPtr<RTSurface> &dragged = {},
const Cairo::RefPtr<RTSurface> &insensitive = {},
OPIcon (const Cairo::RefPtr<Cairo::ImageSurface> &normal,
const Cairo::RefPtr<Cairo::ImageSurface> &active,
const Cairo::RefPtr<Cairo::ImageSurface> &prelight = {},
const Cairo::RefPtr<Cairo::ImageSurface> &dragged = {},
const Cairo::RefPtr<Cairo::ImageSurface> &insensitive = {},
DrivenPoint drivenPoint = DP_CENTERCENTER);
OPIcon (Glib::ustring normalImage, Glib::ustring activeImage, Glib::ustring prelightImage = "", Glib::ustring draggedImage = "", Glib::ustring insensitiveImage = "", DrivenPoint drivenPoint = DP_CENTERCENTER);
const Cairo::RefPtr<RTSurface> getNormalImg();
const Cairo::RefPtr<RTSurface> getPrelightImg();
const Cairo::RefPtr<RTSurface> getActiveImg();
const Cairo::RefPtr<RTSurface> getDraggedImg();
const Cairo::RefPtr<RTSurface> getInsensitiveImg();
const Cairo::RefPtr<Cairo::ImageSurface> getNormalImg();
const Cairo::RefPtr<Cairo::ImageSurface> getPrelightImg();
const Cairo::RefPtr<Cairo::ImageSurface> getActiveImg();
const Cairo::RefPtr<Cairo::ImageSurface> getDraggedImg();
const Cairo::RefPtr<Cairo::ImageSurface> getInsensitiveImg();
void drawOuterGeometry (Cairo::RefPtr<Cairo::Context> &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override;
void drawInnerGeometry (Cairo::RefPtr<Cairo::Context> &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override;
void drawToMOChannel (Cairo::RefPtr<Cairo::Context> &cr, unsigned short id, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) override;

View File

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

View File

@ -37,6 +37,7 @@
*/
#include "labgrid.h"
#include "options.h"
using rtengine::Color;

View File

@ -26,6 +26,7 @@
#include "guiutils.h"
#include "rtimage.h"
#include "options.h"
#include "../rtengine/lcp.h"
#include "../rtengine/procparams.h"

View File

@ -21,6 +21,7 @@
#include "preprocess.h"
#include "guiutils.h"
#include "options.h"
#include "../rtengine/procparams.h"

View File

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

View File

@ -19,9 +19,8 @@
#include <sstream>
#include "rawexposure.h"
#include "guiutils.h"
#include "options.h"
#include "../rtengine/procparams.h"
using namespace rtengine;

View File

@ -22,7 +22,7 @@
#include "sharpenedge.h"
#include "guiutils.h"
#include "options.h"
#include "../rtengine/procparams.h"
using namespace rtengine;

View File

@ -15,16 +15,16 @@ using namespace rtengine::procparams;
#define STATIC_MO_OBJ_NBR 6
Spot::Spot() : FoldableToolPanel (this, "spot", M ("TP_SPOT_LABEL"), true, true), EditSubscriber (ET_OBJECTS), lastObject (-1), activeSpot (-1),
sourceIcon ("spot-normal.png", "spot-active.png", "spot-active.png", "spot-prelight.png", "", Geometry::DP_CENTERCENTER), editedCheckBox (NULL)
sourceIcon ("spot-normal.png", "spot-active.png", "spot-active.png", "spot-prelight.png", "", Geometry::DP_CENTERCENTER), editedCheckBox (nullptr)
{
countLabel = Gtk::manage (new Gtk::Label (Glib::ustring::compose (M ("TP_SPOT_COUNTLABEL"), 0)));
edit = Gtk::manage (new Gtk::ToggleButton());
edit->add (*Gtk::manage (new RTImage ("editmodehand.png")));
edit->add (*Gtk::manage (new RTImage ("edit-point.png")));
editConn = edit->signal_toggled().connect ( sigc::mem_fun (*this, &Spot::editToggled) );
reset = Gtk::manage (new Gtk::Button ());
reset->add (*Gtk::manage (new RTImage ("gtk-undo-ltr-small.png", "gtk-undo-rtl-small.png")));
reset->add (*Gtk::manage (new RTImage ("undo-small.png")));
reset->set_relief (Gtk::RELIEF_NONE);
reset->set_border_width (0);
reset->signal_clicked().connect ( sigc::mem_fun (*this, &Spot::resetPressed) );
@ -150,7 +150,7 @@ void Spot::setBatchMode (bool batchMode)
if (!editedCheckBox) {
removeIfThere (labelBox, countLabel, false);
countLabel = NULL;
countLabel = nullptr;
editedCheckBox = Gtk::manage (new Gtk::CheckButton (Glib::ustring::compose (M ("TP_SPOT_COUNTLABEL"), 0)));
labelBox->pack_start (*editedCheckBox, Gtk::PACK_SHRINK, 2);
labelBox->reorder_child (*editedCheckBox, 0);
@ -198,7 +198,7 @@ void Spot::editToggled ()
Geometry* Spot::getVisibleGeometryFromMO (int MOID)
{
if (MOID == -1) {
return NULL;
return nullptr;
}
if (MOID == 0) {
@ -244,7 +244,7 @@ void Spot::createGeometry ()
Cairo::RefPtr<Cairo::ImageSurface> activeImg = sourceIcon.getActiveImg();
for (; j < EditSubscriber::visibleGeometry.size() - STATIC_VISIBLE_OBJ_NBR; ++i, ++j) {
EditSubscriber::mouseOverGeometry.at (i) = EditSubscriber::visibleGeometry.at (j) = new OPIcon (normalImg, activeImg, prelightImg, Cairo::RefPtr<Cairo::ImageSurface> (NULL), Cairo::RefPtr<Cairo::ImageSurface> (NULL), Geometry::DP_CENTERCENTER);
EditSubscriber::mouseOverGeometry.at (i) = EditSubscriber::visibleGeometry.at (j) = new OPIcon (normalImg, activeImg, prelightImg, Cairo::RefPtr<Cairo::ImageSurface> (nullptr), Cairo::RefPtr<Cairo::ImageSurface> (nullptr), Geometry::DP_CENTERCENTER);
EditSubscriber::visibleGeometry.at (j)->setActive (true);
EditSubscriber::visibleGeometry.at (j)->datum = Geometry::IMAGE;
EditSubscriber::visibleGeometry.at (j)->state = Geometry::NORMAL;
@ -349,7 +349,7 @@ OPIcon *Spot::getActiveSpotIcon()
return static_cast<OPIcon*> (EditSubscriber::visibleGeometry.at (activeSpot));
}
return NULL;
return nullptr;
}
void Spot::addNewEntry()

View File

@ -81,8 +81,8 @@ public:
Spot ();
~Spot ();
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = NULL);
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = NULL);
void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);
void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr);
void enabledChanged ();

View File

@ -25,10 +25,10 @@
#include "guiutils.h"
#include "multilangmgr.h"
#include "paramsedited.h"
#include "edit.h"
class ToolPanel;
class FoldableToolPanel;
class EditDataProvider;
class ToolPanelListener
{

View File

@ -21,7 +21,7 @@
#include "xtransrawexposure.h"
#include "guiutils.h"
#include "options.h"
#include "../rtengine/procparams.h"
using namespace rtengine;