Swap positions of scope buttons

Make the scope type buttons the primary buttons and the other options
secondary.
This commit is contained in:
Lawrence Lee
2020-10-02 21:55:15 -07:00
parent b8af429f0e
commit 6b667ead58
6 changed files with 223 additions and 101 deletions

View File

@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
sodipodi:docname="histogram-ellipsis-small.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
inkscape:export-filename="/tmp/template.png"
id="SVGRoot"
version="1.1"
viewBox="0 0 16 16"
height="16"
width="16">
<sodipodi:namedview
inkscape:document-rotation="0"
inkscape:snap-bbox-midpoints="false"
inkscape:snap-grids="true"
inkscape:object-nodes="false"
inkscape:snap-others="false"
inkscape:bbox-nodes="true"
inkscape:snap-bbox="true"
inkscape:pagecheckerboard="false"
inkscape:grid-bbox="true"
inkscape:window-maximized="1"
inkscape:window-y="0"
inkscape:window-x="0"
inkscape:window-height="1041"
inkscape:window-width="1920"
showgrid="true"
inkscape:current-layer="layer1"
inkscape:document-units="px"
inkscape:cy="6.2923433"
inkscape:cx="3.5003527"
inkscape:zoom="33.366433"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
borderopacity="1.0"
bordercolor="#666768"
pagecolor="#E0E1E2"
id="base">
<inkscape:grid
dotted="false"
empspacing="7"
originy="1"
originx="1"
id="grid1374"
type="xygrid" />
</sodipodi:namedview>
<defs
id="defs815" />
<metadata
id="metadata818">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:creator>
<cc:Agent>
<dc:title>Lawrence Lee</dc:title>
</cc:Agent>
</dc:creator>
<dc:rights>
<cc:Agent>
<dc:title />
</cc:Agent>
</dc:rights>
<dc:description>RawTherapee icon.</dc:description>
<cc:license
rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/licenses/by-sa/4.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Notice" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#Attribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
<cc:requires
rdf:resource="http://creativecommons.org/ns#ShareAlike" />
</cc:License>
</rdf:RDF>
</metadata>
<g
transform="translate(0,-8)"
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
y="10"
x="2"
height="12"
width="12"
id="rect896"
style="opacity:0.3;fill:#2a7fff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<rect
y="9.5"
x="1.5"
height="13.000001"
width="13"
id="rect849"
style="opacity:1;fill:none;fill-opacity:0.3;stroke:#000000;stroke-width:0.999999;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
<circle
style="fill:#2a7fff;fill-opacity:1;stroke-linecap:square"
id="path852"
cx="4.5"
cy="16"
r="1.5" />
<circle
style="fill:#2a7fff;fill-opacity:1;stroke-linecap:square"
id="path852-5"
cx="8"
cy="16"
r="1.5" />
<circle
style="fill:#2a7fff;fill-opacity:1;stroke-linecap:square"
id="path852-6"
cx="11.5"
cy="16"
r="1.5" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@@ -244,12 +244,13 @@ GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done edit
HISTOGRAM_TOOLTIP_B;Show/Hide blue histogram.
HISTOGRAM_TOOLTIP_BAR;Show/Hide RGB indicator bar.
HISTOGRAM_TOOLTIP_CHRO;Show/Hide chromaticity histogram.
HISTOGRAM_TOOLTIP_CROSSHAIR;Show/Hide indicator crosshair.
HISTOGRAM_TOOLTIP_G;Show/Hide green histogram.
HISTOGRAM_TOOLTIP_L;Show/Hide CIELab luminance histogram.
HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram.
HISTOGRAM_TOOLTIP_R;Show/Hide red histogram.
HISTOGRAM_TOOLTIP_RAW;Show/Hide raw histogram.
HISTOGRAM_TOOLTIP_TYPE;Toggle visibility of the scope selection buttons.
HISTOGRAM_TOOLTIP_SHOW_OPTIONS;Toggle visibility of the scope option buttons.
HISTOGRAM_TOOLTIP_TYPE_HISTOGRAM;Histogram
HISTOGRAM_TOOLTIP_TYPE_HISTOGRAM_RAW;Raw Histogram
HISTOGRAM_TOOLTIP_TYPE_PARADE;RGB Parade

View File

