From 56964eceebda4ab8de6c659f0c5add794c691aae Mon Sep 17 00:00:00 2001 From: ffsup2 Date: Sat, 16 Apr 2011 10:29:33 +0200 Subject: [PATCH] Issue #497 Before/After: purple after image rotate --- rtgui/editorpanel.cc | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 4ac47d661..cb5734718 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -247,13 +247,22 @@ EditorPanel::~EditorPanel () { history->setHistoryBeforeLineListener (NULL); // the order is important! + iarea->setBeforeAfterViews (NULL, iarea); delete iarea; iarea = NULL; + if (beforeIpc) + beforeIpc->stopProcessing (); + delete beforeIarea; beforeIarea = NULL; + if (beforeIpc) + beforeIpc->setPreviewImageListener (NULL); delete beforePreviewHandler; - + beforePreviewHandler = NULL; + if (beforeIpc) + rtengine::StagedImageProcessor::destroy (beforeIpc); + beforeIpc = NULL; close (); if (epih->pending) @@ -1062,6 +1071,10 @@ void EditorPanel::beforeAfterToggled () { } if (beforeAfter->get_active ()) { + int errorCode=0; + rtengine::InitialImage *beforeImg = rtengine::InitialImage::load ( isrc->getImageSource ()->getFileName(), openThm->getType()==FT_Raw , &errorCode, NULL); + if( !beforeImg || errorCode ) + return; beforeIarea = new ImageAreaPanel (); @@ -1081,8 +1094,8 @@ void EditorPanel::beforeAfterToggled () { beforeAfterBox->show_all (); beforePreviewHandler = new PreviewHandler (); - isrc->increaseRef (); - beforeIpc = rtengine::StagedImageProcessor::create (isrc); + + beforeIpc = rtengine::StagedImageProcessor::create (beforeImg); beforeIpc->setPreviewScale (10); beforeIpc->setPreviewImageListener (beforePreviewHandler); beforeIarea->imageArea->setPreviewHandler (beforePreviewHandler);