diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index ca4b09019..8799abf08 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -542,6 +542,7 @@ NAVIGATOR_S_VALUE;S = %1 NAVIGATOR_V_NA;V = k.a. NAVIGATOR_V_VALUE;V = %1 NAVIGATOR_XY_NA;x = k.a., y = k.a. +NAVIGATOR_XY_FULL;Breite = %1, Höhe = %2 PARTIALPASTE_BASICGROUP;Gruppe Basiseinstellungen PARTIALPASTE_CACORRECTION;Farbsaum entfernen PARTIALPASTE_CHANNELMIXER;Kanal-Mixer diff --git a/rtdata/languages/default b/rtdata/languages/default index a14b525ae..c809d4686 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -546,6 +546,7 @@ NAVIGATOR_S_VALUE;S = %1 NAVIGATOR_V_NA;V = n/a NAVIGATOR_V_VALUE;V = %1 NAVIGATOR_XY_NA;x = n/a, y = n/a +NAVIGATOR_XY_FULL;Width = %1, Height = %2 OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\nDefault internal values will be used. OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\nDefault internal values will be used. PARTIALPASTE_BASICGROUP;Basic Settings diff --git a/rtgui/crophandler.cc b/rtgui/crophandler.cc index 6abb7e1ba..792262216 100644 --- a/rtgui/crophandler.cc +++ b/rtgui/crophandler.cc @@ -333,6 +333,15 @@ void CropHandler::getSize (int& w, int& h) { h = cropH; } +void CropHandler::getFullImageSize (int& w, int& h) { + if (ipc) { + w = ipc->getFullWidth (); + h = ipc->getFullHeight (); + } else { + w=h=0; + } +} + void CropHandler::compDim () { cropX = cx; diff --git a/rtgui/crophandler.h b/rtgui/crophandler.h index af9565dd0..d9dd4dd7d 100644 --- a/rtgui/crophandler.h +++ b/rtgui/crophandler.h @@ -86,6 +86,7 @@ class CropHandler : public rtengine::DetailedCropListener, public rtengine::Size void setPosition (int x, int y, bool update=true); void getPosition (int& x, int& y); void getSize (int& w, int& h); + void getFullImageSize (int& w, int& h); void setEnabled (bool e); bool getEnabled (); diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index d2717e72c..20dc4fd28 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -478,11 +478,9 @@ void CropWindow::pointerMoved (int x, int y) { int mx, my; translateCoord (x, y, mx, my); if (!onArea (CropImage, x, y) || !cropHandler.cropPixbuf) { - // pmlistener->pointerMoved (false, mx, my, -1, -1, -1); + cropHandler.getFullImageSize(mx,my); pmlistener->pointerMoved (false, cropHandler.colorParams.working, mx, my, -1, -1, -1); - if (pmhlistener) { - pmhlistener->pointerMoved (false, cropHandler.colorParams.working, mx, my, -1, -1, -1); - } + if (pmhlistener) pmhlistener->pointerMoved (false, cropHandler.colorParams.working, mx, my, -1, -1, -1); } else { /*Glib::Mutex::Lock lock(cropHandler.cimg); diff --git a/rtgui/navigator.cc b/rtgui/navigator.cc index f1d180ca7..8252f959c 100644 --- a/rtgui/navigator.cc +++ b/rtgui/navigator.cc @@ -61,9 +61,12 @@ Navigator::Navigator () { show_all (); } -void Navigator::setInvalid () { - +void Navigator::setInvalid (int fullWidth, int fullHeight) { + if (fullWidth>0 && fullHeight>0) + position->set_text (Glib::ustring::compose (M("NAVIGATOR_XY_FULL"),fullWidth,fullHeight)); + else position->set_text (M("NAVIGATOR_XY_NA")); + R->set_text (M("NAVIGATOR_R_NA")); G->set_text (M("NAVIGATOR_G_NA")); B->set_text (M("NAVIGATOR_B_NA")); @@ -75,11 +78,11 @@ void Navigator::setInvalid () { LAB_L->set_text (M("NAVIGATOR_LAB_L_NA")); } - +// if !validPos then x/y contain the full image size void Navigator::pointerMoved (bool validPos, Glib::ustring profile, int x, int y, int r, int g, int b) { if (!validPos) - setInvalid (); + setInvalid (x,y); else { position->set_text (Glib::ustring::compose ("x = %1, y = %2", x, y)); R->set_text (Glib::ustring::compose (M("NAVIGATOR_R_VALUE"), r)); diff --git a/rtgui/navigator.h b/rtgui/navigator.h index 1e95085db..3d8a0c35c 100644 --- a/rtgui/navigator.h +++ b/rtgui/navigator.h @@ -38,7 +38,8 @@ class Navigator : public Gtk::Frame, public PointerMotionListener { //void rgb2lab (int r, int g, int b, int &LAB_l, int &LAB_a, int &LAB_b); void rgb2lab (Glib::ustring profile, int r, int g, int b, int &LAB_l, int &LAB_a, int &LAB_b); - void setInvalid (); + void setInvalid (int fullWidth=-1, int fullHeight=-1); + public: PreviewWindow* previewWindow;