Merge branch 'dev' into testoutputprofile
This commit is contained in:
@@ -127,6 +127,9 @@ void findOriginalEntries (const std::vector<ThumbBrowserEntryBase*>& entries)
|
||||
|
||||
FileBrowser::FileBrowser () :
|
||||
menuLabel(nullptr),
|
||||
#ifdef WIN32
|
||||
miOpenDefaultViewer(nullptr),
|
||||
#endif
|
||||
selectDF(nullptr),
|
||||
thisIsDF(nullptr),
|
||||
autoDF(nullptr),
|
||||
@@ -225,8 +228,6 @@ FileBrowser::FileBrowser () :
|
||||
* *********************/
|
||||
#if defined(WIN32)
|
||||
Gtk::manage(miOpenDefaultViewer = new Gtk::MenuItem (M("FILEBROWSER_OPENDEFAULTVIEWER")));
|
||||
#else
|
||||
miOpenDefaultViewer = nullptr;
|
||||
#endif
|
||||
|
||||
// Build a list of menu items
|
||||
@@ -240,7 +241,7 @@ FileBrowser::FileBrowser () :
|
||||
}
|
||||
|
||||
// Attach them to menu
|
||||
if (!mMenuExtProgs.empty() || miOpenDefaultViewer != nullptr) {
|
||||
if (!mMenuExtProgs.empty() || miOpenDefaultViewer) {
|
||||
amiExtProg = new Gtk::MenuItem*[mMenuExtProgs.size()];
|
||||
int itemNo = 0;
|
||||
|
||||
@@ -249,11 +250,12 @@ FileBrowser::FileBrowser () :
|
||||
p++;
|
||||
Gtk::Menu* submenuExtProg = Gtk::manage (new Gtk::Menu());
|
||||
|
||||
if (miOpenDefaultViewer != nullptr) {
|
||||
#ifdef WIN32
|
||||
if (miOpenDefaultViewer) {
|
||||
submenuExtProg->attach (*miOpenDefaultViewer, 0, 1, p, p + 1);
|
||||
p++;
|
||||
}
|
||||
|
||||
#endif
|
||||
for (auto it = mMenuExtProgs.begin(); it != mMenuExtProgs.end(); it++, itemNo++) {
|
||||
submenuExtProg->attach (*Gtk::manage(amiExtProg[itemNo] = new Gtk::MenuItem ((*it).first)), 0, 1, p, p + 1);
|
||||
p++;
|
||||
@@ -262,11 +264,12 @@ FileBrowser::FileBrowser () :
|
||||
submenuExtProg->show_all ();
|
||||
menuExtProg->set_submenu (*submenuExtProg);
|
||||
} else {
|
||||
if (miOpenDefaultViewer != nullptr) {
|
||||
#ifdef WIN32
|
||||
if (miOpenDefaultViewer) {
|
||||
pmenu->attach (*miOpenDefaultViewer, 0, 1, p, p + 1);
|
||||
p++;
|
||||
}
|
||||
|
||||
#endif
|
||||
for (auto it = mMenuExtProgs.begin(); it != mMenuExtProgs.end(); it++, itemNo++) {
|
||||
pmenu->attach (*Gtk::manage(amiExtProg[itemNo] = new Gtk::MenuItem ((*it).first)), 0, 1, p, p + 1);
|
||||
p++;
|
||||
@@ -419,9 +422,11 @@ FileBrowser::FileBrowser () :
|
||||
amiExtProg[i]->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), amiExtProg[i]));
|
||||
}
|
||||
|
||||
if (miOpenDefaultViewer != nullptr) {
|
||||
#ifdef WIN32
|
||||
if (miOpenDefaultViewer) {
|
||||
miOpenDefaultViewer->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), miOpenDefaultViewer));
|
||||
}
|
||||
#endif
|
||||
|
||||
trash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), trash));
|
||||
untrash->signal_activate().connect (sigc::bind(sigc::mem_fun(*this, &FileBrowser::menuItemActivated), untrash));
|
||||
@@ -984,8 +989,10 @@ void FileBrowser::menuItemActivated (Gtk::MenuItem* m)
|
||||
tbl->clearFromCacheRequested (mselected, true);
|
||||
|
||||
//queue_draw ();
|
||||
} else if (miOpenDefaultViewer != nullptr && m == miOpenDefaultViewer) {
|
||||
#ifdef WIN32
|
||||
} else if (miOpenDefaultViewer && m == miOpenDefaultViewer) {
|
||||
openDefaultViewer(1);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1091,6 +1098,7 @@ void FileBrowser::partPasteProfile ()
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef WIN32
|
||||
void FileBrowser::openDefaultViewer (int destination)
|
||||
{
|
||||
bool success = true;
|
||||
@@ -1104,10 +1112,11 @@ void FileBrowser::openDefaultViewer (int destination)
|
||||
}
|
||||
|
||||
if (!success) {
|
||||
Gtk::MessageDialog msgd (M("MAIN_MSG_IMAGEUNPROCESSED"), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||
Gtk::MessageDialog msgd(getToplevelWindow(this), M("MAIN_MSG_IMAGEUNPROCESSED"), true, Gtk::MESSAGE_ERROR, Gtk::BUTTONS_OK, true);
|
||||
msgd.run ();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
bool FileBrowser::keyPressed (GdkEventKey* event)
|
||||
{
|
||||
@@ -1186,6 +1195,7 @@ bool FileBrowser::keyPressed (GdkEventKey* event)
|
||||
}
|
||||
|
||||
openRequested(mselected);
|
||||
#ifdef WIN32
|
||||
} else if (event->keyval == GDK_KEY_F5) {
|
||||
int dest = 1;
|
||||
|
||||
@@ -1197,6 +1207,7 @@ bool FileBrowser::keyPressed (GdkEventKey* event)
|
||||
|
||||
openDefaultViewer (dest);
|
||||
return true;
|
||||
#endif
|
||||
} else if (event->keyval == GDK_KEY_Page_Up) {
|
||||
scrollPage(GDK_SCROLL_UP);
|
||||
return true;
|
||||
|
@@ -190,7 +190,9 @@ public:
|
||||
void selectImage (Glib::ustring fname);
|
||||
void openNextPreviousEditorImage (Glib::ustring fname, eRTNav eNextPrevious);
|
||||
|
||||
#ifdef WIN32
|
||||
void openDefaultViewer (int destination);
|
||||
#endif
|
||||
|
||||
void thumbRearrangementNeeded ();
|
||||
void _thumbRearrangementNeeded ();
|
||||
|
@@ -349,6 +349,10 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB
|
||||
spotsize->signal_changed().connect( sigc::mem_fun(*this, &WhiteBalance::spotSizeChanged) );
|
||||
}
|
||||
|
||||
WhiteBalance::~WhiteBalance()
|
||||
{
|
||||
idle_register.destroy();
|
||||
}
|
||||
|
||||
void WhiteBalance::enabledChanged()
|
||||
{
|
||||
@@ -395,7 +399,7 @@ void WhiteBalance::adjusterChanged (Adjuster* a, double newval)
|
||||
methconn.block(true);
|
||||
opt = setActiveMethod(wbCustom.second.GUILabel);
|
||||
tempBias->set_sensitive(false);
|
||||
|
||||
|
||||
cache_customWB (tVal, gVal);
|
||||
if (a != equal) {
|
||||
cache_customEqual(eVal);
|
||||
@@ -632,7 +636,7 @@ void WhiteBalance::read (const ProcParams* pp, const ParamsEdited* pedited)
|
||||
// the equalizer's value is restored for the AutoWB
|
||||
equal->setValue (equal->getAddMode() ? 0.0 : pp->wb.equal);
|
||||
tempBias->setValue (tempBias->getAddMode() ? 0.0 : pp->wb.tempBias);
|
||||
|
||||
|
||||
// set default values first if in ADD mode, otherwise keep the current ones
|
||||
if (temp->getAddMode() ) {
|
||||
temp->setValue (0.0);
|
||||
@@ -718,7 +722,7 @@ void WhiteBalance::write (ProcParams* pp, ParamsEdited* pedited)
|
||||
|
||||
void WhiteBalance::setDefaults (const ProcParams* defParams, const ParamsEdited* pedited)
|
||||
{
|
||||
|
||||
|
||||
equal->setDefault (defParams->wb.equal);
|
||||
tempBias->setDefault (defParams->wb.tempBias);
|
||||
|
||||
@@ -895,12 +899,28 @@ inline Gtk::TreeRow WhiteBalance::getActiveMethod ()
|
||||
|
||||
void WhiteBalance::WBChanged(double temperature, double greenVal)
|
||||
{
|
||||
GThreadLock lock;
|
||||
disableListener();
|
||||
setEnabled(true);
|
||||
temp->setValue(temperature);
|
||||
green->setValue(greenVal);
|
||||
temp->setDefault(temperature);
|
||||
green->setDefault(greenVal);
|
||||
enableListener();
|
||||
struct Data {
|
||||
WhiteBalance* self;
|
||||
double temperature;
|
||||
double green_val;
|
||||
};
|
||||
|
||||
const auto func = [](gpointer data) -> gboolean {
|
||||
WhiteBalance* const self = static_cast<WhiteBalance*>(static_cast<Data*>(data)->self);
|
||||
const double temperature = static_cast<Data*>(data)->temperature;
|
||||
const double green_val = static_cast<Data*>(data)->green_val;
|
||||
delete static_cast<Data*>(data);
|
||||
|
||||
self->disableListener();
|
||||
self->setEnabled(true);
|
||||
self->temp->setValue(temperature);
|
||||
self->green->setValue(green_val);
|
||||
self->temp->setDefault(temperature);
|
||||
self->green->setDefault(green_val);
|
||||
self->enableListener();
|
||||
|
||||
return FALSE;
|
||||
};
|
||||
|
||||
idle_register.add(func, new Data{this, temperature, greenVal});
|
||||
}
|
||||
|
@@ -77,6 +77,9 @@ protected:
|
||||
int custom_temp;
|
||||
double custom_green;
|
||||
double custom_equal;
|
||||
|
||||
IdleRegister idle_register;
|
||||
|
||||
void cache_customWB (int temp, double green); //cache custom WB setting to allow its recall
|
||||
void cache_customTemp (int temp); //cache Temperature only to allow its recall
|
||||
void cache_customGreen (double green); //cache Green only to allow its recall
|
||||
@@ -92,7 +95,7 @@ protected:
|
||||
public:
|
||||
|
||||
WhiteBalance ();
|
||||
~WhiteBalance () {};
|
||||
~WhiteBalance ();
|
||||
|
||||
static void init ();
|
||||
static void cleanup ();
|
||||
|
Reference in New Issue
Block a user