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_LABEL;Cropa
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Selecc. cropar
TP_CROP_W;Ample
TP_CROP_X;x
TP_CROP_Y;y

View File

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

View File

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

View File

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

View File

@ -330,7 +330,6 @@ TP_CROP_GTRULETHIRDS;Reglen om tredjedele
TP_CROP_GUIDETYPE;Hjælpelinjer:
TP_CROP_H;H
TP_CROP_LABEL;Beskær
TP_CROP_SELECTCROP; Vælg beskæring
TP_CROP_W;B
TP_CROP_X;x
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_LABEL;Crop
!TP_CROP_PPI;PPI=
!TP_CROP_SELECTCROP;Select Crop
!TP_CROP_W;Width
!TP_CROP_X;X
!TP_CROP_Y;Y

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1528,10 +1528,11 @@ TP_CROP_GUIDETYPE;Guide type:
TP_CROP_H;Height
TP_CROP_LABEL;Crop
TP_CROP_PPI;PPI=
TP_CROP_SELECTCROP;Select Crop
TP_CROP_SELECTCROP;Select
TP_CROP_RESETCROP;Reset
TP_CROP_W;Width
TP_CROP_X;X
TP_CROP_Y;Y
TP_CROP_X;Left
TP_CROP_Y;Top
TP_DARKFRAME_AUTOSELECT;Auto-selection
TP_DARKFRAME_LABEL;Dark-Frame
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
pparamsEdited.initFrom (initialPP);
crop->setDimensions (100000, 100000);
//crop->setDimensions (100000, 100000);
/* if (!selected.empty()) {
pparams = selected[0]->getProcParams ();
@ -126,6 +126,10 @@ void BatchToolPanelCoordinator::initSession ()
pparams = selected[0]->getProcParams ();
coarse->initBatchBehavior ();
int w,h;
selected[0]->getOriginalSize(w,h);
crop->setDimensions (w, h);
if (selected.size() == 1) {

View File

@ -99,89 +99,129 @@ Crop::Crop():
maxw = 3000;
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);
hb1->pack_start (*Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("TP_CROP_X") + ": ")));
Gtk::Label* xlab = Gtk::manage (new Gtk::Label (M("TP_CROP_X") + ":"));
setExpandAlignProperties(xlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
x = Gtk::manage (new MySpinButton ());
x->set_size_request (60, -1);
hb1->pack_start (*x);
setExpandAlignProperties(x, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
x->set_width_chars(6);
hb1->pack_start (*Gtk::manage (new Gtk::Label (Glib::ustring(" ") + M("TP_CROP_Y") + ": ")));
Gtk::Label* ylab = Gtk::manage (new Gtk::Label (M("TP_CROP_Y") + ":"));
setExpandAlignProperties(ylab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
y = Gtk::manage (new MySpinButton ());
y->set_size_request (60, -1);
hb1->pack_start (*y);
pack_start (*hb1, Gtk::PACK_SHRINK, 2);
Gtk::HBox* hb2 = Gtk::manage (new Gtk::HBox ());
hb2->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_W") + ": ")));
setExpandAlignProperties(y, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
y->set_width_chars(6);
Gtk::Label* wlab = Gtk::manage (new Gtk::Label (M("TP_CROP_W") + ":"));
setExpandAlignProperties(wlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
w = Gtk::manage (new MySpinButton ());
w->set_size_request (60, -1);
hb2->pack_start (*w);
setExpandAlignProperties(w, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
w->set_width_chars(6);
hb2->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_H") + ": ")));
Gtk::Label* hlab = Gtk::manage (new Gtk::Label (M("TP_CROP_H") + ":"));
setExpandAlignProperties(hlab, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
h = Gtk::manage (new MySpinButton ());
h->set_size_request (60, -1);
hb2->pack_start (*h);
pack_start (*hb2, Gtk::PACK_SHRINK, 4);
setExpandAlignProperties(h, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
h->set_width_chars(6);
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->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")));
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::HBox* hb3 = Gtk::manage (new Gtk::HBox ());
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")));
setExpandAlignProperties(fixr, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER);
fixr->set_active (1);
hb3->pack_start (*fixr, Gtk::PACK_SHRINK, 4);
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 ());
hb3->pack_start (*orientation);
setExpandAlignProperties(orientation, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
pack_start (*hb3, Gtk::PACK_SHRINK, 4);
Gtk::HBox* hb31 = Gtk::manage (new Gtk::HBox ());
hb31->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_GUIDETYPE"))), 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);
guide = Gtk::manage (new MyComboBoxText ());
hb31->pack_start (*guide);
setExpandAlignProperties(guide, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER);
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 );
pack_start (*hb31, Gtk::PACK_SHRINK, 4);
// ppibox START
ppibox = Gtk::manage (new Gtk::VBox());
ppibox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 2);
// ppigrid START
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::HBox* hb4 = Gtk::manage (new Gtk::HBox ());
hb4->pack_start (*Gtk::manage (new Gtk::Label (M("TP_CROP_PPI"))));
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->set_size_request (60, -1);
hb4->pack_start (*ppi);
sizebox = Gtk::manage (new Gtk::VBox());
setExpandAlignProperties(ppi, true, false, Gtk::ALIGN_END, Gtk::ALIGN_CENTER);
ppi->set_width_chars(6);
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"));
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"));
sizebox->pack_start (*sizecm, Gtk::PACK_SHRINK, 4);
sizebox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 6);
sizebox->pack_start (*sizein, Gtk::PACK_SHRINK, 4);
sizebox->pack_start (*Gtk::manage (new Gtk::HSeparator()), Gtk::PACK_SHRINK, 6);
sizebox->pack_start (*hb4, Gtk::PACK_SHRINK, 2);
ppibox->pack_start (*sizebox, Gtk::PACK_SHRINK, 1);
pack_start (*ppibox, Gtk::PACK_SHRINK, 0);
setExpandAlignProperties(sizein, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER);
ppigrid->attach (*ppiseparator, 0, 0, 2, 1);
ppigrid->attach (*sizecm, 1, 1, 1, 1);
ppigrid->attach (*sizein, 1, 2, 1, 1);
ppigrid->attach (*ppisubgrid, 0, 1, 1, 2);
pack_start (*ppigrid, Gtk::PACK_SHRINK, 0 );
ppi->set_value (300);
// ppibox END
// ppigrid END
// Populate the combobox
for (const auto& crop_ratio : crop_ratios) {
@ -241,6 +281,7 @@ Crop::Crop():
oconn = orientation->signal_changed().connect( sigc::mem_fun(*this, &Crop::ratioChanged) );
gconn = guide->signal_changed().connect( sigc::mem_fun(*this, &Crop::notifyListener) );
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) );
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 ()
{
@ -1296,5 +1354,7 @@ void Crop::setBatchMode (bool batchMode)
ratio->append (M("GENERAL_UNCHANGED"));
orientation->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 refreshSize ();
void selectPressed ();
void doresetCrop ();
void setDimensions (int mw, int mh);
void enabledChanged () override;
void positionChanged ();
@ -102,7 +103,9 @@ private:
MyComboBoxText* ratio;
MyComboBoxText* orientation;
MyComboBoxText* guide;
Gtk::Button* selectCrop;
Gtk::Button* resetCrop;
CropPanelListener* clistener;
int opt;
MySpinButton* x;
@ -112,8 +115,9 @@ private:
MySpinButton* ppi;
Gtk::Label* sizecm;
Gtk::Label* sizein;
Gtk::VBox* ppibox;
Gtk::VBox* sizebox;
Gtk::Grid* ppigrid;
Gtk::Grid* methodgrid;
int maxw, maxh;
double nx, ny;
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)
{

View File

@ -114,6 +114,7 @@ public:
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 getFinalSize (const rtengine::procparams::ProcParams& pparams, int& w, int& h);
void getOriginalSize (int& w, int& h);
const Glib::ustring& getExifString () const;
const Glib::ustring& getDateTimeString () const;