Merge with "Beep6581/dev"

This commit is contained in:
Pandagrapher
2023-03-11 11:02:29 +01:00
252 changed files with 9021 additions and 3231 deletions

View File

@@ -18,6 +18,7 @@
*/
#include <sstream>
#include "eventmapper.h"
#include "flatfield.h"
#include "guiutils.h"
@@ -30,8 +31,13 @@
using namespace rtengine;
using namespace rtengine::procparams;
FlatField::FlatField () : FoldableToolPanel(this, "flatfield", M("TP_FLATFIELD_LABEL"))
const Glib::ustring FlatField::TOOL_NAME = "flatfield";
FlatField::FlatField () : FoldableToolPanel(this, TOOL_NAME, M("TP_FLATFIELD_LABEL"))
{
auto m = ProcEventMapper::getInstance();
EvFlatFieldFromMetaData = m->newEvent(DARKFRAME, "HISTORY_MSG_FF_FROMMETADATA");
hbff = Gtk::manage(new Gtk::Box());
flatFieldFile = Gtk::manage(new MyFileChooserButton(M("TP_FLATFIELD_LABEL"), Gtk::FILE_CHOOSER_ACTION_OPEN));
bindCurrentFolder (*flatFieldFile, options.lastFlatfieldDir);
@@ -42,6 +48,8 @@ FlatField::FlatField () : FoldableToolPanel(this, "flatfield", M("TP_FLATFIELD_L
hbff->pack_start(*flatFieldFile);
hbff->pack_start(*flatFieldFileReset, Gtk::PACK_SHRINK);
flatFieldAutoSelect = Gtk::manage(new Gtk::CheckButton((M("TP_FLATFIELD_AUTOSELECT"))));
flatFieldFromMetaData = Gtk::manage(new CheckBox((M("TP_FLATFIELD_FROMMETADATA")), multiImage));
flatFieldFromMetaData->setCheckBoxListener (this);
ffInfo = Gtk::manage(new Gtk::Label("-"));
setExpandAlignProperties(ffInfo, true, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER);
flatFieldBlurRadius = Gtk::manage(new Adjuster (M("TP_FLATFIELD_BLURRADIUS"), 0, 200, 2, 32));
@@ -70,8 +78,10 @@ FlatField::FlatField () : FoldableToolPanel(this, "flatfield", M("TP_FLATFIELD_L
flatFieldClipControl->show();
flatFieldClipControl->set_tooltip_markup (M("TP_FLATFIELD_CLIPCONTROL_TOOLTIP"));
pack_start( *hbff, Gtk::PACK_SHRINK);
pack_start( *flatFieldFromMetaData, Gtk::PACK_SHRINK);
pack_start( *Gtk::manage( new Gtk::Separator(Gtk::ORIENTATION_HORIZONTAL)), Gtk::PACK_SHRINK, 0 );
pack_start( *flatFieldAutoSelect, Gtk::PACK_SHRINK);
pack_start( *hbff, Gtk::PACK_SHRINK);
pack_start( *ffInfo, Gtk::PACK_SHRINK);
pack_start( *hbffbt, Gtk::PACK_SHRINK);
pack_start( *flatFieldBlurRadius, Gtk::PACK_SHRINK);
@@ -128,12 +138,14 @@ void FlatField::read(const rtengine::procparams::ProcParams* pp, const ParamsEdi
}
flatFieldAutoSelect->set_active (pp->raw.ff_AutoSelect);
flatFieldFromMetaData->set_active (pp->raw.ff_FromMetaData);
flatFieldBlurRadius->setValue (pp->raw.ff_BlurRadius);
flatFieldClipControl->setValue (pp->raw.ff_clipControl);
flatFieldClipControl->setAutoValue (pp->raw.ff_AutoClipControl);
if(pedited ) {
flatFieldAutoSelect->set_inconsistent (!pedited->raw.ff_AutoSelect);
flatFieldFromMetaData->set_inconsistent (!pedited->raw.ff_FromMetaData);
flatFieldBlurRadius->setEditedState( pedited->raw.ff_BlurRadius ? Edited : UnEdited );
flatFieldClipControl->setEditedState( pedited->raw.ff_clipControl ? Edited : UnEdited );
flatFieldClipControl->setAutoInconsistent(multiImage && !pedited->raw.ff_AutoClipControl);
@@ -214,6 +226,7 @@ void FlatField::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pedit
{
pp->raw.ff_file = flatFieldFile->get_filename();
pp->raw.ff_AutoSelect = flatFieldAutoSelect->get_active();
pp->raw.ff_FromMetaData = flatFieldFromMetaData->get_active();
pp->raw.ff_BlurRadius = flatFieldBlurRadius->getIntValue();
pp->raw.ff_clipControl = flatFieldClipControl->getIntValue();
pp->raw.ff_AutoClipControl = flatFieldClipControl->getAutoValue();
@@ -227,6 +240,7 @@ void FlatField::write( rtengine::procparams::ProcParams* pp, ParamsEdited* pedit
if (pedited) {
pedited->raw.ff_file = ffChanged;
pedited->raw.ff_AutoSelect = !flatFieldAutoSelect->get_inconsistent();
pedited->raw.ff_FromMetaData = !flatFieldFromMetaData->get_inconsistent();
pedited->raw.ff_BlurRadius = flatFieldBlurRadius->getEditedState ();
pedited->raw.ff_clipControl = flatFieldClipControl->getEditedState ();
pedited->raw.ff_AutoClipControl = !flatFieldClipControl->getAutoInconsistent();
@@ -352,6 +366,13 @@ void FlatField::flatFieldBlurTypeChanged ()
}
}
void FlatField::checkBoxToggled (CheckBox* c, CheckValue newval)
{
if (listener && c == flatFieldFromMetaData) {
listener->panelChanged (EvFlatFieldFromMetaData, flatFieldFromMetaData->getLastActive() ? M("GENERAL_ENABLED") : M("GENERAL_DISABLED"));
}
}
void FlatField::flatFieldAutoSelectChanged()
{
if (batchMode) {
@@ -419,3 +440,18 @@ void FlatField::flatFieldAutoClipValueChanged(int n)
}
);
}
void FlatField::setGainMap(bool enabled) {
flatFieldFromMetaData->set_sensitive(enabled);
if (!enabled) {
idle_register.add(
[this, enabled]() -> bool
{
disableListener();
flatFieldFromMetaData->setValue(false);
enableListener();
return false;
}
);
}
}