@@ -128,13 +128,6 @@ HistogramPanel::HistogramPanel () :
mode1Image = new RTImage ("histogram-mode-logx-small.png");
mode2Image = new RTImage ("histogram-mode-logxy-small.png");
histImage.reset(new RTImage("histogram-type-histogram-small.png"));
histRawImage.reset(new RTImage("histogram-bayer-on-small.png"));
paradeImage.reset(new RTImage("histogram-type-parade-small.png"));
waveImage.reset(new RTImage("histogram-type-waveform-small.png"));
vectHcImage.reset(new RTImage("histogram-type-vectorscope-hc-small.png"));
vectHsImage.reset(new RTImage("histogram-type-vectorscope-hs-small.png"));
histImageOn.reset(new RTImage("histogram-type-histogram-small.png"));
histRawImageOn.reset(new RTImage("histogram-bayer-on-small.png"));
paradeImageOn.reset(new RTImage("histogram-type-parade-small.png"));
@@ -154,8 +147,8 @@ HistogramPanel::HistogramPanel () :
showValue = Gtk::manage (new Gtk::ToggleButton ());
showChro = Gtk::manage (new Gtk::ToggleButton ());
showMode = Gtk::manage (new Gtk::Button ());
scopeType = Gtk::manage (new Gtk::ToggleButton ());
showBAR = Gtk::manage (new Gtk::ToggleButton ());
scopeOptions = Gtk::manage (new Gtk::ToggleButton ());
Gtk::RadioButtonGroup scopeTypeGroup;
scopeHistBtn = Gtk::manage(new Gtk::RadioButton(scopeTypeGroup));
@@ -183,8 +176,8 @@ HistogramPanel::HistogramPanel () :
showChro->set_can_focus(false);
showMode->set_name("histButton");
showMode->set_can_focus(false);
scopeType->set_name("histButton");
scopeType->set_can_focus(false);
scopeOptions->set_name("histButton");
scopeOptions->set_can_focus(false);
showBAR->set_name("histButton");
showBAR->set_can_focus(false);
scopeHistBtn->set_name("histButton");
@@ -206,7 +199,7 @@ HistogramPanel::HistogramPanel () :
showValue->set_relief (Gtk::RELIEF_NONE);
showChro->set_relief (Gtk::RELIEF_NONE);
showMode->set_relief (Gtk::RELIEF_NONE);
scopeType->set_relief (Gtk::RELIEF_NONE);
scopeOptions->set_relief (Gtk::RELIEF_NONE);
showBAR->set_relief (Gtk::RELIEF_NONE);
scopeHistBtn->set_relief (Gtk::RELIEF_NONE);
scopeHistRawBtn->set_relief (Gtk::RELIEF_NONE);
@@ -221,8 +214,7 @@ HistogramPanel::HistogramPanel () :
showValue->set_tooltip_text (M("HISTOGRAM_TOOLTIP_L"));
showChro->set_tooltip_text (M("HISTOGRAM_TOOLTIP_CHRO"));
showMode->set_tooltip_text (M("HISTOGRAM_TOOLTIP_MODE"));
scopeType->set_tooltip_text (M("HISTOGRAM_TOOLTIP_TYPE"));
showBAR->set_tooltip_text (M("HISTOGRAM_TOOLTIP_BAR"));
scopeOptions->set_tooltip_text(M("HISTOGRAM_TOOLTIP_SHOW_OPTIONS"));
scopeHistBtn->set_tooltip_text(M("HISTOGRAM_TOOLTIP_TYPE_HISTOGRAM"));
scopeHistRawBtn->set_tooltip_text(M("HISTOGRAM_TOOLTIP_TYPE_HISTOGRAM_RAW"));
scopeParadeBtn->set_tooltip_text(M("HISTOGRAM_TOOLTIP_TYPE_PARADE"));
@@ -234,8 +226,8 @@ HistogramPanel::HistogramPanel () :
buttonGrid->set_orientation(Gtk::ORIENTATION_HORIZONTAL);
persistentButtons = Gtk::manage(new Gtk::Box());
persistentButtons->set_orientation(Gtk::ORIENTATION_VERTICAL);
scopeButtons = Gtk::manage(new Gtk::Box());
scopeButtons->set_orientation(Gtk::ORIENTATION_VERTICAL);
optionButtons = Gtk::manage(new Gtk::Box());
optionButtons->set_orientation(Gtk::ORIENTATION_VERTICAL);
showRed->set_active (options.histogramRed);
showGreen->set_active (options.histogramGreen);
@@ -243,7 +235,7 @@ HistogramPanel::HistogramPanel () :
showValue->set_active (options.histogramLuma);
showChro->set_active (options.histogramChroma);
// no showMode->set_active(), as it's not a ToggleButton
scopeType->set_active(options.histogramShowScopeButtons);
scopeOptions->set_active(options.histogramShowOptionButtons);
showBAR->set_active (options.histogramBar);
showRed->set_image (showRed->get_active() ? *redImage : *redImage_g);
@@ -291,22 +283,19 @@ HistogramPanel::HistogramPanel () :
case ScopeType::NONE:
break;
}
scopeOptions->set_image(*Gtk::manage(new RTImage("histogram-ellipsis-small.png")));
showBAR->set_image (showBAR->get_active() ? *barImage : *barImage_g);
type_changed();
updateHistAreaOptions();
if (histogramRGBArea) {
updateHistRGBAreaOptions();
}
setExpandAlignProperties(showRed , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
setExpandAlignProperties(showGreen, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
setExpandAlignProperties(showBlue , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
setExpandAlignProperties(showValue, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
setExpandAlignProperties(showChro , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
setExpandAlignProperties(showMode , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
setExpandAlignProperties(scopeType, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
setExpandAlignProperties(scopeOptions, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
setExpandAlignProperties(showBAR , false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
setExpandAlignProperties(persistentButtons, false, true, Gtk::ALIGN_START, Gtk::ALIGN_FILL);
setExpandAlignProperties(optionButtons, false, true, Gtk::ALIGN_START, Gtk::ALIGN_FILL);
showRed->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::red_toggled), showRed );
showGreen->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::green_toggled), showGreen );
@@ -314,7 +303,7 @@ HistogramPanel::HistogramPanel () :
showValue->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::value_toggled), showValue );
showChro->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::chro_toggled), showChro );
showMode->signal_released().connect( sigc::mem_fun(*this, &HistogramPanel::mode_released), showMode );
scopeType->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::type_pressed) );
scopeOptions->signal_toggled().connect(sigc::mem_fun(*this, &HistogramPanel::scopeOptionsToggled));
showBAR->signal_toggled().connect( sigc::mem_fun(*this, &HistogramPanel::bar_toggled), showBAR );
scopeHistBtn->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &HistogramPanel::type_selected), scopeHistBtn));
scopeHistRawBtn->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &HistogramPanel::type_selected), scopeHistRawBtn));
@@ -323,31 +312,34 @@ HistogramPanel::HistogramPanel () :
scopeVectHcBtn->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &HistogramPanel::type_selected), scopeVectHcBtn));
scopeVectHsBtn->signal_toggled().connect(sigc::bind(sigc::mem_fun(*this, &HistogramPanel::type_selected), scopeVectHsBtn));
persistentButtons->add(*showRed);
persistentButtons->add(*showGreen);
persistentButtons->add(*showBlue);
persistentButtons->add(*showValue);
persistentButtons->add(*showChro);
persistentButtons->add(*showMode);
persistentButtons->add(*scopeType);
persistentButtons->add(*showBAR);
optionButtons->add(*showRed);
optionButtons->add(*showGreen);
optionButtons->add(*showBlue);
optionButtons->add(*showValue);
optionButtons->add(*showChro);
optionButtons->add(*showMode);
optionButtons->add(*showBAR);
scopeButtons->add(*scopeHistBtn);
scopeButtons->add(*scopeHistRawBtn);
scopeButtons->add(*scopeParadeBtn);
scopeButtons->add(*scopeWaveBtn);
scopeButtons->add(*scopeVectHsBtn);
scopeButtons->add(*scopeVectHcBtn);
Gtk::VSeparator* separator = Gtk::manage(new Gtk::VSeparator());
setExpandAlignProperties(separator, true, true, Gtk::ALIGN_FILL, Gtk::ALIGN_END);
persistentButtons->add(*scopeHistBtn);
persistentButtons->add(*scopeHistRawBtn);
persistentButtons->add(*scopeParadeBtn);
persistentButtons->add(*scopeWaveBtn);
persistentButtons->add(*scopeVectHsBtn);
persistentButtons->add(*scopeVectHcBtn);
persistentButtons->add(*separator);
persistentButtons->add(*scopeOptions);
// Put the button vbox next to the window's border to be less disturbing
if (options.histogramPosition == 1) {
buttonGrid->add(*persistentButtons);
buttonGrid->add(*scopeButtons);
buttonGrid->add(*optionButtons);
add (*buttonGrid);
add (*gfxGrid);
} else {
buttonGrid->add(*scopeButtons);
buttonGrid->add(*optionButtons);
buttonGrid->add(*persistentButtons);
add (*gfxGrid);
@@ -355,8 +347,14 @@ HistogramPanel::HistogramPanel () :
}
show_all ();
scopeButtons->set_no_show_all();
scopeButtons->set_visible(options.histogramShowScopeButtons);
optionButtons->set_no_show_all();
optionButtons->set_visible(options.histogramShowOptionButtons);
type_changed();
updateHistAreaOptions();
if (histogramRGBArea) {
updateHistRGBAreaOptions();
}
rconn = signal_size_allocate().connect( sigc::mem_fun(*this, &HistogramPanel::resized) );
}
@@ -469,10 +467,10 @@ void HistogramPanel::mode_released ()
rgbv_toggled();
}
void HistogramPanel::type_pressed()
void HistogramPanel::scopeOptionsToggled()
{
options.histogramShowScopeButtons = scopeType->get_active();
scopeButtons->set_visible(scopeType->get_active());
options.histogramShowOptionButtons = scopeOptions->get_active();
optionButtons->set_visible(scopeOptions->get_active());
}
void HistogramPanel::type_selected(Gtk::RadioButton* button)
@@ -561,53 +559,48 @@ void HistogramPanel::type_changed()
switch (options.histogramScopeType) {
case ScopeType::HISTOGRAM:
showRed->set_sensitive();
showGreen->set_sensitive();
showBlue->set_sensitive();
showValue->set_sensitive();
showChro->set_sensitive();
showMode->set_sensitive();
scopeType->set_image(*histImage);
showRed->show();
showGreen->show();
showBlue->show();
showValue->show();
showChro->show();
showMode->show();
showBAR->show();
showBAR->set_tooltip_text(M("HISTOGRAM_TOOLTIP_BAR"));
histogramRGBArea = histogramRGBAreaHori.get();
break;
case ScopeType::HISTOGRAM_RAW:
showRed->set_sensitive();
showGreen->set_sensitive();
showBlue->set_sensitive();
showValue->set_sensitive(false);
showChro->set_sensitive(false);
showMode->set_sensitive();
scopeType->set_image(*histRawImage);
showRed->show();
showGreen->show();
showBlue->show();
showValue->hide();
showChro->hide();
showMode->show();
showBAR->hide();
histogramRGBArea = nullptr;
break;
case ScopeType::PARADE:
case ScopeType::WAVEFORM:
showRed->set_sensitive();
showGreen->set_sensitive();
showBlue->set_sensitive();
showValue->set_sensitive();
showChro->set_sensitive(false);
showMode->set_sensitive(false);
if (options.histogramScopeType == ScopeType::PARADE) {
scopeType->set_image(*paradeImage);
} else {
scopeType->set_image(*waveImage);
}
showRed->show();
showGreen->show();
showBlue->show();
showValue->show();
showChro->hide();
showMode->hide();
showBAR->show();
showBAR->set_tooltip_text(M("HISTOGRAM_TOOLTIP_BAR"));
histogramRGBArea = histogramRGBAreaVert.get();
break;
case ScopeType::VECTORSCOPE_HC:
case ScopeType::VECTORSCOPE_HS:
showRed->set_sensitive(false);
showGreen->set_sensitive(false);
showBlue->set_sensitive(false);
showValue->set_sensitive(false);
showChro->set_sensitive(false);
showMode->set_sensitive(false);
if (options.histogramScopeType == ScopeType::VECTORSCOPE_HC) {
scopeType->set_image(*vectHcImage);
} else {
scopeType->set_image(*vectHsImage);
}
showRed->hide();
showGreen->hide();
showBlue->hide();
showValue->hide();
showChro->hide();
showMode->hide();
showBAR->show();
showBAR->set_tooltip_text(M("HISTOGRAM_TOOLTIP_CROSSHAIR"));
histogramRGBArea = nullptr;
break;
case ScopeType::NONE:
@@ -679,10 +672,10 @@ void HistogramPanel::reorder (Gtk::PositionType align)
gfxGrid->add(*histogramRGBArea);
}
scopeButtons->reference();
removeIfThere(buttonGrid, scopeButtons, false);
buttonGrid->add(*scopeButtons);
scopeButtons->unreference();
optionButtons->reference();
removeIfThere(buttonGrid, optionButtons, false);
buttonGrid->add(*optionButtons);
optionButtons->unreference();
} else {
buttonGrid->reference();
removeIfThere(this, buttonGrid, false);

View File

@@ -257,7 +257,7 @@ protected:
Gtk::Grid* gfxGrid;
Gtk::Grid* buttonGrid;
Gtk::Box* persistentButtons;
Gtk::Box* scopeButtons;
Gtk::Box* optionButtons;
HistogramArea* histogramArea;
HistogramRGBArea* histogramRGBArea;
std::unique_ptr<HistogramRGBAreaHori> histogramRGBAreaHori;
@@ -269,7 +269,7 @@ protected:
Gtk::ToggleButton* showBAR;
Gtk::ToggleButton* showChro;
Gtk::Button* showMode;
Gtk::ToggleButton* scopeType;
Gtk::ToggleButton* scopeOptions;
Gtk::RadioButton* scopeHistBtn;
Gtk::RadioButton* scopeHistRawBtn;
@@ -292,13 +292,6 @@ protected:
Gtk::Image *barImage_g;
Gtk::Image *chroImage_g;
std::unique_ptr<Gtk::Image> histImage;
std::unique_ptr<Gtk::Image> histRawImage;
std::unique_ptr<Gtk::Image> paradeImage;
std::unique_ptr<Gtk::Image> waveImage;
std::unique_ptr<Gtk::Image> vectHcImage;
std::unique_ptr<Gtk::Image> vectHsImage;
std::unique_ptr<Gtk::Image> histImageOn;
std::unique_ptr<Gtk::Image> histRawImageOn;
std::unique_ptr<Gtk::Image> paradeImageOn;
@@ -364,7 +357,7 @@ public:
void chro_toggled ();
void bar_toggled ();
void mode_released ();
void type_pressed ();
void scopeOptionsToggled();
void type_selected(Gtk::RadioButton* button);
void type_changed ();
void rgbv_toggled ();

View File

@@ -450,7 +450,7 @@ void Options::setDefaults()
histogramHeight = 200;
histogramDrawMode = 0;
histogramScopeType = ScopeType::HISTOGRAM;
histogramShowScopeButtons = false;
histogramShowOptionButtons = false;
curvebboxpos = 1;
complexity = 2;
prevdemo = PD_Sidecar;
@@ -1440,8 +1440,8 @@ void Options::readFromFile(Glib::ustring fname)
histogramScopeType = static_cast<ScopeType>(keyFile.get_integer("GUI", "HistogramScopeType"));
}
if (keyFile.has_key("GUI", "HistogramShowScopeButtons")) {
histogramShowScopeButtons = keyFile.get_boolean("GUI", "HistogramShowScopeButtons");
if (keyFile.has_key("GUI", "HistogramShowOptionButtons")) {
histogramShowOptionButtons = keyFile.get_boolean("GUI", "HistogramShowOptionButtons");
}
if (keyFile.has_key("GUI", "NavigatorRGBUnit")) {
@@ -2267,7 +2267,7 @@ void Options::saveToFile(Glib::ustring fname)
keyFile.set_integer("GUI", "HistogramHeight", histogramHeight);
keyFile.set_integer("GUI", "HistogramDrawMode", histogramDrawMode);
keyFile.set_integer("GUI", "HistogramScopeType", rtengine::toUnderlying(histogramScopeType));
keyFile.set_boolean("GUI", "HistogramShowScopeButtons", histogramShowScopeButtons);
keyFile.set_boolean("GUI", "HistogramShowOptionButtons", histogramShowOptionButtons);
keyFile.set_integer("GUI", "NavigatorRGBUnit", (int)navRGBUnit);
keyFile.set_integer("GUI", "NavigatorHSVUnit", (int)navHSVUnit);
keyFile.set_boolean("GUI", "ShowFilmStripToolBar", showFilmStripToolBar);

View File

@@ -323,7 +323,7 @@ public:
int histogramHeight;
int histogramDrawMode;
ScopeType histogramScopeType;
bool histogramShowScopeButtons;
bool histogramShowOptionButtons;
bool FileBrowserToolbarSingleRow;
bool hideTPVScrollbar;
int whiteBalanceSpotSize;