Add Crop reset button - 2nd attempt (#5015)

Add dedicated reset button for Crop, rearrange some GUI, disable crop buttons in batch mode
This commit is contained in:
Roel Baars 2018-11-23 19:10:04 +01:00 committed by GitHub
parent 4e4a83b576
commit c8300b137c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
34 changed files with 134 additions and 87 deletions

View File

@ -658,7 +658,6 @@ TP_CROP_GUIDETYPE;Tipus de guia:
TP_CROP_H;Alt TP_CROP_H;Alt
TP_CROP_LABEL;Cropa TP_CROP_LABEL;Cropa
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Selecc. cropar
TP_CROP_W;Ample TP_CROP_W;Ample
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -761,7 +761,6 @@ TP_CROP_GUIDETYPE;辅助方式:
TP_CROP_H;高 TP_CROP_H;高
TP_CROP_LABEL;剪裁 TP_CROP_LABEL;剪裁
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;选择预设
TP_CROP_W;宽 TP_CROP_W;宽
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -339,7 +339,6 @@ TP_CROP_GTRULETHIRDS;1/3法則
TP_CROP_GUIDETYPE;輔助方式: TP_CROP_GUIDETYPE;輔助方式:
TP_CROP_H;高 TP_CROP_H;高
TP_CROP_LABEL;剪裁 TP_CROP_LABEL;剪裁
TP_CROP_SELECTCROP; 選擇預設
TP_CROP_W;寬 TP_CROP_W;寬
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -1425,7 +1425,6 @@ TP_CROP_GUIDETYPE;Druh vodítek:
TP_CROP_H;Výška TP_CROP_H;Výška
TP_CROP_LABEL;Ořez TP_CROP_LABEL;Ořez
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Vyznačit výřez
TP_CROP_W;Šířka TP_CROP_W;Šířka
TP_CROP_X;X TP_CROP_X;X
TP_CROP_Y;Y TP_CROP_Y;Y

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Reglen om tredjedele
TP_CROP_GUIDETYPE;Hjælpelinjer: TP_CROP_GUIDETYPE;Hjælpelinjer:
TP_CROP_H;H TP_CROP_H;H
TP_CROP_LABEL;Beskær TP_CROP_LABEL;Beskær
TP_CROP_SELECTCROP; Vælg beskæring
TP_CROP_W;B TP_CROP_W;B
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -1553,7 +1553,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh
!TP_CROP_H;Height !TP_CROP_H;Height
!TP_CROP_LABEL;Crop !TP_CROP_LABEL;Crop
!TP_CROP_PPI;PPI= !TP_CROP_PPI;PPI=
!TP_CROP_SELECTCROP;Select Crop
!TP_CROP_W;Width !TP_CROP_W;Width
!TP_CROP_X;X !TP_CROP_X;X
!TP_CROP_Y;Y !TP_CROP_Y;Y

View File

@ -1515,7 +1515,6 @@
!TP_CROP_H;Height !TP_CROP_H;Height
!TP_CROP_LABEL;Crop !TP_CROP_LABEL;Crop
!TP_CROP_PPI;PPI= !TP_CROP_PPI;PPI=
!TP_CROP_SELECTCROP;Select Crop
!TP_CROP_W;Width !TP_CROP_W;Width
!TP_CROP_X;X !TP_CROP_X;X
!TP_CROP_Y;Y !TP_CROP_Y;Y

View File

@ -1075,7 +1075,6 @@ TP_CROP_GUIDETYPE;Clase de guía:
TP_CROP_H;Al TP_CROP_H;Al
TP_CROP_LABEL;Recortar TP_CROP_LABEL;Recortar
TP_CROP_PPI;Ptos/Pulgada= TP_CROP_PPI;Ptos/Pulgada=
TP_CROP_SELECTCROP;Seleccionar recorte
TP_CROP_W;Ancho TP_CROP_W;Ancho
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Herenen erregela
TP_CROP_GUIDETYPE;Gida mota: TP_CROP_GUIDETYPE;Gida mota:
TP_CROP_H;H TP_CROP_H;H
TP_CROP_LABEL;Moztu TP_CROP_LABEL;Moztu
TP_CROP_SELECTCROP; Mozketa hautatu
TP_CROP_W;W TP_CROP_W;W
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -1509,7 +1509,6 @@ TP_CROP_GUIDETYPE;Type de guide:
TP_CROP_H;H TP_CROP_H;H
TP_CROP_LABEL;Recadrage TP_CROP_LABEL;Recadrage
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; Sélection du recadrage
TP_CROP_W;L TP_CROP_W;L
TP_CROP_X;X TP_CROP_X;X
TP_CROP_Y;Y TP_CROP_Y;Y

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Κανόνας τρίτων
TP_CROP_GUIDETYPE;Είδος βοηθών: TP_CROP_GUIDETYPE;Είδος βοηθών:
TP_CROP_H;H TP_CROP_H;H
TP_CROP_LABEL;Αποκοπή TP_CROP_LABEL;Αποκοπή
TP_CROP_SELECTCROP; Επιλογή αποκοπής
TP_CROP_W;W TP_CROP_W;W
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;כלל השליש
TP_CROP_GUIDETYPE;סוג מדריך TP_CROP_GUIDETYPE;סוג מדריך
TP_CROP_H;גובה TP_CROP_H;גובה
TP_CROP_LABEL;גזור TP_CROP_LABEL;גזור
TP_CROP_SELECTCROP;בחור גזירה
TP_CROP_W;רוחב TP_CROP_W;רוחב
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -944,7 +944,6 @@ TP_CROP_GUIDETYPE;Tipo di guida:
TP_CROP_H;A TP_CROP_H;A
TP_CROP_LABEL;Ritaglio TP_CROP_LABEL;Ritaglio
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; Seleziona Area
TP_CROP_W;L TP_CROP_W;L
TP_CROP_X;X TP_CROP_X;X
TP_CROP_Y;Y TP_CROP_Y;Y

View File

@ -1537,7 +1537,6 @@ TP_CROP_GUIDETYPE;ガイドタイプ:
TP_CROP_H;高さ TP_CROP_H;高さ
TP_CROP_LABEL;切り抜き TP_CROP_LABEL;切り抜き
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; 選択範囲切り抜き
TP_CROP_W;W 幅 TP_CROP_W;W 幅
TP_CROP_X;X TP_CROP_X;X
TP_CROP_Y;Y TP_CROP_Y;Y

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Trešdaļas
TP_CROP_GUIDETYPE;Vadlīnijas: TP_CROP_GUIDETYPE;Vadlīnijas:
TP_CROP_H;A TP_CROP_H;A
TP_CROP_LABEL;Kadrējums TP_CROP_LABEL;Kadrējums
TP_CROP_SELECTCROP; Norādīt kadrējumu
TP_CROP_W;P TP_CROP_W;P
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -626,7 +626,6 @@ TP_CROP_GUIDETYPE;Segédvonal típusa:
TP_CROP_H;M TP_CROP_H;M
TP_CROP_LABEL;Kivágás TP_CROP_LABEL;Kivágás
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; Kijelölés egérrel
TP_CROP_W;Sz TP_CROP_W;Sz
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -1319,7 +1319,6 @@ TP_CROP_GUIDETYPE;Hulplijnen:
TP_CROP_H;Hoogte TP_CROP_H;Hoogte
TP_CROP_LABEL;Bijsnijden TP_CROP_LABEL;Bijsnijden
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Selecteer gebied
TP_CROP_W;Breedte TP_CROP_W;Breedte
TP_CROP_X;X TP_CROP_X;X
TP_CROP_Y;Y TP_CROP_Y;Y

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Tredjedelsreglen
TP_CROP_GUIDETYPE;Guidetype: TP_CROP_GUIDETYPE;Guidetype:
TP_CROP_H;H TP_CROP_H;H
TP_CROP_LABEL;Beskjæring TP_CROP_LABEL;Beskjæring
TP_CROP_SELECTCROP;Velg beskjæringsområde
TP_CROP_W;B TP_CROP_W;B
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -1030,7 +1030,6 @@ TP_CROP_GUIDETYPE;Typ pomocy:
TP_CROP_H;Wysokość TP_CROP_H;Wysokość
TP_CROP_LABEL;Kadrowanie TP_CROP_LABEL;Kadrowanie
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Wybierz kadr
TP_CROP_W;Szerokość TP_CROP_W;Szerokość
TP_CROP_X;X TP_CROP_X;X
TP_CROP_Y;Y TP_CROP_Y;Y

View File

@ -1030,7 +1030,6 @@ TP_CROP_GUIDETYPE;Typ pomocy:
TP_CROP_H;Wysokosc TP_CROP_H;Wysokosc
TP_CROP_LABEL;Kadrowanie TP_CROP_LABEL;Kadrowanie
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Wybierz kadr
TP_CROP_W;Szerokosc TP_CROP_W;Szerokosc
TP_CROP_X;X TP_CROP_X;X
TP_CROP_Y;Y TP_CROP_Y;Y

View File

@ -1461,7 +1461,6 @@ TP_CROP_GUIDETYPE;Tipo de guia:
TP_CROP_H;Altura TP_CROP_H;Altura
TP_CROP_LABEL;Cortar TP_CROP_LABEL;Cortar
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Selecione para Cortar
TP_CROP_W;Largura TP_CROP_W;Largura
TP_CROP_X;X TP_CROP_X;X
TP_CROP_Y;Y TP_CROP_Y;Y

View File

@ -1004,7 +1004,6 @@ TP_CROP_GUIDETYPE;Тип направляющей:
TP_CROP_H;Высота TP_CROP_H;Высота
TP_CROP_LABEL;Кадрирование TP_CROP_LABEL;Кадрирование
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Включить режим обрезки
TP_CROP_W;Ширина TP_CROP_W;Ширина
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -909,7 +909,6 @@ TP_CROP_GUIDETYPE;Вођицe:
TP_CROP_H;В TP_CROP_H;В
TP_CROP_LABEL;Исецање TP_CROP_LABEL;Исецање
TP_CROP_PPI;ППИ= TP_CROP_PPI;ППИ=
TP_CROP_SELECTCROP; Изабери област
TP_CROP_W;Ш TP_CROP_W;Ш
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -909,7 +909,6 @@ TP_CROP_GUIDETYPE;Vođice:
TP_CROP_H;V TP_CROP_H;V
TP_CROP_LABEL;Isecanje TP_CROP_LABEL;Isecanje
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP; Izaberi oblast
TP_CROP_W;Š TP_CROP_W;Š
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -384,7 +384,6 @@ TP_CROP_GTRULETHIRDS;Pravidlo tretín
TP_CROP_GUIDETYPE;Type vodidiel: TP_CROP_GUIDETYPE;Type vodidiel:
TP_CROP_H;V TP_CROP_H;V
TP_CROP_LABEL;Orezanie TP_CROP_LABEL;Orezanie
TP_CROP_SELECTCROP; Vyberte Orez
TP_CROP_W;Š TP_CROP_W;Š
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -331,7 +331,6 @@ TP_CROP_GTRULETHIRDS;Kolmijako
TP_CROP_GUIDETYPE;Sommittelumalli: TP_CROP_GUIDETYPE;Sommittelumalli:
TP_CROP_H;Kork. TP_CROP_H;Kork.
TP_CROP_LABEL;Rajaus TP_CROP_LABEL;Rajaus
TP_CROP_SELECTCROP;Valitse alue
TP_CROP_W;Lev. TP_CROP_W;Lev.
TP_CROP_X; x TP_CROP_X; x
TP_CROP_Y; y TP_CROP_Y; y

View File

@ -1206,7 +1206,6 @@ TP_CROP_GUIDETYPE;Guidetyp:
TP_CROP_H;Höjd TP_CROP_H;Höjd
TP_CROP_LABEL;Beskär TP_CROP_LABEL;Beskär
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Välj beskärningsområde
TP_CROP_W;Bredd TP_CROP_W;Bredd
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -331,7 +331,6 @@ TP_CROP_GTRULETHIRDS;Üçler kuralı
TP_CROP_GUIDETYPE;Kılavuz türü: TP_CROP_GUIDETYPE;Kılavuz türü:
TP_CROP_H;Y TP_CROP_H;Y
TP_CROP_LABEL;Kırp TP_CROP_LABEL;Kırp
TP_CROP_SELECTCROP; Kırpma alanı seç
TP_CROP_W;G TP_CROP_W;G
TP_CROP_X;x TP_CROP_X;x
TP_CROP_Y;y TP_CROP_Y;y

View File

@ -1528,10 +1528,11 @@ TP_CROP_GUIDETYPE;Guide type:
TP_CROP_H;Height TP_CROP_H;Height
TP_CROP_LABEL;Crop TP_CROP_LABEL;Crop
TP_CROP_PPI;PPI= TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Select Crop TP_CROP_SELECTCROP;Select
TP_CROP_RESETCROP;Reset
TP_CROP_W;Width TP_CROP_W;Width
TP_CROP_X;X TP_CROP_X;Left
TP_CROP_Y;Y TP_CROP_Y;Top
TP_DARKFRAME_AUTOSELECT;Auto-selection TP_DARKFRAME_AUTOSELECT;Auto-selection
TP_DARKFRAME_LABEL;Dark-Frame TP_DARKFRAME_LABEL;Dark-Frame
TP_DEFRINGE_LABEL;Defringe TP_DEFRINGE_LABEL;Defringe

View File

@ -107,7 +107,7 @@ void BatchToolPanelCoordinator::initSession ()
// compare all the ProcParams and describe which parameters has different (i.e. inconsistent) values in pparamsEdited // compare all the ProcParams and describe which parameters has different (i.e. inconsistent) values in pparamsEdited
pparamsEdited.initFrom (initialPP); pparamsEdited.initFrom (initialPP);
crop->setDimensions (100000, 100000); //crop->setDimensions (100000, 100000);
/* if (!selected.empty()) { /* if (!selected.empty()) {
pparams = selected[0]->getProcParams (); pparams = selected[0]->getProcParams ();
@ -127,6 +127,10 @@ void BatchToolPanelCoordinator::initSession ()
coarse->initBatchBehavior (); coarse->initBatchBehavior ();
int w,h;
selected[0]->getOriginalSize(w,h);
crop->setDimensions (w, h);
if (selected.size() == 1) { if (selected.size() == 1) {
for (size_t i = 0; i < toolPanels.size(); i++) { for (size_t i = 0; i < toolPanels.size(); i++) {

View File

@ -99,89 +99,129 @@ Crop::Crop():
maxw = 3000; maxw = 3000;
maxh = 2000; maxh = 2000;
Gtk::HBox* hb1 = Gtk::manage (new Gtk::HBox ()); methodgrid = Gtk::manage(new Gtk::Grid());
methodgrid->get_style_context()->add_class("grid-spacing");
setExpandAlignProperties(methodgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
Gtk::Label* xlab = Gtk::manage (new Gtk::Label (M("TP_CROP_X") + ":"));
setExpandAlignProperties(xlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
hb1->pack_start (*Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("TP_CROP_X") + ": ")));
x = Gtk::manage (new MySpinButton ()); x = Gtk::manage (new MySpinButton ());
x->set_size_request (60, -1); setExpandAlignProperties(x, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
hb1->pack_start (*x); x->set_width_chars(6);
Gtk::Label* ylab = Gtk::manage (new Gtk::Label (M("TP_CROP_Y") + ":"));
setExpandAlignProperties(ylab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
hb1->pack_start (*Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("TP_CROP_Y") + ": ")));
y = Gtk::manage (new MySpinButton ()); y = Gtk::manage (new MySpinButton ());
y->set_size_request (60, -1); setExpandAlignProperties(y, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
hb1->pack_start (*y); y->set_width_chars(6);
pack_start (*hb1, Gtk::PACK_SHRINK, 2); Gtk::Label* wlab = Gtk::manage (new Gtk::Label (M("TP_CROP_W") + ":"));
setExpandAlignProperties(wlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
Gtk::HBox* hb2 = Gtk::manage (new Gtk::HBox ());
hb2->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_W") + ": ")));
w = Gtk::manage (new MySpinButton ()); w = Gtk::manage (new MySpinButton ());
w->set_size_request (60, -1); setExpandAlignProperties(w, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
hb2->pack_start (*w); w->set_width_chars(6);
Gtk::Label* hlab = Gtk::manage (new Gtk::Label (M("TP_CROP_H") + ":"));
setExpandAlignProperties(hlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
hb2->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_H") + ": ")));
h = Gtk::manage (new MySpinButton ()); h = Gtk::manage (new MySpinButton ());
h->set_size_request (60, -1); setExpandAlignProperties(h, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
hb2->pack_start (*h); h->set_width_chars(6);
pack_start (*hb2, Gtk::PACK_SHRINK, 4);
selectCrop = Gtk::manage (new Gtk::Button (M("TP_CROP_SELECTCROP"))); selectCrop = Gtk::manage (new Gtk::Button (M("TP_CROP_SELECTCROP")));
setExpandAlignProperties(selectCrop, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
selectCrop->get_style_context()->add_class("independent"); selectCrop->get_style_context()->add_class("independent");
selectCrop->set_image (*Gtk::manage (new RTImage ("crop-small.png"))); selectCrop->set_image (*Gtk::manage (new RTImage ("crop-small.png")));
pack_start (*selectCrop, Gtk::PACK_SHRINK, 2); resetCrop = Gtk::manage (new Gtk::Button (M("TP_CROP_RESETCROP")));
setExpandAlignProperties(resetCrop, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
resetCrop->get_style_context()->add_class("independent");
resetCrop->set_image (*Gtk::manage (new RTImage ("undo-small.png")));
Gtk::HBox* hb3 = Gtk::manage (new Gtk::HBox ()); methodgrid->attach (*xlab, 0, 0, 1, 1);
methodgrid->attach (*x, 1, 0, 1, 1);
methodgrid->attach (*ylab, 2, 0, 1, 1);
methodgrid->attach (*y, 3, 0, 1, 1);
methodgrid->attach (*wlab, 0, 1, 1, 1);
methodgrid->attach (*w, 1, 1, 1, 1);
methodgrid->attach (*hlab, 2, 1, 1, 1);
methodgrid->attach (*h, 3, 1, 1, 1);
methodgrid->attach (*selectCrop, 0, 2, 2, 1);
methodgrid->attach (*resetCrop, 2, 2, 2, 1);
pack_start (*methodgrid, Gtk::PACK_EXPAND_WIDGET, 0 );
Gtk::HSeparator* methodseparator = Gtk::manage (new Gtk::HSeparator());
methodseparator->get_style_context()->add_class("grid-row-separator");
pack_start (*methodseparator, Gtk::PACK_SHRINK, 0);
Gtk::Grid* settingsgrid = Gtk::manage(new Gtk::Grid());
settingsgrid->get_style_context()->add_class("grid-spacing");
setExpandAlignProperties(settingsgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
fixr = Gtk::manage (new Gtk::CheckButton (M("TP_CROP_FIXRATIO"))); fixr = Gtk::manage (new Gtk::CheckButton (M("TP_CROP_FIXRATIO")));
setExpandAlignProperties(fixr, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
fixr->set_active (1); fixr->set_active (1);
hb3->pack_start (*fixr, Gtk::PACK_SHRINK, 4);
ratio = Gtk::manage (new MyComboBoxText ()); ratio = Gtk::manage (new MyComboBoxText ());
hb3->pack_start (*ratio, Gtk::PACK_EXPAND_WIDGET, 4); setExpandAlignProperties(ratio, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
orientation = Gtk::manage (new MyComboBoxText ()); orientation = Gtk::manage (new MyComboBoxText ());
hb3->pack_start (*orientation); setExpandAlignProperties(orientation, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
pack_start (*hb3, Gtk::PACK_SHRINK, 4); Gtk::Label* guidelab = Gtk::manage (new Gtk::Label (M("TP_CROP_GUIDETYPE")));
setExpandAlignProperties(guidelab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
Gtk::HBox* hb31 = Gtk::manage (new Gtk::HBox ());
hb31->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_GUIDETYPE"))), Gtk::PACK_SHRINK, 4);
guide = Gtk::manage (new MyComboBoxText ()); guide = Gtk::manage (new MyComboBoxText ());
hb31->pack_start (*guide); setExpandAlignProperties(guide, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
pack_start (*hb31, Gtk::PACK_SHRINK, 4); settingsgrid->attach (*fixr, 0, 0, 1, 1);
settingsgrid->attach (*ratio, 1, 0, 1, 1);
settingsgrid->attach (*orientation, 2, 0, 1, 1);
settingsgrid->attach (*guidelab, 0, 1, 1, 1);
settingsgrid->attach (*guide, 1, 1, 2, 1);
pack_start (*settingsgrid, Gtk::PACK_SHRINK, 0 );
// ppibox START
ppibox = Gtk::manage (new Gtk::VBox());
ppibox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 2);
Gtk::HBox* hb4 = Gtk::manage (new Gtk::HBox ()); // ppigrid START
hb4->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_PPI")))); ppigrid = Gtk::manage(new Gtk::Grid());
ppigrid->get_style_context()->add_class("grid-spacing");
ppigrid->set_column_homogeneous (true);
setExpandAlignProperties(ppigrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
Gtk::HSeparator* ppiseparator = Gtk::manage (new Gtk::HSeparator());
ppiseparator->get_style_context()->add_class("grid-row-separator");
Gtk::Grid* ppisubgrid = Gtk::manage(new Gtk::Grid());
ppisubgrid->get_style_context()->add_class("grid-spacing");
setExpandAlignProperties(ppisubgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
Gtk::Label* ppilab = Gtk::manage (new Gtk::Label (M("TP_CROP_PPI")));
setExpandAlignProperties(ppilab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
ppi = Gtk::manage (new MySpinButton ()); ppi = Gtk::manage (new MySpinButton ());
ppi->set_size_request (60, -1); setExpandAlignProperties(ppi, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
hb4->pack_start (*ppi); ppi->set_width_chars(6);
sizebox = Gtk::manage (new Gtk::VBox()); ppisubgrid->attach (*ppilab, 0, 0, 1, 1);
ppisubgrid->attach (*ppi, 1, 0, 1, 1);
sizecm = Gtk::manage (new Gtk::Label (M("GENERAL_NA") + " cm x " + M("GENERAL_NA") + " cm")); sizecm = Gtk::manage (new Gtk::Label (M("GENERAL_NA") + " cm x " + M("GENERAL_NA") + " cm"));
setExpandAlignProperties(sizecm, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER);
sizein = Gtk::manage (new Gtk::Label (M("GENERAL_NA") + " in x " + M("GENERAL_NA") + " in")); sizein = Gtk::manage (new Gtk::Label (M("GENERAL_NA") + " in x " + M("GENERAL_NA") + " in"));
setExpandAlignProperties(sizein, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER);
sizebox->pack_start (*sizecm, Gtk::PACK_SHRINK, 4); ppigrid->attach (*ppiseparator, 0, 0, 2, 1);
sizebox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 6); ppigrid->attach (*sizecm, 1, 1, 1, 1);
sizebox->pack_start (*sizein, Gtk::PACK_SHRINK, 4); ppigrid->attach (*sizein, 1, 2, 1, 1);
sizebox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 6); ppigrid->attach (*ppisubgrid, 0, 1, 1, 2);
sizebox->pack_start (*hb4, Gtk::PACK_SHRINK, 2); pack_start (*ppigrid, Gtk::PACK_SHRINK, 0 );
ppibox->pack_start (*sizebox, Gtk::PACK_SHRINK, 1);
pack_start (*ppibox, Gtk::PACK_SHRINK, 0);
ppi->set_value (300); ppi->set_value (300);
// ppibox END // ppigrid END
// Populate the combobox // Populate the combobox
for (const auto& crop_ratio : crop_ratios) { for (const auto& crop_ratio : crop_ratios) {
@ -241,6 +281,7 @@ Crop::Crop():
oconn = orientation->signal_changed().connect( sigc::mem_fun(*this, &Crop::ratioChanged) ); oconn = orientation->signal_changed().connect( sigc::mem_fun(*this, &Crop::ratioChanged) );
gconn = guide->signal_changed().connect( sigc::mem_fun(*this, &Crop::notifyListener) ); gconn = guide->signal_changed().connect( sigc::mem_fun(*this, &Crop::notifyListener) );
selectCrop->signal_pressed().connect( sigc::mem_fun(*this, &Crop::selectPressed) ); selectCrop->signal_pressed().connect( sigc::mem_fun(*this, &Crop::selectPressed) );
resetCrop->signal_pressed().connect( sigc::mem_fun(*this, &Crop::doresetCrop) );
ppi->signal_value_changed().connect( sigc::mem_fun(*this, &Crop::refreshSize) ); ppi->signal_value_changed().connect( sigc::mem_fun(*this, &Crop::refreshSize) );
nx = ny = nw = nh = 0; nx = ny = nw = nh = 0;
@ -482,6 +523,23 @@ void Crop::selectPressed ()
} }
} }
void Crop::doresetCrop ()
{
xDirty = true;
yDirty = true;
wDirty = true;
hDirty = true;
int X = 0;
int Y = 0;
int W = maxw;
int H = maxh;
cropResized (X, Y, W, H);
idle_register.add(notifyListenerUI, this);
refreshSpins();
}
void Crop::notifyListener () void Crop::notifyListener ()
{ {
@ -1296,5 +1354,7 @@ void Crop::setBatchMode (bool batchMode)
ratio->append (M("GENERAL_UNCHANGED")); ratio->append (M("GENERAL_UNCHANGED"));
orientation->append (M("GENERAL_UNCHANGED")); orientation->append (M("GENERAL_UNCHANGED"));
guide->append (M("GENERAL_UNCHANGED")); guide->append (M("GENERAL_UNCHANGED"));
removeIfThere (this, ppibox); removeIfThere (this, ppigrid);
removeIfThere (methodgrid, selectCrop);
removeIfThere (methodgrid, resetCrop);
} }

View File

@ -51,6 +51,7 @@ public:
void ratioFixedChanged (); // The toggle button void ratioFixedChanged (); // The toggle button
void refreshSize (); void refreshSize ();
void selectPressed (); void selectPressed ();
void doresetCrop ();
void setDimensions (int mw, int mh); void setDimensions (int mw, int mh);
void enabledChanged () override; void enabledChanged () override;
void positionChanged (); void positionChanged ();
@ -102,7 +103,9 @@ private:
MyComboBoxText* ratio; MyComboBoxText* ratio;
MyComboBoxText* orientation; MyComboBoxText* orientation;
MyComboBoxText* guide; MyComboBoxText* guide;
Gtk::Button* selectCrop; Gtk::Button* selectCrop;
Gtk::Button* resetCrop;
CropPanelListener* clistener; CropPanelListener* clistener;
int opt; int opt;
MySpinButton* x; MySpinButton* x;
@ -112,8 +115,9 @@ private:
MySpinButton* ppi; MySpinButton* ppi;
Gtk::Label* sizecm; Gtk::Label* sizecm;
Gtk::Label* sizein; Gtk::Label* sizein;
Gtk::VBox* ppibox; Gtk::Grid* ppigrid;
Gtk::VBox* sizebox; Gtk::Grid* methodgrid;
int maxw, maxh; int maxw, maxh;
double nx, ny; double nx, ny;
int nw, nh; int nw, nh;

View File

@ -618,6 +618,11 @@ void Thumbnail::getFinalSize (const rtengine::procparams::ProcParams& pparams, i
} }
} }
void Thumbnail::getOriginalSize (int& w, int& h)
{
w = tw;
h = th;
}
rtengine::IImage8* Thumbnail::processThumbImage (const rtengine::procparams::ProcParams& pparams, int h, double& scale) rtengine::IImage8* Thumbnail::processThumbImage (const rtengine::procparams::ProcParams& pparams, int h, double& scale)
{ {

View File

@ -114,6 +114,7 @@ public:
rtengine::IImage8* upgradeThumbImage (const rtengine::procparams::ProcParams& pparams, int h, double& scale); rtengine::IImage8* upgradeThumbImage (const rtengine::procparams::ProcParams& pparams, int h, double& scale);
void getThumbnailSize (int &w, int &h, const rtengine::procparams::ProcParams *pparams = nullptr); void getThumbnailSize (int &w, int &h, const rtengine::procparams::ProcParams *pparams = nullptr);
void getFinalSize (const rtengine::procparams::ProcParams& pparams, int& w, int& h); void getFinalSize (const rtengine::procparams::ProcParams& pparams, int& w, int& h);
void getOriginalSize (int& w, int& h);
const Glib::ustring& getExifString () const; const Glib::ustring& getExifString () const;
const Glib::ustring& getDateTimeString () const; const Glib::ustring& getDateTimeString () const;