From d7f96c298eccd90208da221e4febea726ccdb5b0 Mon Sep 17 00:00:00 2001 From: Alberto Griggio Date: Sat, 30 Dec 2017 00:00:12 +0100 Subject: [PATCH] metadata panel: do not use Gtk::manage for exifpanel and iptcpanel (Fixes segfault due to removing the notebook pages in batch mode) --- rtgui/metadatapanel.cc | 11 +++++++++-- rtgui/metadatapanel.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/rtgui/metadatapanel.cc b/rtgui/metadatapanel.cc index 8d5ae158a..c59889234 100644 --- a/rtgui/metadatapanel.cc +++ b/rtgui/metadatapanel.cc @@ -43,8 +43,8 @@ MetaDataPanel::MetaDataPanel() metadataMode->signal_changed().connect(sigc::mem_fun(*this, &MetaDataPanel::metaDataModeChanged)); tagsNotebook = Gtk::manage(new Gtk::Notebook()); - exifpanel = Gtk::manage(new ExifPanel()); - iptcpanel = Gtk::manage(new IPTCPanel()); + exifpanel = new ExifPanel(); + iptcpanel = new IPTCPanel(); tagsNotebook->set_name("MetaPanelNotebook"); tagsNotebook->append_page(*exifpanel, M("MAIN_TAB_EXIF")); tagsNotebook->append_page(*iptcpanel, M("MAIN_TAB_IPTC")); @@ -53,6 +53,13 @@ MetaDataPanel::MetaDataPanel() } +MetaDataPanel::~MetaDataPanel() +{ + delete iptcpanel; + delete exifpanel; +} + + void MetaDataPanel::setBatchMode(bool batchMode) { ToolPanel::setBatchMode(batchMode); diff --git a/rtgui/metadatapanel.h b/rtgui/metadatapanel.h index d0a649a86..a2c1f43ac 100644 --- a/rtgui/metadatapanel.h +++ b/rtgui/metadatapanel.h @@ -36,6 +36,7 @@ private: public: MetaDataPanel(); + ~MetaDataPanel(); void setBatchMode(bool batchMode); void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr);