From ae9aa99e4744484c177f9fdfd57b299269c6d9cb Mon Sep 17 00:00:00 2001 From: Pandagrapher Date: Fri, 8 May 2020 18:08:44 +0200 Subject: [PATCH] Bugfixes for Locallab GUI - Fixes segfault when modifying "Advice tooltips" option in Preferences panel in "Multiple editor" mode - Removes dedicated Locallab help button (will be managed directly in RawPedia website) - Fixes issue when switching to "Normal" mode with Retinex Locallab tool. --- rtdata/languages/default | 1 - rtgui/locallabtools2.cc | 42 ++++++++++++++++++++++++++++++++++++++-- rtgui/rtwindow.cc | 23 +++++++--------------- rtgui/rtwindow.h | 1 - 4 files changed, 47 insertions(+), 20 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 0ffe73d12..2bf42685f 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1338,7 +1338,6 @@ IPTCPANEL_TITLE;Title IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. IPTCPANEL_TRANSREFERENCE;Job ID IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -LOCAL_HELP;Help Local Adjustments MAIN_BUTTON_FULLSCREEN;Fullscreen MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator MAIN_BUTTON_NAVNEXT_TOOLTIP;Navigate to the next image relative to image opened in the Editor.\nShortcut: Shift-F4\n\nTo navigate to the next image relative to the currently selected thumbnail in the File Browser or Filmstrip:\nShortcut: F4 diff --git a/rtgui/locallabtools2.cc b/rtgui/locallabtools2.cc index bd2c04087..cfc4d227f 100644 --- a/rtgui/locallabtools2.cc +++ b/rtgui/locallabtools2.cc @@ -1471,10 +1471,50 @@ void LocallabRetinex::convertParamToNormal() str->setValue(defSpot.str); loglin->set_active(defSpot.loglin); + if (defSpot.retinexMethod == "low") { + retinexMethod->set_active(0); + } else if (defSpot.retinexMethod == "uni") { + retinexMethod->set_active(1); + } else { + retinexMethod->set_active(2); + } + + fftwreti->set_active(defSpot.fftwreti); + equilret->set_active(defSpot.equilret); + neigh->setValue(defSpot.neigh); + vart->setValue(defSpot.vart); + scalereti->setValue(defSpot.scalereti); + limd->setValue(defSpot.limd); + offs->setValue(defSpot.offs); + chrrt->setValue(defSpot.chrrt); + darkness->setValue(defSpot.darkness); + lightnessreti->setValue(defSpot.lightnessreti); + cliptm->setValue(defSpot.cliptm); + softradiusret->setValue(defSpot.softradiusret); + cTtransshape->setCurve(defSpot.localTtranscurve); + cTgainshape->setCurve(defSpot.localTgaincurve); + enaretiMask->set_active(defSpot.enaretiMask); + enaretiMasktmap->set_active(defSpot.enaretiMasktmap); + CCmaskretishape->setCurve(defSpot.CCmaskreticurve); + LLmaskretishape->setCurve(defSpot.LLmaskreticurve); + HHmaskretishape->setCurve(defSpot.HHmaskreticurve); + blendmaskreti->setValue((double)defSpot.blendmaskreti); + radmaskreti->setValue(defSpot.radmaskreti); + lapmaskreti->setValue(defSpot.lapmaskreti); + chromaskreti->setValue(defSpot.chromaskreti); + gammaskreti->setValue(defSpot.gammaskreti); + slomaskreti->setValue(defSpot.slomaskreti); + Lmaskretishape->setCurve(defSpot.Lmaskreticurve); + inversret->set_active(defSpot.inversret); + // Enable all listeners enableListener(); // Update GUI based on converted widget parameters: + // - Update Retinex GUI according to scalereti adjuster value + updateRetinexGUI1(); + // - Update Retinex GUI according to inversret button state + updateRetinexGUI2(); // - Update Retinex GUI according to str adjuster value updateRetinexGUI3(); } @@ -1485,12 +1525,10 @@ void LocallabRetinex::updateGUIToMode(const modeType new_type) // Advanced widgets are hidden in Normal mode retiFrame->hide(); retitoolFrame->hide(); - expretitools->hide(); } else { // Advanced widgets are shown in Expert mode retiFrame->show(); retitoolFrame->show(); - expretitools->show(); } } diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index c1b777767..43657f6a5 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -385,13 +385,6 @@ RTWindow::RTWindow () iccProfileCreator->set_tooltip_markup (M ("MAIN_BUTTON_ICCPROFCREATOR")); iccProfileCreator->signal_clicked().connect ( sigc::mem_fun (*this, &RTWindow::showICCProfileCreator) ); - Gtk::Button* helpBtnloc = Gtk::manage (new Gtk::Button ()); - setExpandAlignProperties (helpBtnloc, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); - helpBtnloc->set_relief(Gtk::RELIEF_NONE); - helpBtnloc->set_image (*Gtk::manage (new RTImage ("questionmark.png"))); - helpBtnloc->set_tooltip_markup (M ("LOCAL_HELP")); - helpBtnloc->signal_clicked().connect (sigc::mem_fun (*this, &RTWindow::showRawPedialoc)); - Gtk::Button* helpBtn = Gtk::manage (new Gtk::Button ()); setExpandAlignProperties (helpBtn, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); helpBtn->set_relief(Gtk::RELIEF_NONE); @@ -427,7 +420,6 @@ RTWindow::RTWindow () actionGrid->set_orientation (Gtk::ORIENTATION_VERTICAL); actionGrid->attach_next_to (prProgBar, Gtk::POS_BOTTOM, 1, 1); actionGrid->attach_next_to (*iccProfileCreator, Gtk::POS_BOTTOM, 1, 1); - actionGrid->attach_next_to (*helpBtnloc, Gtk::POS_BOTTOM, 1, 1); actionGrid->attach_next_to (*helpBtn, Gtk::POS_BOTTOM, 1, 1); actionGrid->attach_next_to (*preferences, Gtk::POS_BOTTOM, 1, 1); actionGrid->attach_next_to (*btn_fullscreen, Gtk::POS_BOTTOM, 1, 1); @@ -437,7 +429,6 @@ RTWindow::RTWindow () actionGrid->set_orientation (Gtk::ORIENTATION_HORIZONTAL); actionGrid->attach_next_to (prProgBar, Gtk::POS_RIGHT, 1, 1); actionGrid->attach_next_to (*iccProfileCreator, Gtk::POS_RIGHT, 1, 1); - actionGrid->attach_next_to (*helpBtnloc, Gtk::POS_RIGHT, 1, 1); actionGrid->attach_next_to (*helpBtn, Gtk::POS_RIGHT, 1, 1); actionGrid->attach_next_to (*preferences, Gtk::POS_RIGHT, 1, 1); actionGrid->attach_next_to (*btn_fullscreen, Gtk::POS_RIGHT, 1, 1); @@ -936,12 +927,6 @@ void RTWindow::showRawPedia() gtk_show_uri(nullptr, "https://rawpedia.rawtherapee.com/", GDK_CURRENT_TIME, &gerror); } -void RTWindow::showRawPedialoc() -{ - GError* gerror = nullptr; - gtk_show_uri(nullptr, "https://rawpedia.rawtherapee.com/Local_Adjustments/fr", GDK_CURRENT_TIME, &gerror); -} - void RTWindow::showICCProfileCreator () { ICCProfileCreator *iccpc = new ICCProfileCreator (this); @@ -1098,7 +1083,13 @@ void RTWindow::updateFBToolBarVisibility (bool showFilmStripToolBar) void RTWindow::updateShowtooltipVisibility (bool showtooltip) { - epanel->updateShowtooltipVisibility (showtooltip); + if (epanel) { + epanel->updateShowtooltipVisibility (showtooltip); + } + + for (auto panel : epanels) { + panel.second->updateShowtooltipVisibility (showtooltip); + } } void RTWindow::updateHistogramPosition (int oldPosition, int newPosition) diff --git a/rtgui/rtwindow.h b/rtgui/rtwindow.h index 948fddff5..2d4e390e8 100644 --- a/rtgui/rtwindow.h +++ b/rtgui/rtwindow.h @@ -91,7 +91,6 @@ public: void on_mainNB_switch_page (Gtk::Widget* widget, guint page_num); void showRawPedia(); - void showRawPedialoc(); void showICCProfileCreator (); void showPreferences (); void on_realize () override;