Solving issue 1410: "Save Current Profile does not save some values" + shortcut keys are now also usable in single editor mode (when a filename is specified in the command line)
This commit is contained in:
parent
5a41f3ef96
commit
abc2885879
@ -257,7 +257,7 @@ HISTORY_MSG_33;Déconvolution - Itérations
|
||||
HISTORY_MSG_34;Éviter l'écrêtage couleur
|
||||
HISTORY_MSG_35;Limiteur de saturation
|
||||
HISTORY_MSG_36;Limite de saturation
|
||||
HISTORY_MSG_37;Rehaussement couleur
|
||||
HISTORY_MSG_37;Exposition auto
|
||||
HISTORY_MSG_38;Méthode de balance des blancs
|
||||
HISTORY_MSG_39;Température de couleur
|
||||
HISTORY_MSG_40;Teinte de balance des blancs
|
||||
|
@ -258,7 +258,7 @@ HISTORY_MSG_33;Deconvolution Iterations
|
||||
HISTORY_MSG_34;LCP use disortion
|
||||
HISTORY_MSG_35;LCP use vignette
|
||||
HISTORY_MSG_36;LCP use CA
|
||||
HISTORY_MSG_37;Color Boost
|
||||
HISTORY_MSG_37;Auto Exposure
|
||||
HISTORY_MSG_38;White Balance Method
|
||||
HISTORY_MSG_39;Color Temperature
|
||||
HISTORY_MSG_40;White Balance Tint
|
||||
|
@ -58,7 +58,7 @@ enum ProcEvent {
|
||||
EvLCPUseDist=33,
|
||||
EvLCPUseVign=34,
|
||||
EvLCPUseCA=35,
|
||||
EvCBBoost=36, // obsolete
|
||||
EvFixedExp=36,
|
||||
EvWBMethod=37,
|
||||
EvWBTemp=38,
|
||||
EvWBGreen=39,
|
||||
|
@ -56,7 +56,7 @@ SHARPENING, // EvShrDIterations,
|
||||
TRANSFORM, // EvLCPUseDist,
|
||||
DARKFRAME, // EvLCPUseVign,
|
||||
TRANSFORM, // EvLCPUseCA,
|
||||
0, // EvCBBoost: obsolete
|
||||
M_VOID, // EvFixedExp
|
||||
WHITEBALANCE, // EvWBMethod,
|
||||
WHITEBALANCE, // EvWBTemp,
|
||||
WHITEBALANCE, // EvWBGreen,
|
||||
|
@ -90,7 +90,6 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
|
||||
Gtk::VSeparator* vsepz = Gtk::manage (new Gtk::VSeparator ());
|
||||
Gtk::VSeparator* vsepi = Gtk::manage (new Gtk::VSeparator ());
|
||||
Gtk::VSeparator* vseph = Gtk::manage (new Gtk::VSeparator ());
|
||||
Gtk::VSeparator* vsep1 = Gtk::manage (new Gtk::VSeparator ());
|
||||
|
||||
hidehp = Gtk::manage (new Gtk::ToggleButton ());
|
||||
|
||||
@ -107,6 +106,8 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
|
||||
hidehp->set_image (*iHistoryShow);
|
||||
}
|
||||
|
||||
tbTopPanel_1 = NULL;
|
||||
if (!simpleEditor && filePanel) {
|
||||
tbTopPanel_1 = new Gtk::ToggleButton ();
|
||||
iTopPanel_1_Show = new RTImage ("panel-to-bottom.png");
|
||||
iTopPanel_1_Hide = new RTImage ("panel-to-top.png");
|
||||
@ -114,6 +115,7 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
|
||||
tbTopPanel_1->set_active (true);
|
||||
tbTopPanel_1->set_tooltip_markup (M("MAIN_TOOLTIP_SHOWHIDETP1"));
|
||||
tbTopPanel_1->set_image (*iTopPanel_1_Hide);
|
||||
}
|
||||
|
||||
tbRightPanel_1 = new Gtk::ToggleButton ();
|
||||
iRightPanel_1_Show = new RTImage ("panel-to-left.png");
|
||||
@ -139,8 +141,11 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
|
||||
toolBarPanel->pack_start (*tpc->getToolBar(), Gtk::PACK_SHRINK, 1);
|
||||
toolBarPanel->pack_start (*vsept, Gtk::PACK_SHRINK, 2);
|
||||
|
||||
if (tbTopPanel_1) {
|
||||
toolBarPanel->pack_end (*tbTopPanel_1, Gtk::PACK_SHRINK, 1);
|
||||
Gtk::VSeparator* vsep1 = Gtk::manage (new Gtk::VSeparator ());
|
||||
toolBarPanel->pack_end (*vsep1, Gtk::PACK_SHRINK, 2);
|
||||
}
|
||||
toolBarPanel->pack_end (*tpc->coarse, Gtk::PACK_SHRINK, 2);
|
||||
toolBarPanel->pack_end (*vsepcl, Gtk::PACK_SHRINK, 2);
|
||||
toolBarPanel->pack_end (*iareapanel->imageArea->indClippedPanel, Gtk::PACK_SHRINK, 0);
|
||||
@ -286,12 +291,13 @@ EditorPanel::EditorPanel (FilePanel* filePanel)
|
||||
info->signal_toggled().connect( sigc::mem_fun(*this, &EditorPanel::info_toggled) );
|
||||
beforeAfter->signal_toggled().connect( sigc::mem_fun(*this, &EditorPanel::beforeAfterToggled) );
|
||||
hidehp->signal_toggled().connect( sigc::mem_fun(*this, &EditorPanel::hideHistoryActivated) );
|
||||
tbTopPanel_1->signal_toggled().connect( sigc::mem_fun(*this, &EditorPanel::tbTopPanel_1_toggled) );
|
||||
tbRightPanel_1->signal_toggled().connect( sigc::mem_fun(*this, &EditorPanel::tbRightPanel_1_toggled) );
|
||||
saveimgas->signal_pressed().connect( sigc::mem_fun(*this, &EditorPanel::saveAsPressed) );
|
||||
queueimg->signal_pressed().connect( sigc::mem_fun(*this, &EditorPanel::queueImgPressed) );
|
||||
sendtogimp->signal_pressed().connect( sigc::mem_fun(*this, &EditorPanel::sendToGimpPressed) );
|
||||
ShowHideSidePanelsconn = tbShowHideSidePanels->signal_toggled().connect ( sigc::mem_fun(*this, &EditorPanel::toggleSidePanels), true);
|
||||
if (tbTopPanel_1)
|
||||
tbTopPanel_1->signal_toggled().connect( sigc::mem_fun(*this, &EditorPanel::tbTopPanel_1_toggled) );
|
||||
}
|
||||
|
||||
EditorPanel::~EditorPanel () {
|
||||
@ -332,6 +338,10 @@ EditorPanel::~EditorPanel () {
|
||||
//delete saveAsDialog;
|
||||
if(catalogPane)
|
||||
delete catalogPane;
|
||||
|
||||
if (!iTopPanel_1_Show) delete iTopPanel_1_Show;
|
||||
if (!iTopPanel_1_Hide) delete iTopPanel_1_Hide;
|
||||
|
||||
}
|
||||
|
||||
void EditorPanel::leftPaneButtonReleased(GdkEventButton *event) {
|
||||
@ -751,6 +761,9 @@ void EditorPanel::tbRightPanel_1_toggled () {
|
||||
}
|
||||
|
||||
void EditorPanel::tbTopPanel_1_visible (bool visible){
|
||||
if (!tbTopPanel_1)
|
||||
return;
|
||||
|
||||
if (visible)
|
||||
tbTopPanel_1->show();
|
||||
else
|
||||
@ -760,9 +773,8 @@ void EditorPanel::tbTopPanel_1_visible (bool visible){
|
||||
void EditorPanel::tbTopPanel_1_toggled () {
|
||||
|
||||
if (catalogPane){ // catalogPane does not exist in multitab mode
|
||||
tbTopPanel_1_Active = tbTopPanel_1->get_active();
|
||||
|
||||
if (tbTopPanel_1_Active){
|
||||
if (tbTopPanel_1->get_active()){
|
||||
catalogPane->show();
|
||||
tbTopPanel_1->set_image (*iTopPanel_1_Hide);
|
||||
}
|
||||
@ -775,6 +787,10 @@ void EditorPanel::tbTopPanel_1_toggled () {
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* WARNING: Take care of the simpleEditor value when adding or modifying shortcut keys,
|
||||
* since handleShortcutKey is now also triggered in simple editor mode
|
||||
*/
|
||||
bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
|
||||
|
||||
bool ctrl = event->state & GDK_CONTROL_MASK;
|
||||
@ -785,10 +801,12 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
|
||||
// Editor Layout
|
||||
switch(event->keyval) {
|
||||
case GDK_L:
|
||||
if (tbTopPanel_1)
|
||||
tbTopPanel_1->set_active (!tbTopPanel_1->get_active()); // toggle top panel
|
||||
if (ctrl) hidehp->set_active (!hidehp->get_active()); // toggle History (left panel)
|
||||
if (alt) tbRightPanel_1->set_active (!tbRightPanel_1->get_active()); // toggle right panel
|
||||
return true;
|
||||
break;
|
||||
case GDK_l:
|
||||
if (!shift && !alt /*&& !ctrl*/){
|
||||
hidehp->set_active (!hidehp->get_active()); // toggle History (left panel)
|
||||
@ -803,16 +821,19 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
|
||||
tbRightPanel_1->set_active (!tbRightPanel_1->get_active());
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case GDK_m: // Maximize preview panel: hide top AND right AND history panels
|
||||
if (!ctrl && !alt) {
|
||||
toggleSidePanels();
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case GDK_M: // Maximize preview panel: hide top AND right AND history panels AND (fit image preview)
|
||||
if (!ctrl && !alt) {
|
||||
toggleSidePanelsZoomFit();
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (!alt){
|
||||
@ -897,6 +918,7 @@ bool EditorPanel::handleShortcutKey (GdkEventKey* event) {
|
||||
saveAsPressed();
|
||||
return true;
|
||||
case GDK_q:
|
||||
if (!simpleEditor)
|
||||
queueImgPressed();
|
||||
return true;
|
||||
case GDK_e:
|
||||
@ -1362,9 +1384,13 @@ void EditorPanel::histogramChanged (LUTu & histRed, LUTu & histGreen, LUTu & his
|
||||
}
|
||||
|
||||
bool EditorPanel::CheckSidePanelsVisibility() {
|
||||
if (tbTopPanel_1) {
|
||||
if(tbTopPanel_1->get_active()==false && tbRightPanel_1->get_active()==false && hidehp->get_active()==false)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
if(tbRightPanel_1->get_active()==false && hidehp->get_active()==false)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
void EditorPanel::toggleSidePanels(){
|
||||
@ -1374,6 +1400,7 @@ void EditorPanel::toggleSidePanels(){
|
||||
bool bAllSidePanelsVisible;
|
||||
bAllSidePanelsVisible= CheckSidePanelsVisibility();
|
||||
|
||||
if (tbTopPanel_1)
|
||||
tbTopPanel_1->set_active (!bAllSidePanelsVisible);
|
||||
tbRightPanel_1->set_active (!bAllSidePanelsVisible);
|
||||
hidehp->set_active (!bAllSidePanelsVisible);
|
||||
|
@ -61,8 +61,6 @@ class EditorPanel : public Gtk::VBox,
|
||||
Gtk::ToggleButton* tbTopPanel_1;
|
||||
Gtk::ToggleButton* tbRightPanel_1;
|
||||
Gtk::ToggleButton* tbBeforeLock;
|
||||
bool tbTopPanel_1_Active;
|
||||
bool tbRightPanel_1_Active;
|
||||
//bool bAllSidePanelsVisible;
|
||||
Gtk::ToggleButton* beforeAfter;
|
||||
Gtk::HPaned* hpanedl;
|
||||
|
@ -30,6 +30,7 @@ RTWindow::RTWindow ()
|
||||
,splash(NULL)
|
||||
,epanel(NULL)
|
||||
,fpanel(NULL)
|
||||
,btn_fullscreen(NULL)
|
||||
{
|
||||
|
||||
cacheMgr->init ();
|
||||
@ -61,6 +62,7 @@ RTWindow::RTWindow ()
|
||||
is_fullscreen = false;
|
||||
property_destroy_with_parent().set_value(false);
|
||||
signal_window_state_event().connect( sigc::mem_fun(*this, &RTWindow::on_window_state_event) );
|
||||
signal_key_press_event().connect( sigc::mem_fun(*this, &RTWindow::keyPressed) );
|
||||
|
||||
if(simpleEditor)
|
||||
{
|
||||
@ -147,8 +149,6 @@ RTWindow::RTWindow ()
|
||||
|
||||
mainNB->set_current_page (mainNB->page_num (*fpanel));
|
||||
|
||||
signal_key_press_event().connect( sigc::mem_fun(*this, &RTWindow::keyPressed) );
|
||||
|
||||
Gtk::VBox* mainBox = Gtk::manage (new Gtk::VBox ());
|
||||
mainBox->pack_start (*mainNB);
|
||||
|
||||
@ -383,6 +383,13 @@ bool RTWindow::keyPressed (GdkEventKey* event) {
|
||||
bool ctrl = event->state & GDK_CONTROL_MASK;
|
||||
//bool shift = event->state & GDK_SHIFT_MASK;
|
||||
|
||||
if(event->keyval == GDK_F11)
|
||||
toggle_fullscreen();
|
||||
|
||||
if (simpleEditor)
|
||||
// in simpleEditor mode, there's no other tab that can handle pressed keys, so we can send the event to editor panel then return
|
||||
return epanel->handleShortcutKey (event);;
|
||||
|
||||
if (ctrl) {
|
||||
switch(event->keyval) {
|
||||
case GDK_F2: // file browser panel
|
||||
@ -399,10 +406,6 @@ bool RTWindow::keyPressed (GdkEventKey* event) {
|
||||
}
|
||||
}
|
||||
|
||||
if(event->keyval == GDK_F11) {
|
||||
toggle_fullscreen();
|
||||
}
|
||||
|
||||
if (mainNB->get_current_page() == mainNB->page_num(*fpanel)) {
|
||||
return fpanel->handleShortcutKey (event);
|
||||
}
|
||||
@ -500,16 +503,20 @@ void RTWindow::toggle_fullscreen () {
|
||||
if (is_fullscreen) {
|
||||
unfullscreen();
|
||||
is_fullscreen = false;
|
||||
if (btn_fullscreen) {
|
||||
//btn_fullscreen->set_label(M("MAIN_BUTTON_FULLSCREEN"));
|
||||
btn_fullscreen->set_tooltip_markup(M("MAIN_BUTTON_FULLSCREEN"));
|
||||
btn_fullscreen->set_image (*iFullscreen);
|
||||
}
|
||||
} else {
|
||||
fullscreen();
|
||||
is_fullscreen = true;
|
||||
if (btn_fullscreen) {
|
||||
//btn_fullscreen->set_label(M("MAIN_BUTTON_UNFULLSCREEN"));
|
||||
btn_fullscreen->set_tooltip_markup(M("MAIN_BUTTON_UNFULLSCREEN"));
|
||||
btn_fullscreen->set_image (*iFullscreen_exit);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void RTWindow::error (Glib::ustring descr){
|
||||
|
@ -226,7 +226,9 @@ void ToneCurve::adjusterChanged (Adjuster* a, double newval) {
|
||||
|
||||
// Switch off auto exposure if user changes sliders manually
|
||||
if (autolevels->get_active() && (a==expcomp || a==brightness || a==contrast || a==black || a==hlcompr || a==hlcomprthresh)) {
|
||||
autoconn.block(true);
|
||||
autolevels->set_active (false);
|
||||
autoconn.block(false);
|
||||
autolevels->set_inconsistent (false);
|
||||
}
|
||||
|
||||
@ -301,15 +303,7 @@ void ToneCurve::autolevels_toggled () {
|
||||
autolevels->set_inconsistent (true);
|
||||
|
||||
lastAuto = autolevels->get_active ();
|
||||
}
|
||||
|
||||
if (!batchMode && autolevels->get_active() && listener) {
|
||||
listener->panelChanged (EvAutoExp, M("GENERAL_ENABLED"));
|
||||
waitForAutoExp ();
|
||||
if (!black->getAddMode()) shcompr->set_sensitive(!((int)black->getValue ()==0)); //at black=0 shcompr value has no effect
|
||||
}
|
||||
|
||||
if (batchMode) {
|
||||
expcomp->setEditedState (UnEdited);
|
||||
brightness->setEditedState (UnEdited);
|
||||
contrast->setEditedState (UnEdited);
|
||||
@ -328,8 +322,26 @@ void ToneCurve::autolevels_toggled () {
|
||||
hlcompr->setValue (0);
|
||||
if (hlcomprthresh->getAddMode())
|
||||
hlcomprthresh->setValue (0);
|
||||
if (listener) {
|
||||
if (!autolevels->get_inconsistent()) {
|
||||
if (autolevels->get_active ())
|
||||
listener->panelChanged (EvAutoExp, M("GENERAL_ENABLED"));
|
||||
else
|
||||
listener->panelChanged (EvFixedExp, M("GENERAL_DISABLED"));
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (/* !batchMode && */ listener) {
|
||||
if (autolevels->get_active()) {
|
||||
listener->panelChanged (EvAutoExp, M("GENERAL_ENABLED"));
|
||||
waitForAutoExp ();
|
||||
if (!black->getAddMode()) shcompr->set_sensitive(!((int)black->getValue ()==0)); //at black=0 shcompr value has no effect
|
||||
}
|
||||
else {
|
||||
listener->panelChanged (EvFixedExp, M("GENERAL_DISABLED"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ToneCurve::clip_changed () {
|
||||
|
Loading…
x
Reference in New Issue
Block a user