diff -Nru rphoto-0.4.1/build/debian/changelog rphoto-0.4.2/build/debian/changelog --- rphoto-0.4.1/build/debian/changelog 2011-01-02 18:59:02.000000000 +0000 +++ rphoto-0.4.2/build/debian/changelog 2012-07-28 15:56:16.000000000 +0000 @@ -1,3 +1,17 @@ +rphoto (0.4-2) jaunty; urgency=low + + * See local ChangeLog for details + + -- Remi Peyronnet Sat, 28 Jul 2012 17:38:00 +0000 + +rphoto (0.4-1) stable; urgency=low + + * Added guide ratio feature. + * Fixed bugs. + See local ChangeLog for details + + -- Remi Peyronnet Sun, 27 Apr 2012 16:48:00 +0000 + rphoto (0.4-0) jaunty; urgency=low * Added resize feature. See local ChangeLog for details diff -Nru rphoto-0.4.1/build/debian/rphoto.desktop rphoto-0.4.2/build/debian/rphoto.desktop --- rphoto-0.4.1/build/debian/rphoto.desktop 2012-05-30 06:33:17.000000000 +0000 +++ rphoto-0.4.2/build/debian/rphoto.desktop 2011-01-02 18:59:02.000000000 +0000 @@ -7,7 +7,7 @@ Comment[fr]=Crée des images et modifie des photographies Exec=RPhoto %f TryExec=RPhoto -Icon=rphoto.xpm +Icon=/usr/share/rphoto/rphoto.xpm Terminal=false Categories=Graphics;2DGraphics;RasterGraphics;GTK; MimeType=image/jpeg;image/jpg diff -Nru rphoto-0.4.1/build/vc/RPhoto.iss rphoto-0.4.2/build/vc/RPhoto.iss --- rphoto-0.4.1/build/vc/RPhoto.iss 2011-01-02 18:59:02.000000000 +0000 +++ rphoto-0.4.2/build/vc/RPhoto.iss 2012-07-28 15:56:16.000000000 +0000 @@ -3,7 +3,7 @@ [Setup] AppName=RPhoto -AppVerName=RPhoto 0.4.0 +AppVerName=RPhoto 0.4.2 AppPublisherURL=http://www.via.ecp.fr/~remi/soft/rphoto/ AppSupportURL=http://www.via.ecp.fr/~remi/soft/rphoto/ AppUpdatesURL=http://www.via.ecp.fr/~remi/soft/rphoto/ diff -Nru rphoto-0.4.1/ChangeLog rphoto-0.4.2/ChangeLog --- rphoto-0.4.1/ChangeLog 2012-05-28 14:29:27.000000000 +0000 +++ rphoto-0.4.2/ChangeLog 2012-07-28 15:57:04.000000000 +0000 @@ -1,3 +1,9 @@ +2012-07-28 17:33 remi 0.4.2 + * Added Mask off areas to be cropped off (feature requested by Marcus S. & Fank B.) + * Added AutoSave Folder & Suffix (feature requested by Fank B.) + * Added Confirmation when not save (Marcus S.) + * Fixed tracker size when tracking + 2012-05-28 16:17 remi 0.4.1 * Added Guide Ratio feature (feature request from Wolfgang Z.) * Moved wxRectTracker to new wxEvtHandler (from Troels K) diff -Nru rphoto-0.4.1/configure rphoto-0.4.2/configure --- rphoto-0.4.1/configure 2012-04-15 17:57:03.000000000 +0000 +++ rphoto-0.4.2/configure 2012-07-28 15:57:13.000000000 +0000 @@ -2478,7 +2478,7 @@ # Define the identity of the package. PACKAGE=RPhoto - VERSION=0.4.1 + VERSION=0.4.2 cat >>confdefs.h <<_ACEOF diff -Nru rphoto-0.4.1/configure.in rphoto-0.4.2/configure.in --- rphoto-0.4.1/configure.in 2012-04-15 17:11:30.000000000 +0000 +++ rphoto-0.4.2/configure.in 2012-07-28 15:57:04.000000000 +0000 @@ -1,6 +1,6 @@ AC_INIT AC_CONFIG_SRCDIR([configure.in]) -AM_INIT_AUTOMAKE(RPhoto,0.4.1) +AM_INIT_AUTOMAKE(RPhoto,0.4.2) AC_PROG_CC AC_PROG_CPP AC_PROG_CXX diff -Nru rphoto-0.4.1/debian/changelog rphoto-0.4.2/debian/changelog --- rphoto-0.4.1/debian/changelog 2012-05-30 04:54:54.000000000 +0000 +++ rphoto-0.4.2/debian/changelog 2012-07-30 15:27:26.000000000 +0000 @@ -1,3 +1,12 @@ +rphoto (0.4.2-1dhor~precise) precise; urgency=low + + * Added Mask off areas to be cropped off + * Added AutoSave Folder & Suffix + * Added Confirmation when not save + * Fixed tracker size when tracking + + -- Dariusz Duma Mon, 30 Jul 2012 17:26:39 +0200 + rphoto (0.4.1-1dhor~precise) precise; urgency=low * Added Guide Ratio feature (feature request from Wolfgang Z.) diff -Nru rphoto-0.4.1/lib/wxmisc/ConfigDialog.cpp rphoto-0.4.2/lib/wxmisc/ConfigDialog.cpp --- rphoto-0.4.1/lib/wxmisc/ConfigDialog.cpp 2011-01-02 18:59:02.000000000 +0000 +++ rphoto-0.4.2/lib/wxmisc/ConfigDialog.cpp 2012-07-28 15:56:16.000000000 +0000 @@ -59,7 +59,7 @@ // Add sizer sizer wxBoxSizer * sizer = new wxBoxSizer(wxVERTICAL); // Add Tab Control - m_pTabs = new wxNotebook(this, -1, wxDefaultPosition, wxSize(250,150)); + m_pTabs = new wxNotebook(this, -1, wxDefaultPosition, wxSize(350,250)); // wxNotebookSizer * nbs = new wxNotebookSizer(m_pTabs); sizer->Add(m_pTabs, 1, wxEXPAND); // Add buttons diff -Nru rphoto-0.4.1/lib/wxRectTracker/RectTracker.cpp rphoto-0.4.2/lib/wxRectTracker/RectTracker.cpp --- rphoto-0.4.1/lib/wxRectTracker/RectTracker.cpp 2012-02-12 00:11:53.000000000 +0000 +++ rphoto-0.4.2/lib/wxRectTracker/RectTracker.cpp 2012-07-22 21:33:07.000000000 +0000 @@ -12,12 +12,17 @@ #include "RectTracker.h" +#ifdef wxUSE_GRAPHICS_CONTEXT +#include +#include +#endif + IMPLEMENT_CLASS(wxRectTracker, wxEvtHandler) static const wxRect NullRect(0, 0, -1, -1); wxRectTracker::wxRectTracker(wxWindow* wnd, wxFrame* frame) : - wxEvtHandler(), m_wnd(wnd), m_frame(frame) + wxEvtHandler(), m_wnd(wnd), m_frame(frame), m_cGreyOut(0,0,0,0) { m_iHandlerWidth = 5; m_cursorMove = new wxCursor(wxCURSOR_SIZING); @@ -47,11 +52,14 @@ void wxRectTracker::OnPaint(wxPaintEvent& event) { this->GetNextHandler()->ProcessEvent(event); + wxClientDC dc(m_wnd); + m_wnd->PrepareDC(dc); if (wxDynamicCast(m_wnd,wxScrolledWindow)) { wxDynamicCast(m_wnd,wxScrolledWindow)->DoPrepareDC(dc); - } + } + OnDraw(&dc); } @@ -65,11 +73,38 @@ // DrawRect operates with a wxPaintDC => Window coordinates void wxRectTracker::DrawRect(wxDC & dc, int x, int y, int w, int h) { + + // Grey out cutted off area + // Use wxGraphicsContext for transparency support +#ifdef wxUSE_GRAPHICS_CONTEXT + if ((w != 0) && (h != 0) && (m_cGreyOut.Alpha() != 0)) + { + if (wxDynamicCast(&dc,wxWindowDC)) // If needed more casting are available to create wxGraphicsContext + { + int cw, ch; + dc.GetSize(&cw,&ch); + if (cw > GetMaxRect().GetWidth()) cw = GetMaxRect().GetWidth(); + if (ch > GetMaxRect().GetHeight()) ch = GetMaxRect().GetHeight(); + wxGraphicsContext * gc; + gc = wxGraphicsContext::Create(*wxDynamicCast(&dc,wxWindowDC)); + gc->SetBrush(wxBrush(m_cGreyOut)); + gc->SetPen(wxPen(m_cGreyOut)); + wxGraphicsPath gp = gc->CreatePath(); + gp.AddRectangle(0 ,0 ,cw ,y ); + gp.AddRectangle(0 ,y ,x ,h ); + gp.AddRectangle(x+w,y ,cw-x-w,h ); + gp.AddRectangle(0 ,y+h,cw ,ch-y-h ); + gc->FillPath(gp); + delete gc; + } + } +#endif + // Rect dc.SetBrush(*wxTRANSPARENT_BRUSH); dc.SetPen(*wxBLACK_PEN); dc.DrawRectangle(x,y,w,h); - dc.SetPen(wxPen(*wxWHITE,1,wxDOT)); + dc.SetPen(wxPen(*wxWHITE,1,wxDOT)); // wxSHORT_DASH in wxGCDC dc.DrawRectangle(x,y,w,h); // Handlers @@ -88,7 +123,8 @@ if (m_iHandlerMask & RT_MASK_BOTTOM_MID) dc.DrawRectangle(x+(w-z)/2, y+h-z-1, z, z); if (m_iHandlerMask & RT_MASK_MID_LEFT) dc.DrawRectangle(x+1 , y+(h-z)/2, z, z); if (m_iHandlerMask & RT_MASK_MID_RIGHT) dc.DrawRectangle(x+w-z-1, y+(h-z)/2, z, z); - } + } + } void wxRectTracker::DrawRect(wxDC & dc, wxRect rect) diff -Nru rphoto-0.4.1/lib/wxRectTracker/RectTracker.h rphoto-0.4.2/lib/wxRectTracker/RectTracker.h --- rphoto-0.4.1/lib/wxRectTracker/RectTracker.h 2012-05-28 14:29:27.000000000 +0000 +++ rphoto-0.4.2/lib/wxRectTracker/RectTracker.h 2012-07-28 15:56:16.000000000 +0000 @@ -118,6 +118,11 @@ bool IsShown() const; /// Hide the Tracker void Hide(); + /// Set Grey Out Colour + void SetGreyOutColour(const wxColour & col) { m_cGreyOut = col; } + void SetGreyOutColour(int percent, const wxColour & col = *wxBLACK) { m_cGreyOut = wxColour(col.Red(), col.Green(), col.Blue(), (percent*255/100)); } + /// Get Grey Out Colour + const wxColour & GetGreyOutColour() {return m_cGreyOut; } /// Get current position of the tracker wxRect GetTrackerRect() { return m_Rect; } @@ -134,8 +139,8 @@ wxRect GetUnscrolledRect() const; /// Set a new position for the tracker ; deprecated with wxEvtHandlet, do not use. virtual void SetUnscrolledRect(const wxRect& rect); - /// Get the current position of the tracker, without taking in account any scroll area ; deprecated with wxEvtHandlet, do not use. - wxRect GetTrackerRect() const { return m_curRect; }; + /// Get the current position of the tracker ; deprecated with wxEvtHandler, do not use. + wxRect GetTrackingRect() const { return m_curRect; }; /// Callback on Draw event virtual void OnDraw(wxDC*); @@ -178,6 +183,7 @@ int m_iHandlerWidth; /// Width of drawn handler int m_iHandlerMask; /// Mask describing which handlers will be drawn int m_state; /// Current state of the control (See RT_STATE) + wxColour m_cGreyOut; /// Colour to grey out the region outside selection wxPoint m_leftClick; /// Coordinates of the last left clic wxPoint m_prevMove; /// Coordinates of the previous move Binary files /tmp/ONUAXkNvJY/rphoto-0.4.1/po/fr.gmo and /tmp/gk5NRDM3Vm/rphoto-0.4.2/po/fr.gmo differ diff -Nru rphoto-0.4.1/po/fr.po rphoto-0.4.2/po/fr.po --- rphoto-0.4.1/po/fr.po 2012-05-28 14:45:34.000000000 +0000 +++ rphoto-0.4.2/po/fr.po 2012-07-28 15:58:58.000000000 +0000 @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: RPhoto\n" "Report-Msgid-Bugs-To: remi+rphoto@via.ecp.fr\n" -"POT-Creation-Date: 2012-05-28 16:45+0200\n" -"PO-Revision-Date: 2012-05-28 16:13+0100\n" +"POT-Creation-Date: 2012-07-28 17:58+0200\n" +"PO-Revision-Date: 2012-07-28 17:42+0100\n" "Last-Translator: Rémi Peyronnet \n" "Language-Team: remi+rphoto@via.ecp.fr \n" "Language: fr\n" @@ -20,326 +20,339 @@ "X-Poedit-Basepath: E:\\Programmation\\RPhoto\\rphoto\n" "X-Poedit-SearchPath-0: src\n" -#: src/RatioFrame.cpp:165 +#: src/RatioFrame.cpp:166 msgid "Preferences" msgstr "Préférences" -#: src/RatioFrame.cpp:169 src/RatioFrame.cpp:170 src/RatioFrame.cpp:171 +#: src/RatioFrame.cpp:170 src/RatioFrame.cpp:171 src/RatioFrame.cpp:172 +#: src/RatioFrame.cpp:173 src/RatioFrame.cpp:174 msgid "Main" msgstr "Général" -#: src/RatioFrame.cpp:169 +#: src/RatioFrame.cpp:170 msgid "Auto Save" msgstr "Enregistrement automatique" -#: src/RatioFrame.cpp:170 +#: src/RatioFrame.cpp:171 +msgid "Auto Save Folder" +msgstr "Répertoire d'enregistrement automatique" + +#: src/RatioFrame.cpp:172 +msgid "Auto Save Suffix" +msgstr "Suffix d'enregistrement automatique" + +#: src/RatioFrame.cpp:173 msgid "Auto Crop after Rotation" msgstr "Taille automatique après rotation" -#: src/RatioFrame.cpp:171 +#: src/RatioFrame.cpp:174 msgid "Undo History" msgstr "Historique Annulation" -#: src/RatioFrame.cpp:174 src/RatioFrame.cpp:176 src/RatioFrame.cpp:177 -#: src/RatioFrame.cpp:178 src/RatioFrame.cpp:179 +#: src/RatioFrame.cpp:177 src/RatioFrame.cpp:179 src/RatioFrame.cpp:180 +#: src/RatioFrame.cpp:181 src/RatioFrame.cpp:182 msgid "JPEG" msgstr "JPEG" -#: src/RatioFrame.cpp:174 +#: src/RatioFrame.cpp:177 msgid "JPEGTran's path" msgstr "Chemin de l'exécutable JPEGTran" -#: src/RatioFrame.cpp:176 +#: src/RatioFrame.cpp:179 msgid "Display Lossless warnings" msgstr "Affiche les alertes JPEGTran" -#: src/RatioFrame.cpp:177 +#: src/RatioFrame.cpp:180 msgid "JPEG Quality (0-100)" msgstr "Qualité JPEG (0-100)" -#: src/RatioFrame.cpp:178 +#: src/RatioFrame.cpp:181 msgid "Favorite Exif Tags" msgstr "Sélection de tags Exif" -#: src/RatioFrame.cpp:179 +#: src/RatioFrame.cpp:182 msgid "Comments Encoding" msgstr "Encodage des commentaires" -#: src/RatioFrame.cpp:189 src/RatioFrame.cpp:190 src/RatioFrame.cpp:198 -#: src/RatioFrame.cpp:199 src/RatioFrame.cpp:200 src/RatioFrame.cpp:207 +#: src/RatioFrame.cpp:192 src/RatioFrame.cpp:193 src/RatioFrame.cpp:201 +#: src/RatioFrame.cpp:202 src/RatioFrame.cpp:203 src/RatioFrame.cpp:210 msgid "Defaults" msgstr "Initialisation" -#: src/RatioFrame.cpp:189 +#: src/RatioFrame.cpp:192 msgid "Ratio" msgstr "Ratio" -#: src/RatioFrame.cpp:190 +#: src/RatioFrame.cpp:193 msgid "Ratio's List" msgstr "Liste des ratios" -#: src/RatioFrame.cpp:198 +#: src/RatioFrame.cpp:201 msgid "Guide Ratio" msgstr "Ratio des guides" -#: src/RatioFrame.cpp:199 +#: src/RatioFrame.cpp:202 msgid "Guide Lines Ratio's List" msgstr "Liste des ratios des guides" -#: src/RatioFrame.cpp:200 +#: src/RatioFrame.cpp:203 msgid "Resize's List" msgstr "Liste des dimensions" -#: src/RatioFrame.cpp:204 +#: src/RatioFrame.cpp:207 msgid "Automatic" msgstr "Automatique" -#: src/RatioFrame.cpp:205 src/RatioFrame.cpp:415 +#: src/RatioFrame.cpp:208 src/RatioFrame.cpp:430 msgid "Landscape" msgstr "Paysage" -#: src/RatioFrame.cpp:206 src/RatioFrame.cpp:416 +#: src/RatioFrame.cpp:209 src/RatioFrame.cpp:431 msgid "Portrait" msgstr "Portrait" -#: src/RatioFrame.cpp:207 +#: src/RatioFrame.cpp:210 msgid "Orientation" msgstr "Orientation" -#: src/RatioFrame.cpp:210 +#: src/RatioFrame.cpp:213 src/RatioFrame.cpp:215 msgid "Appearance" msgstr "Apparence" -#: src/RatioFrame.cpp:210 +#: src/RatioFrame.cpp:213 msgid "Fit the image inside the window" msgstr "Affiche l'image entière dans la fenêtre." +#: src/RatioFrame.cpp:215 +msgid "Grey Out cutted off area (percent)" +msgstr "Griser l'extérieur (pourcentage)" + # ###################################################### # # Menus et Barres d'outils # ###################################################### # # Menu Fichier ######################################### # -#: src/RatioFrame.cpp:310 +#: src/RatioFrame.cpp:325 msgid "&Open..." msgstr "&Ouvrir..." -#: src/RatioFrame.cpp:310 +#: src/RatioFrame.cpp:325 msgid "Open a file." msgstr "Ouvre un fichier" -#: src/RatioFrame.cpp:311 +#: src/RatioFrame.cpp:326 msgid "&Save" msgstr "&Enregistrer" -#: src/RatioFrame.cpp:311 +#: src/RatioFrame.cpp:326 msgid "Save the current file." msgstr "Enregistre le fichier courant." -#: src/RatioFrame.cpp:312 +#: src/RatioFrame.cpp:327 msgid "&Save as..." msgstr "Enregistrer &sous..." -#: src/RatioFrame.cpp:312 +#: src/RatioFrame.cpp:327 msgid "Save the current file under another name." msgstr "Enregistre le fichier sous un autre nom." -#: src/RatioFrame.cpp:313 +#: src/RatioFrame.cpp:328 msgid "&Reload" msgstr "&Ré-ouvrir" -#: src/RatioFrame.cpp:313 +#: src/RatioFrame.cpp:328 msgid "Reload original file." msgstr "Ré-ouvre le fichier dans sa version originale." -#: src/RatioFrame.cpp:314 +#: src/RatioFrame.cpp:329 msgid "&Delete" msgstr "S&upprimer" -#: src/RatioFrame.cpp:314 +#: src/RatioFrame.cpp:329 msgid "Suppress the file." msgstr "Efface le fichier du disque dur" -#: src/RatioFrame.cpp:315 +#: src/RatioFrame.cpp:330 msgid "&Move" msgstr "&Déplacer" -#: src/RatioFrame.cpp:315 +#: src/RatioFrame.cpp:330 msgid "Move the file to the selected folder." msgstr "Déplace le fichier dans le répertoire sélectionné." -#: src/RatioFrame.cpp:316 +#: src/RatioFrame.cpp:331 msgid "Mo&ve Next" msgstr "Déplace et S&uivant" -#: src/RatioFrame.cpp:316 +#: src/RatioFrame.cpp:331 msgid "Move the file to the selected folder and go to the next file." msgstr "" "Déplace le fichier dans le répertoire sélectionné et ouvre le fichier " "suivant." -#: src/RatioFrame.cpp:318 +#: src/RatioFrame.cpp:333 msgid "&Previous File" msgstr "Fichier &précédent" -#: src/RatioFrame.cpp:318 +#: src/RatioFrame.cpp:333 msgid "Open the previous file in the explorer." msgstr "Ouvre le fichier précédent." -#: src/RatioFrame.cpp:319 +#: src/RatioFrame.cpp:334 msgid "&Next File" msgstr "Fichier suiva&nt" -#: src/RatioFrame.cpp:319 +#: src/RatioFrame.cpp:334 msgid "Open the next file in the explorer." msgstr "Ouvre le fichier suivant" -#: src/RatioFrame.cpp:321 +#: src/RatioFrame.cpp:336 msgid "&Preferences" msgstr "&Préférences" -#: src/RatioFrame.cpp:321 +#: src/RatioFrame.cpp:336 msgid "Define application's settings." msgstr "Définit les options utilisateurs." -#: src/RatioFrame.cpp:323 +#: src/RatioFrame.cpp:338 msgid "&Quit" msgstr "&Quitter" -#: src/RatioFrame.cpp:323 +#: src/RatioFrame.cpp:338 msgid "Quit the application." msgstr "Quitte l'application" -#: src/RatioFrame.cpp:324 +#: src/RatioFrame.cpp:339 msgid "&File" msgstr "&Fichier" -#: src/RatioFrame.cpp:327 +#: src/RatioFrame.cpp:342 msgid "&Undo" msgstr "&Annuler" -#: src/RatioFrame.cpp:327 +#: src/RatioFrame.cpp:342 msgid "Undo previous image operation." msgstr "Annule la dernière opération" -#: src/RatioFrame.cpp:328 +#: src/RatioFrame.cpp:343 msgid "&Redo" msgstr "&Rétablir" -#: src/RatioFrame.cpp:328 +#: src/RatioFrame.cpp:343 msgid "Redo last undoed operation." msgstr "Rétablit la dernière opération annulée" -#: src/RatioFrame.cpp:330 +#: src/RatioFrame.cpp:345 msgid "Crop Mode" msgstr "Mode Recadrage" -#: src/RatioFrame.cpp:330 +#: src/RatioFrame.cpp:345 msgid "Use this mode to crop images." msgstr "Utiliser ce mode pour recadrer les images." -#: src/RatioFrame.cpp:331 +#: src/RatioFrame.cpp:346 msgid "Inclinaison Mode" msgstr "Mode Redressement d'images" -#: src/RatioFrame.cpp:331 +#: src/RatioFrame.cpp:346 msgid "Use this mode to correct inclinaison of images." msgstr "Utiliser ce mode pour redresser l'image" # Menu Image ######################################### # -#: src/RatioFrame.cpp:334 +#: src/RatioFrame.cpp:349 msgid "&Crop" msgstr "Re&cadrer" -#: src/RatioFrame.cpp:334 +#: src/RatioFrame.cpp:349 msgid "Crop image to selection." msgstr "Recadre l'image sur la zone sélectionnée." -#: src/RatioFrame.cpp:335 +#: src/RatioFrame.cpp:350 msgid "Rotate &Left" msgstr "Tourner à &gauche" -#: src/RatioFrame.cpp:335 +#: src/RatioFrame.cpp:350 msgid "Rotate the image 90 degrees to the left." msgstr "Tourne l'image de 90 degrés sur la gauche" -#: src/RatioFrame.cpp:336 +#: src/RatioFrame.cpp:351 msgid "Rotate &Right" msgstr "Tourner à &droite" -#: src/RatioFrame.cpp:336 +#: src/RatioFrame.cpp:351 msgid "Rotate the image 90 degrees to the right." msgstr "Tourne l'image de 90 degrés sur la droite" -#: src/RatioFrame.cpp:337 +#: src/RatioFrame.cpp:352 msgid "Correct &Inclinaison" msgstr "Redresser l'&image" -#: src/RatioFrame.cpp:337 +#: src/RatioFrame.cpp:352 msgid "Mode Rotation : use the mouse to set horizontal / vertical lines." msgstr "" "Mode Redressement : utiliser la souris pour fixer les lignes horizontales / " "verticales." -#: src/RatioFrame.cpp:338 +#: src/RatioFrame.cpp:353 msgid "Flip &Horizontal" msgstr "Miroir &horizontal" -#: src/RatioFrame.cpp:338 +#: src/RatioFrame.cpp:353 msgid "Flip the image horizontally." msgstr "Inverse l'image comme avec un miroir horizontal." -#: src/RatioFrame.cpp:339 +#: src/RatioFrame.cpp:354 msgid "Flip &Vertical" msgstr "Miroir &vertical" -#: src/RatioFrame.cpp:339 +#: src/RatioFrame.cpp:354 msgid "Flip the image vertically." msgstr "Inverse l'image comme avec un miroir vertical." -#: src/RatioFrame.cpp:340 +#: src/RatioFrame.cpp:355 msgid "Commen&t" msgstr "Commen&taire" -#: src/RatioFrame.cpp:340 +#: src/RatioFrame.cpp:355 msgid "Modify comment." msgstr "Modifier le commentaire" -#: src/RatioFrame.cpp:341 +#: src/RatioFrame.cpp:356 msgid "Resi&ze" msgstr "Re&dimensionne" -#: src/RatioFrame.cpp:341 +#: src/RatioFrame.cpp:356 msgid "Resize image." msgstr "Redimensionne l'image" -#: src/RatioFrame.cpp:344 +#: src/RatioFrame.cpp:359 msgid "Lossless Operations" msgstr "Opérations sans pertes" -#: src/RatioFrame.cpp:344 +#: src/RatioFrame.cpp:359 msgid "Activate lossless operations whenever it is possible." msgstr "Utilise les opérations JPEG sans pertes tant que possible." -#: src/RatioFrame.cpp:346 +#: src/RatioFrame.cpp:361 msgid "JPEG &Optimize" msgstr "JPEG - &Optimisation" -#: src/RatioFrame.cpp:346 +#: src/RatioFrame.cpp:361 msgid "Optimize Huffman JPEG table." msgstr "Optimise la compression des tables Huffman du fichier JPEG." -#: src/RatioFrame.cpp:347 +#: src/RatioFrame.cpp:362 msgid "JPEG &Progressive" msgstr "JPEG - &Progressif" -#: src/RatioFrame.cpp:347 +#: src/RatioFrame.cpp:362 msgid "Save the file as progressive." msgstr "Sauvegarde le fichier JPEG avec un chargement progressif." -#: src/RatioFrame.cpp:348 +#: src/RatioFrame.cpp:363 msgid "&Detect Quality" msgstr "&Détecte la qualité" -#: src/RatioFrame.cpp:348 +#: src/RatioFrame.cpp:363 msgid "" "Detect the quality of the current file, and store it as default in the " "preferences." @@ -347,327 +360,327 @@ "Détecte la qualité du fichier en cours, et enregistre le résultat dans les " "préférences." -#: src/RatioFrame.cpp:349 +#: src/RatioFrame.cpp:364 msgid "&JPEG" msgstr "&JPEG" -#: src/RatioFrame.cpp:349 +#: src/RatioFrame.cpp:364 msgid "JPEG Specific Options" msgstr "Options Spécifiques JPEG" -#: src/RatioFrame.cpp:350 +#: src/RatioFrame.cpp:365 msgid "&Image" msgstr "&Image" # Menu Ratio ######################################### # -#: src/RatioFrame.cpp:354 +#: src/RatioFrame.cpp:369 msgid "&Automatic Orientation" msgstr "Orientation &Automatique" -#: src/RatioFrame.cpp:354 +#: src/RatioFrame.cpp:369 msgid "Automatic Orientation choice between Portrait or Landscape." msgstr "Choix automatique de l'orientation, entre portrait et paysage." -#: src/RatioFrame.cpp:355 +#: src/RatioFrame.cpp:370 msgid "&Landscape" msgstr "Pa&ysage" -#: src/RatioFrame.cpp:355 +#: src/RatioFrame.cpp:370 msgid "Force Landscape Orientation" msgstr "Force l'orientation en mode paysage." -#: src/RatioFrame.cpp:356 +#: src/RatioFrame.cpp:371 msgid "&Portrait" msgstr "P&ortrait" -#: src/RatioFrame.cpp:356 +#: src/RatioFrame.cpp:371 msgid "Force Portrait Orientation" msgstr "Force l'orientation en mode portrait." -#: src/RatioFrame.cpp:358 +#: src/RatioFrame.cpp:373 msgid "&No Ratio" msgstr "&Pas de Ratio imposé" -#: src/RatioFrame.cpp:358 +#: src/RatioFrame.cpp:373 msgid "Ratio checking is not used." msgstr "Le maintien du ratio n'est pas utilisé." -#: src/RatioFrame.cpp:359 +#: src/RatioFrame.cpp:374 msgid "&Ratio 4:3 - Numeric" msgstr "Ratio 4:3 - &Numérique" -#: src/RatioFrame.cpp:359 +#: src/RatioFrame.cpp:374 msgid "Common ratio used in numeric photo." msgstr "Ratio fréquent en photo numérique." -#: src/RatioFrame.cpp:360 +#: src/RatioFrame.cpp:375 msgid "&Ratio 3:2 - Classic" msgstr "Ratio 3:2 - &Argentique" -#: src/RatioFrame.cpp:360 +#: src/RatioFrame.cpp:375 msgid "Common ratio used in classical photo." msgstr "Ratio courant en photo argentique." -#: src/RatioFrame.cpp:361 +#: src/RatioFrame.cpp:376 msgid "&Ratio 16:9 - TV" msgstr "Ratio 16:9 - &TV" -#: src/RatioFrame.cpp:361 +#: src/RatioFrame.cpp:376 msgid "Common ratio used in numeric TV photo." msgstr "Ratio courant en photo numérique" -#: src/RatioFrame.cpp:362 +#: src/RatioFrame.cpp:377 msgid "&Ratio 1:1 - Square" msgstr "Ratio 1:1 - &Carré" -#: src/RatioFrame.cpp:362 +#: src/RatioFrame.cpp:377 msgid "Square ratio." msgstr "Ratio carré." -#: src/RatioFrame.cpp:363 +#: src/RatioFrame.cpp:378 msgid "&Custom Ratio" msgstr "Ratio personnalisé" -#: src/RatioFrame.cpp:363 +#: src/RatioFrame.cpp:378 msgid "To enter a custom ratio, please go in the combo box." msgstr "" "Pour entrer un ratio personnalisé, entrer le ratio dans la boîte de " "sélection de la barre d'outil." -#: src/RatioFrame.cpp:365 +#: src/RatioFrame.cpp:380 msgid "&Ratio" msgstr "&Ratio" # Menu View ######################################### # -#: src/RatioFrame.cpp:368 +#: src/RatioFrame.cpp:383 msgid "Show &Explorer" msgstr "&Explorateur" -#: src/RatioFrame.cpp:368 +#: src/RatioFrame.cpp:383 msgid "Show left explorer tab." msgstr "Montre l'explorateur sur la gauche." -#: src/RatioFrame.cpp:371 +#: src/RatioFrame.cpp:386 msgid "&Fit on Page" msgstr "&Ajuste à la page." -#: src/RatioFrame.cpp:371 +#: src/RatioFrame.cpp:386 msgid "View the whole image in the window." msgstr "Affiche l'image entière dans la fenêtre." -#: src/RatioFrame.cpp:373 +#: src/RatioFrame.cpp:388 msgid "&View" msgstr "&Affichage" -#: src/RatioFrame.cpp:376 +#: src/RatioFrame.cpp:391 msgid "User &manual" msgstr "&Guide utilisateur" -#: src/RatioFrame.cpp:376 +#: src/RatioFrame.cpp:391 msgid "Help file." msgstr "Fichier d'aide" # Menu Help ######################################### # -#: src/RatioFrame.cpp:378 +#: src/RatioFrame.cpp:393 msgid "&About..." msgstr "&A propos de..." -#: src/RatioFrame.cpp:378 +#: src/RatioFrame.cpp:393 msgid "About this application." msgstr "A propos de cette application." -#: src/RatioFrame.cpp:379 +#: src/RatioFrame.cpp:394 msgid "&Help" msgstr "&Aide" # ToolBar ############################################## # -#: src/RatioFrame.cpp:387 +#: src/RatioFrame.cpp:402 msgid "Open" msgstr "Ouvrir" -#: src/RatioFrame.cpp:387 src/RatioFrame.cpp:1078 +#: src/RatioFrame.cpp:402 src/RatioFrame.cpp:1154 msgid "Open a file" msgstr "Ouvrir un fichier" -#: src/RatioFrame.cpp:388 +#: src/RatioFrame.cpp:403 msgid "Save" msgstr "Enregistrer" -#: src/RatioFrame.cpp:388 +#: src/RatioFrame.cpp:403 msgid "Save the current file" msgstr "Enregistre le fichier en cours" -#: src/RatioFrame.cpp:389 +#: src/RatioFrame.cpp:404 msgid "Reload" msgstr "Ré-ouvrir" -#: src/RatioFrame.cpp:389 +#: src/RatioFrame.cpp:404 msgid "Reload original file" msgstr "Ré-ouvre le fichier original" -#: src/RatioFrame.cpp:390 +#: src/RatioFrame.cpp:405 msgid "Previous" msgstr "Précédent" -#: src/RatioFrame.cpp:390 +#: src/RatioFrame.cpp:405 msgid "Previous file" msgstr "Fichier précédent" -#: src/RatioFrame.cpp:391 +#: src/RatioFrame.cpp:406 msgid "Next" msgstr "Suivant" -#: src/RatioFrame.cpp:391 +#: src/RatioFrame.cpp:406 msgid "Next file" msgstr "Fichier suivant" -#: src/RatioFrame.cpp:393 +#: src/RatioFrame.cpp:408 msgid "Fit On Page" msgstr "Ajuste à la page" -#: src/RatioFrame.cpp:393 +#: src/RatioFrame.cpp:408 msgid "Fit On Page." msgstr "Ajuste à la page" -#: src/RatioFrame.cpp:401 +#: src/RatioFrame.cpp:416 msgid "JPEG Lossless" msgstr "JPEG Sans Pertes" -#: src/RatioFrame.cpp:401 +#: src/RatioFrame.cpp:416 msgid "Performs JPEG operations lossless whenever possible." msgstr "Réalise les manipulations JPEG sans pertes, autant que possible." -#: src/RatioFrame.cpp:404 src/RatioFrame.cpp:409 +#: src/RatioFrame.cpp:419 src/RatioFrame.cpp:424 msgid "Crop" msgstr "Recadre" -#: src/RatioFrame.cpp:404 src/RatioFrame.cpp:409 +#: src/RatioFrame.cpp:419 src/RatioFrame.cpp:424 msgid "Crop the image" msgstr "Recadre l'image" -#: src/RatioFrame.cpp:405 src/RatioFrame.cpp:412 +#: src/RatioFrame.cpp:420 src/RatioFrame.cpp:427 msgid "Inclinaison" msgstr "Inclinaison" -#: src/RatioFrame.cpp:405 src/RatioFrame.cpp:412 +#: src/RatioFrame.cpp:420 src/RatioFrame.cpp:427 msgid "Correct inclinaison" msgstr "Redresse l'image" -#: src/RatioFrame.cpp:408 +#: src/RatioFrame.cpp:423 msgid "Undo" msgstr "Annuler" -#: src/RatioFrame.cpp:408 +#: src/RatioFrame.cpp:423 msgid "Undo previous operation" msgstr "Annule la dernière opération" -#: src/RatioFrame.cpp:410 +#: src/RatioFrame.cpp:425 msgid "Rotate Left" msgstr "Tourne à gauche" -#: src/RatioFrame.cpp:410 +#: src/RatioFrame.cpp:425 msgid "Rotate the image to the left" msgstr "Tourne l'image sur la gauche" -#: src/RatioFrame.cpp:411 +#: src/RatioFrame.cpp:426 msgid "Rotate Right" msgstr "Tourne à droite" -#: src/RatioFrame.cpp:411 +#: src/RatioFrame.cpp:426 msgid "Rotate the image to the right" msgstr "Tourne l'image sur la droite" -#: src/RatioFrame.cpp:414 +#: src/RatioFrame.cpp:429 msgid "Free Rotation" msgstr "Orientation automatique" -#: src/RatioFrame.cpp:414 +#: src/RatioFrame.cpp:429 msgid "Automatic Selection of Orientation" msgstr "Séléction automatique de l'orientation" -#: src/RatioFrame.cpp:415 +#: src/RatioFrame.cpp:430 msgid "Landscape Orientation" msgstr "Orientation Paysage" -#: src/RatioFrame.cpp:416 +#: src/RatioFrame.cpp:431 msgid "Portrait Orientation" msgstr "Orientation Portrait" -#: src/RatioFrame.cpp:417 src/RatioFrame.cpp:423 src/RatioFrame.cpp:429 +#: src/RatioFrame.cpp:432 src/RatioFrame.cpp:438 src/RatioFrame.cpp:444 msgid "test" msgstr "test" -#: src/RatioFrame.cpp:418 +#: src/RatioFrame.cpp:433 msgid "0:0 (Free) " msgstr "0:0 (Aucun)" -#: src/RatioFrame.cpp:421 +#: src/RatioFrame.cpp:436 msgid "Ratio : " msgstr "Ratio :" -#: src/RatioFrame.cpp:424 +#: src/RatioFrame.cpp:439 msgid "Resize " msgstr "Redimensionne" -#: src/RatioFrame.cpp:427 +#: src/RatioFrame.cpp:442 msgid " Resize : " msgstr " Redimensionne : " -#: src/RatioFrame.cpp:430 +#: src/RatioFrame.cpp:445 msgid "Guide lines " msgstr "Lignes Guides" -#: src/RatioFrame.cpp:433 +#: src/RatioFrame.cpp:448 msgid " Guide Lines : " msgstr " Lignes Guides : " -#: src/RatioFrame.cpp:504 +#: src/RatioFrame.cpp:519 msgid "Browse" msgstr "Parcourir" -#: src/RatioFrame.cpp:527 +#: src/RatioFrame.cpp:542 msgid "Move Here" msgstr "Déplace Ici" -#: src/RatioFrame.cpp:528 +#: src/RatioFrame.cpp:543 msgid "Move To" msgstr "Déplacer" -#: src/RatioFrame.cpp:539 src/RatioFrame.cpp:545 +#: src/RatioFrame.cpp:554 src/RatioFrame.cpp:560 msgid "Tag" msgstr "Code" -#: src/RatioFrame.cpp:540 src/RatioFrame.cpp:546 +#: src/RatioFrame.cpp:555 src/RatioFrame.cpp:561 msgid "Value" msgstr "Valeur" -#: src/RatioFrame.cpp:541 +#: src/RatioFrame.cpp:556 msgid "Fav. Exif" msgstr "Sélection" -#: src/RatioFrame.cpp:547 +#: src/RatioFrame.cpp:562 msgid "All Exif" msgstr "Tous Exif" -#: src/RatioFrame.cpp:553 +#: src/RatioFrame.cpp:568 msgid "Apply" msgstr "Appliquer" -#: src/RatioFrame.cpp:555 +#: src/RatioFrame.cpp:570 msgid "Comment" msgstr "Commentaire" -#: src/RatioFrame.cpp:694 +#: src/RatioFrame.cpp:709 #, c-format msgid "%s - RPhoto" msgstr "%s - RPhoto" # Messages ############################################## # -#: src/RatioFrame.cpp:788 +#: src/RatioFrame.cpp:804 msgid "Executing : " msgstr "Execute : " -#: src/RatioFrame.cpp:810 +#: src/RatioFrame.cpp:826 msgid "" "JPEGTran has returned an error : \n" "\n" @@ -675,11 +688,11 @@ "JPEGTran a retourné une erreur : \n" "\n" -#: src/RatioFrame.cpp:810 src/RatioFrame.cpp:819 +#: src/RatioFrame.cpp:826 src/RatioFrame.cpp:835 msgid "JPEGTran Error" msgstr "Erreur JPEGTran" -#: src/RatioFrame.cpp:818 +#: src/RatioFrame.cpp:834 msgid "" "Unable to launch JPEGTran : \n" "\n" @@ -689,7 +702,7 @@ "\n" "Merci de vérifier que jpegtran est dans le path." -#: src/RatioFrame.cpp:870 +#: src/RatioFrame.cpp:886 msgid "" "WARNING : This operation is not possible lossless. Non-transformable edge " "blocks have been dropped." @@ -697,16 +710,28 @@ "ATTENTION : Cette opération n'est pas possible sans perte : les blocs " "fautifs sur les cotés de l'image ont été supprimés." -#: src/RatioFrame.cpp:879 +#: src/RatioFrame.cpp:895 msgid "JPEGTran warning" msgstr "Alerte JPEGTran" -#: src/RatioFrame.cpp:901 +#: src/RatioFrame.cpp:918 #, c-format msgid "Loading %s..." msgstr "Chargement de %s ..." -#: src/RatioFrame.cpp:1006 +#: src/RatioFrame.cpp:964 +msgid "" +"The current image has unsaved changes. \n" +"Do you want to save it ?" +msgstr "" +"Les modifications récentes n'ont pas été sauvegardées. \n" +"Souhaitez-vous sauvergarder maintenant ?" + +#: src/RatioFrame.cpp:964 +msgid "Save file?" +msgstr "Enregistrer le fichier ?" + +#: src/RatioFrame.cpp:1075 #, c-format msgid "" "%s %s\n" @@ -719,15 +744,15 @@ "(c) %s\n" "http://people.via.ecp.fr/~remi" -#: src/RatioFrame.cpp:1011 +#: src/RatioFrame.cpp:1080 msgid "help_en.html" msgstr "help_fr.html" -#: src/RatioFrame.cpp:1095 +#: src/RatioFrame.cpp:1174 msgid "Applying modification of the comment." msgstr "Applique à l'image les modifications du commentaire." -#: src/RatioFrame.cpp:1100 +#: src/RatioFrame.cpp:1179 msgid "" "You have modified the comment but not saved it. Would you like to save this " "comment ?" @@ -735,54 +760,54 @@ "Vous avez modifié le commentaire mais pas encore appliqué à l'image. Désirez-" "vous enregistrer ce commentaire maintenant ?" -#: src/RatioFrame.cpp:1100 +#: src/RatioFrame.cpp:1179 msgid "Comment modification" msgstr "Modifier le commentaire" -#: src/RatioFrame.cpp:1129 +#: src/RatioFrame.cpp:1234 msgid "Save a file" msgstr "Enregistrer le fichier" -#: src/RatioFrame.cpp:1161 +#: src/RatioFrame.cpp:1246 msgid "Are you sure to delete the file " msgstr "Etes-vous sûr de vouloir effacer le fichier " -#: src/RatioFrame.cpp:1161 +#: src/RatioFrame.cpp:1246 msgid "Delete confirmation" msgstr "Confirmation de suppression" -#: src/RatioFrame.cpp:1182 +#: src/RatioFrame.cpp:1267 msgid "No destination path selected." msgstr "Aucun répertoire de destination n'est sélectionné." -#: src/RatioFrame.cpp:1187 +#: src/RatioFrame.cpp:1272 #, c-format msgid "Move to %s" msgstr "Déplace en %s" -#: src/RatioFrame.cpp:1390 +#: src/RatioFrame.cpp:1475 msgid "No cropping zone defined." msgstr "Aucune zone de recadrage définie" -#: src/RatioFrame.cpp:1444 +#: src/RatioFrame.cpp:1529 msgid "No angle defined." msgstr "Aucun angle défini." -#: src/RatioFrame.cpp:1458 +#: src/RatioFrame.cpp:1543 #, c-format msgid "Rotating of %f degree. Please wait..." msgstr "Rotation de %f degrés. Merci de patentier..." -#: src/RatioFrame.cpp:1498 src/RatioFrame.cpp:1843 +#: src/RatioFrame.cpp:1583 src/RatioFrame.cpp:1928 msgid "Done." msgstr "Fin." -#: src/RatioFrame.cpp:1586 +#: src/RatioFrame.cpp:1671 #, c-format msgid "Detected the quality %d." msgstr "Qualité détectée : %d." -#: src/RatioFrame.cpp:1595 +#: src/RatioFrame.cpp:1680 #, c-format msgid "" "Please input the size you want.\n" @@ -802,16 +827,16 @@ "octets\n" "\n" -#: src/RatioFrame.cpp:1596 +#: src/RatioFrame.cpp:1681 msgid "Resize Image" msgstr "Redimensionne l'image" -#: src/RatioFrame.cpp:1636 +#: src/RatioFrame.cpp:1721 #, c-format msgid "Error writing comment : error %d." msgstr "Erreur à l'écriture du commentaire (erreur %d)" -#: src/RatioFrame.cpp:1702 +#: src/RatioFrame.cpp:1787 #, c-format msgid "" "Invalid fraction : %ld / %ld\n" @@ -820,7 +845,7 @@ "Fraction invalide : %ld / %ld\n" "Le format doit être : 'x:y description'" -#: src/RatioFrame.cpp:1729 src/RatioFrame.cpp:1788 +#: src/RatioFrame.cpp:1814 src/RatioFrame.cpp:1873 #, c-format msgid "" "Invalid fixed size : %ld x %ld\n" @@ -829,7 +854,7 @@ "Fraction invalide : %ld x %ld\n" "Le format doit être : '111x222 description'" -#: src/RatioFrame.cpp:1759 +#: src/RatioFrame.cpp:1844 #, c-format msgid "" "Invalid percent : %ld\n" @@ -838,31 +863,31 @@ "Pourcentage invalide : %ld\n" "Le format doit être : 'x% description'" -#: src/RatioFrame.cpp:1792 +#: src/RatioFrame.cpp:1877 msgid "kb" msgstr "kb" -#: src/RatioFrame.cpp:1808 +#: src/RatioFrame.cpp:1893 #, c-format msgid "Detecting optimal size to obtain a size below %d bytes." msgstr "" "Détection de la taille optimale pour obtenir une taille de fichier de %d " "octets." -#: src/RatioFrame.cpp:1822 +#: src/RatioFrame.cpp:1907 msgid "Detected the size ok !" msgstr "Détection de la taille réussie !" -#: src/RatioFrame.cpp:1829 +#: src/RatioFrame.cpp:1914 msgid "Invalid size : please see provided examples" msgstr "Taille incorrecte : veuillez regarder les exemples proposés." -#: src/RatioFrame.cpp:1840 +#: src/RatioFrame.cpp:1925 #, c-format msgid "Resizing to %ld x %ld. Please wait..." msgstr "Redimensionnement par %ld x %ld. Merci de patienter..." -#: src/RatioFrame.cpp:1862 +#: src/RatioFrame.cpp:1947 #, c-format msgid "" "Guide lines ratio set to %f (\"%s\")\n" @@ -871,7 +896,7 @@ "Ratio des lignes guides réglé sur %f(\"%s\")\n" "." -#: src/RatioFrame.cpp:1868 +#: src/RatioFrame.cpp:1953 #, c-format msgid "" "Invalid numeric format : %s.\n" @@ -882,23 +907,23 @@ "Le format doit être : 'x,y description' (le séparateur décimal dépend de vos " "paramètres locaux)" -#: src/RatioFrame.cpp:2056 +#: src/RatioFrame.cpp:2141 msgid "." msgstr "." -#: src/RatioFrame.cpp:2057 +#: src/RatioFrame.cpp:2142 msgid ".." msgstr ".." -#: src/RatioFrame.cpp:2060 +#: src/RatioFrame.cpp:2145 msgid "Illegal directory name." msgstr "Nom de fichier illégal." -#: src/RatioFrame.cpp:2060 src/RatioFrame.cpp:2071 +#: src/RatioFrame.cpp:2145 src/RatioFrame.cpp:2156 msgid "Error" msgstr "Erreur" -#: src/RatioFrame.cpp:2071 +#: src/RatioFrame.cpp:2156 msgid "File name exists already." msgstr "Un autre fichier portant le nom choisi existe déjà." diff -Nru rphoto-0.4.1/po/RPhoto.pot rphoto-0.4.2/po/RPhoto.pot --- rphoto-0.4.1/po/RPhoto.pot 2012-05-28 14:45:34.000000000 +0000 +++ rphoto-0.4.2/po/RPhoto.pot 2012-07-28 15:58:58.000000000 +0000 @@ -6,9 +6,9 @@ #, fuzzy msgid "" msgstr "" -"Project-Id-Version: RPhoto 0.4.1\n" +"Project-Id-Version: RPhoto 0.4.2\n" "Report-Msgid-Bugs-To: remi+rphoto@via.ecp.fr\n" -"POT-Creation-Date: 2012-05-28 16:45+0200\n" +"POT-Creation-Date: 2012-07-28 17:58+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,668 +17,691 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: src/RatioFrame.cpp:165 +#: src/RatioFrame.cpp:166 msgid "Preferences" msgstr "" -#: src/RatioFrame.cpp:169 src/RatioFrame.cpp:170 src/RatioFrame.cpp:171 +#: src/RatioFrame.cpp:170 src/RatioFrame.cpp:171 src/RatioFrame.cpp:172 +#: src/RatioFrame.cpp:173 src/RatioFrame.cpp:174 msgid "Main" msgstr "" -#: src/RatioFrame.cpp:169 +#: src/RatioFrame.cpp:170 msgid "Auto Save" msgstr "" -#: src/RatioFrame.cpp:170 +#: src/RatioFrame.cpp:171 +msgid "Auto Save Folder" +msgstr "" + +#: src/RatioFrame.cpp:172 +msgid "Auto Save Suffix" +msgstr "" + +#: src/RatioFrame.cpp:173 msgid "Auto Crop after Rotation" msgstr "" -#: src/RatioFrame.cpp:171 +#: src/RatioFrame.cpp:174 msgid "Undo History" msgstr "" -#: src/RatioFrame.cpp:174 src/RatioFrame.cpp:176 src/RatioFrame.cpp:177 -#: src/RatioFrame.cpp:178 src/RatioFrame.cpp:179 +#: src/RatioFrame.cpp:177 src/RatioFrame.cpp:179 src/RatioFrame.cpp:180 +#: src/RatioFrame.cpp:181 src/RatioFrame.cpp:182 msgid "JPEG" msgstr "" -#: src/RatioFrame.cpp:174 +#: src/RatioFrame.cpp:177 msgid "JPEGTran's path" msgstr "" -#: src/RatioFrame.cpp:176 +#: src/RatioFrame.cpp:179 msgid "Display Lossless warnings" msgstr "" -#: src/RatioFrame.cpp:177 +#: src/RatioFrame.cpp:180 msgid "JPEG Quality (0-100)" msgstr "" -#: src/RatioFrame.cpp:178 +#: src/RatioFrame.cpp:181 msgid "Favorite Exif Tags" msgstr "" -#: src/RatioFrame.cpp:179 +#: src/RatioFrame.cpp:182 msgid "Comments Encoding" msgstr "" -#: src/RatioFrame.cpp:189 src/RatioFrame.cpp:190 src/RatioFrame.cpp:198 -#: src/RatioFrame.cpp:199 src/RatioFrame.cpp:200 src/RatioFrame.cpp:207 +#: src/RatioFrame.cpp:192 src/RatioFrame.cpp:193 src/RatioFrame.cpp:201 +#: src/RatioFrame.cpp:202 src/RatioFrame.cpp:203 src/RatioFrame.cpp:210 msgid "Defaults" msgstr "" -#: src/RatioFrame.cpp:189 +#: src/RatioFrame.cpp:192 msgid "Ratio" msgstr "" -#: src/RatioFrame.cpp:190 +#: src/RatioFrame.cpp:193 msgid "Ratio's List" msgstr "" -#: src/RatioFrame.cpp:198 +#: src/RatioFrame.cpp:201 msgid "Guide Ratio" msgstr "" -#: src/RatioFrame.cpp:199 +#: src/RatioFrame.cpp:202 msgid "Guide Lines Ratio's List" msgstr "" -#: src/RatioFrame.cpp:200 +#: src/RatioFrame.cpp:203 msgid "Resize's List" msgstr "" -#: src/RatioFrame.cpp:204 +#: src/RatioFrame.cpp:207 msgid "Automatic" msgstr "" -#: src/RatioFrame.cpp:205 src/RatioFrame.cpp:415 +#: src/RatioFrame.cpp:208 src/RatioFrame.cpp:430 msgid "Landscape" msgstr "" -#: src/RatioFrame.cpp:206 src/RatioFrame.cpp:416 +#: src/RatioFrame.cpp:209 src/RatioFrame.cpp:431 msgid "Portrait" msgstr "" -#: src/RatioFrame.cpp:207 +#: src/RatioFrame.cpp:210 msgid "Orientation" msgstr "" -#: src/RatioFrame.cpp:210 +#: src/RatioFrame.cpp:213 src/RatioFrame.cpp:215 msgid "Appearance" msgstr "" -#: src/RatioFrame.cpp:210 +#: src/RatioFrame.cpp:213 msgid "Fit the image inside the window" msgstr "" -#: src/RatioFrame.cpp:310 +#: src/RatioFrame.cpp:215 +msgid "Grey Out cutted off area (percent)" +msgstr "" + +#: src/RatioFrame.cpp:325 msgid "&Open..." msgstr "" -#: src/RatioFrame.cpp:310 +#: src/RatioFrame.cpp:325 msgid "Open a file." msgstr "" -#: src/RatioFrame.cpp:311 +#: src/RatioFrame.cpp:326 msgid "&Save" msgstr "" -#: src/RatioFrame.cpp:311 +#: src/RatioFrame.cpp:326 msgid "Save the current file." msgstr "" -#: src/RatioFrame.cpp:312 +#: src/RatioFrame.cpp:327 msgid "&Save as..." msgstr "" -#: src/RatioFrame.cpp:312 +#: src/RatioFrame.cpp:327 msgid "Save the current file under another name." msgstr "" -#: src/RatioFrame.cpp:313 +#: src/RatioFrame.cpp:328 msgid "&Reload" msgstr "" -#: src/RatioFrame.cpp:313 +#: src/RatioFrame.cpp:328 msgid "Reload original file." msgstr "" -#: src/RatioFrame.cpp:314 +#: src/RatioFrame.cpp:329 msgid "&Delete" msgstr "" -#: src/RatioFrame.cpp:314 +#: src/RatioFrame.cpp:329 msgid "Suppress the file." msgstr "" -#: src/RatioFrame.cpp:315 +#: src/RatioFrame.cpp:330 msgid "&Move" msgstr "" -#: src/RatioFrame.cpp:315 +#: src/RatioFrame.cpp:330 msgid "Move the file to the selected folder." msgstr "" -#: src/RatioFrame.cpp:316 +#: src/RatioFrame.cpp:331 msgid "Mo&ve Next" msgstr "" -#: src/RatioFrame.cpp:316 +#: src/RatioFrame.cpp:331 msgid "Move the file to the selected folder and go to the next file." msgstr "" -#: src/RatioFrame.cpp:318 +#: src/RatioFrame.cpp:333 msgid "&Previous File" msgstr "" -#: src/RatioFrame.cpp:318 +#: src/RatioFrame.cpp:333 msgid "Open the previous file in the explorer." msgstr "" -#: src/RatioFrame.cpp:319 +#: src/RatioFrame.cpp:334 msgid "&Next File" msgstr "" -#: src/RatioFrame.cpp:319 +#: src/RatioFrame.cpp:334 msgid "Open the next file in the explorer." msgstr "" -#: src/RatioFrame.cpp:321 +#: src/RatioFrame.cpp:336 msgid "&Preferences" msgstr "" -#: src/RatioFrame.cpp:321 +#: src/RatioFrame.cpp:336 msgid "Define application's settings." msgstr "" -#: src/RatioFrame.cpp:323 +#: src/RatioFrame.cpp:338 msgid "&Quit" msgstr "" -#: src/RatioFrame.cpp:323 +#: src/RatioFrame.cpp:338 msgid "Quit the application." msgstr "" -#: src/RatioFrame.cpp:324 +#: src/RatioFrame.cpp:339 msgid "&File" msgstr "" -#: src/RatioFrame.cpp:327 +#: src/RatioFrame.cpp:342 msgid "&Undo" msgstr "" -#: src/RatioFrame.cpp:327 +#: src/RatioFrame.cpp:342 msgid "Undo previous image operation." msgstr "" -#: src/RatioFrame.cpp:328 +#: src/RatioFrame.cpp:343 msgid "&Redo" msgstr "" -#: src/RatioFrame.cpp:328 +#: src/RatioFrame.cpp:343 msgid "Redo last undoed operation." msgstr "" -#: src/RatioFrame.cpp:330 +#: src/RatioFrame.cpp:345 msgid "Crop Mode" msgstr "" -#: src/RatioFrame.cpp:330 +#: src/RatioFrame.cpp:345 msgid "Use this mode to crop images." msgstr "" -#: src/RatioFrame.cpp:331 +#: src/RatioFrame.cpp:346 msgid "Inclinaison Mode" msgstr "" -#: src/RatioFrame.cpp:331 +#: src/RatioFrame.cpp:346 msgid "Use this mode to correct inclinaison of images." msgstr "" -#: src/RatioFrame.cpp:334 +#: src/RatioFrame.cpp:349 msgid "&Crop" msgstr "" -#: src/RatioFrame.cpp:334 +#: src/RatioFrame.cpp:349 msgid "Crop image to selection." msgstr "" -#: src/RatioFrame.cpp:335 +#: src/RatioFrame.cpp:350 msgid "Rotate &Left" msgstr "" -#: src/RatioFrame.cpp:335 +#: src/RatioFrame.cpp:350 msgid "Rotate the image 90 degrees to the left." msgstr "" -#: src/RatioFrame.cpp:336 +#: src/RatioFrame.cpp:351 msgid "Rotate &Right" msgstr "" -#: src/RatioFrame.cpp:336 +#: src/RatioFrame.cpp:351 msgid "Rotate the image 90 degrees to the right." msgstr "" -#: src/RatioFrame.cpp:337 +#: src/RatioFrame.cpp:352 msgid "Correct &Inclinaison" msgstr "" -#: src/RatioFrame.cpp:337 +#: src/RatioFrame.cpp:352 msgid "Mode Rotation : use the mouse to set horizontal / vertical lines." msgstr "" -#: src/RatioFrame.cpp:338 +#: src/RatioFrame.cpp:353 msgid "Flip &Horizontal" msgstr "" -#: src/RatioFrame.cpp:338 +#: src/RatioFrame.cpp:353 msgid "Flip the image horizontally." msgstr "" -#: src/RatioFrame.cpp:339 +#: src/RatioFrame.cpp:354 msgid "Flip &Vertical" msgstr "" -#: src/RatioFrame.cpp:339 +#: src/RatioFrame.cpp:354 msgid "Flip the image vertically." msgstr "" -#: src/RatioFrame.cpp:340 +#: src/RatioFrame.cpp:355 msgid "Commen&t" msgstr "" -#: src/RatioFrame.cpp:340 +#: src/RatioFrame.cpp:355 msgid "Modify comment." msgstr "" -#: src/RatioFrame.cpp:341 +#: src/RatioFrame.cpp:356 msgid "Resi&ze" msgstr "" -#: src/RatioFrame.cpp:341 +#: src/RatioFrame.cpp:356 msgid "Resize image." msgstr "" -#: src/RatioFrame.cpp:344 +#: src/RatioFrame.cpp:359 msgid "Lossless Operations" msgstr "" -#: src/RatioFrame.cpp:344 +#: src/RatioFrame.cpp:359 msgid "Activate lossless operations whenever it is possible." msgstr "" -#: src/RatioFrame.cpp:346 +#: src/RatioFrame.cpp:361 msgid "JPEG &Optimize" msgstr "" -#: src/RatioFrame.cpp:346 +#: src/RatioFrame.cpp:361 msgid "Optimize Huffman JPEG table." msgstr "" -#: src/RatioFrame.cpp:347 +#: src/RatioFrame.cpp:362 msgid "JPEG &Progressive" msgstr "" -#: src/RatioFrame.cpp:347 +#: src/RatioFrame.cpp:362 msgid "Save the file as progressive." msgstr "" -#: src/RatioFrame.cpp:348 +#: src/RatioFrame.cpp:363 msgid "&Detect Quality" msgstr "" -#: src/RatioFrame.cpp:348 +#: src/RatioFrame.cpp:363 msgid "" "Detect the quality of the current file, and store it as default in the " "preferences." msgstr "" -#: src/RatioFrame.cpp:349 +#: src/RatioFrame.cpp:364 msgid "&JPEG" msgstr "" -#: src/RatioFrame.cpp:349 +#: src/RatioFrame.cpp:364 msgid "JPEG Specific Options" msgstr "" -#: src/RatioFrame.cpp:350 +#: src/RatioFrame.cpp:365 msgid "&Image" msgstr "" -#: src/RatioFrame.cpp:354 +#: src/RatioFrame.cpp:369 msgid "&Automatic Orientation" msgstr "" -#: src/RatioFrame.cpp:354 +#: src/RatioFrame.cpp:369 msgid "Automatic Orientation choice between Portrait or Landscape." msgstr "" -#: src/RatioFrame.cpp:355 +#: src/RatioFrame.cpp:370 msgid "&Landscape" msgstr "" -#: src/RatioFrame.cpp:355 +#: src/RatioFrame.cpp:370 msgid "Force Landscape Orientation" msgstr "" -#: src/RatioFrame.cpp:356 +#: src/RatioFrame.cpp:371 msgid "&Portrait" msgstr "" -#: src/RatioFrame.cpp:356 +#: src/RatioFrame.cpp:371 msgid "Force Portrait Orientation" msgstr "" -#: src/RatioFrame.cpp:358 +#: src/RatioFrame.cpp:373 msgid "&No Ratio" msgstr "" -#: src/RatioFrame.cpp:358 +#: src/RatioFrame.cpp:373 msgid "Ratio checking is not used." msgstr "" -#: src/RatioFrame.cpp:359 +#: src/RatioFrame.cpp:374 msgid "&Ratio 4:3 - Numeric" msgstr "" -#: src/RatioFrame.cpp:359 +#: src/RatioFrame.cpp:374 msgid "Common ratio used in numeric photo." msgstr "" -#: src/RatioFrame.cpp:360 +#: src/RatioFrame.cpp:375 msgid "&Ratio 3:2 - Classic" msgstr "" -#: src/RatioFrame.cpp:360 +#: src/RatioFrame.cpp:375 msgid "Common ratio used in classical photo." msgstr "" -#: src/RatioFrame.cpp:361 +#: src/RatioFrame.cpp:376 msgid "&Ratio 16:9 - TV" msgstr "" -#: src/RatioFrame.cpp:361 +#: src/RatioFrame.cpp:376 msgid "Common ratio used in numeric TV photo." msgstr "" -#: src/RatioFrame.cpp:362 +#: src/RatioFrame.cpp:377 msgid "&Ratio 1:1 - Square" msgstr "" -#: src/RatioFrame.cpp:362 +#: src/RatioFrame.cpp:377 msgid "Square ratio." msgstr "" -#: src/RatioFrame.cpp:363 +#: src/RatioFrame.cpp:378 msgid "&Custom Ratio" msgstr "" -#: src/RatioFrame.cpp:363 +#: src/RatioFrame.cpp:378 msgid "To enter a custom ratio, please go in the combo box." msgstr "" -#: src/RatioFrame.cpp:365 +#: src/RatioFrame.cpp:380 msgid "&Ratio" msgstr "" -#: src/RatioFrame.cpp:368 +#: src/RatioFrame.cpp:383 msgid "Show &Explorer" msgstr "" -#: src/RatioFrame.cpp:368 +#: src/RatioFrame.cpp:383 msgid "Show left explorer tab." msgstr "" -#: src/RatioFrame.cpp:371 +#: src/RatioFrame.cpp:386 msgid "&Fit on Page" msgstr "" -#: src/RatioFrame.cpp:371 +#: src/RatioFrame.cpp:386 msgid "View the whole image in the window." msgstr "" -#: src/RatioFrame.cpp:373 +#: src/RatioFrame.cpp:388 msgid "&View" msgstr "" -#: src/RatioFrame.cpp:376 +#: src/RatioFrame.cpp:391 msgid "User &manual" msgstr "" -#: src/RatioFrame.cpp:376 +#: src/RatioFrame.cpp:391 msgid "Help file." msgstr "" -#: src/RatioFrame.cpp:378 +#: src/RatioFrame.cpp:393 msgid "&About..." msgstr "" -#: src/RatioFrame.cpp:378 +#: src/RatioFrame.cpp:393 msgid "About this application." msgstr "" -#: src/RatioFrame.cpp:379 +#: src/RatioFrame.cpp:394 msgid "&Help" msgstr "" -#: src/RatioFrame.cpp:387 +#: src/RatioFrame.cpp:402 msgid "Open" msgstr "" -#: src/RatioFrame.cpp:387 src/RatioFrame.cpp:1078 +#: src/RatioFrame.cpp:402 src/RatioFrame.cpp:1154 msgid "Open a file" msgstr "" -#: src/RatioFrame.cpp:388 +#: src/RatioFrame.cpp:403 msgid "Save" msgstr "" -#: src/RatioFrame.cpp:388 +#: src/RatioFrame.cpp:403 msgid "Save the current file" msgstr "" -#: src/RatioFrame.cpp:389 +#: src/RatioFrame.cpp:404 msgid "Reload" msgstr "" -#: src/RatioFrame.cpp:389 +#: src/RatioFrame.cpp:404 msgid "Reload original file" msgstr "" -#: src/RatioFrame.cpp:390 +#: src/RatioFrame.cpp:405 msgid "Previous" msgstr "" -#: src/RatioFrame.cpp:390 +#: src/RatioFrame.cpp:405 msgid "Previous file" msgstr "" -#: src/RatioFrame.cpp:391 +#: src/RatioFrame.cpp:406 msgid "Next" msgstr "" -#: src/RatioFrame.cpp:391 +#: src/RatioFrame.cpp:406 msgid "Next file" msgstr "" -#: src/RatioFrame.cpp:393 +#: src/RatioFrame.cpp:408 msgid "Fit On Page" msgstr "" -#: src/RatioFrame.cpp:393 +#: src/RatioFrame.cpp:408 msgid "Fit On Page." msgstr "" -#: src/RatioFrame.cpp:401 +#: src/RatioFrame.cpp:416 msgid "JPEG Lossless" msgstr "" -#: src/RatioFrame.cpp:401 +#: src/RatioFrame.cpp:416 msgid "Performs JPEG operations lossless whenever possible." msgstr "" -#: src/RatioFrame.cpp:404 src/RatioFrame.cpp:409 +#: src/RatioFrame.cpp:419 src/RatioFrame.cpp:424 msgid "Crop" msgstr "" -#: src/RatioFrame.cpp:404 src/RatioFrame.cpp:409 +#: src/RatioFrame.cpp:419 src/RatioFrame.cpp:424 msgid "Crop the image" msgstr "" -#: src/RatioFrame.cpp:405 src/RatioFrame.cpp:412 +#: src/RatioFrame.cpp:420 src/RatioFrame.cpp:427 msgid "Inclinaison" msgstr "" -#: src/RatioFrame.cpp:405 src/RatioFrame.cpp:412 +#: src/RatioFrame.cpp:420 src/RatioFrame.cpp:427 msgid "Correct inclinaison" msgstr "" -#: src/RatioFrame.cpp:408 +#: src/RatioFrame.cpp:423 msgid "Undo" msgstr "" -#: src/RatioFrame.cpp:408 +#: src/RatioFrame.cpp:423 msgid "Undo previous operation" msgstr "" -#: src/RatioFrame.cpp:410 +#: src/RatioFrame.cpp:425 msgid "Rotate Left" msgstr "" -#: src/RatioFrame.cpp:410 +#: src/RatioFrame.cpp:425 msgid "Rotate the image to the left" msgstr "" -#: src/RatioFrame.cpp:411 +#: src/RatioFrame.cpp:426 msgid "Rotate Right" msgstr "" -#: src/RatioFrame.cpp:411 +#: src/RatioFrame.cpp:426 msgid "Rotate the image to the right" msgstr "" -#: src/RatioFrame.cpp:414 +#: src/RatioFrame.cpp:429 msgid "Free Rotation" msgstr "" -#: src/RatioFrame.cpp:414 +#: src/RatioFrame.cpp:429 msgid "Automatic Selection of Orientation" msgstr "" -#: src/RatioFrame.cpp:415 +#: src/RatioFrame.cpp:430 msgid "Landscape Orientation" msgstr "" -#: src/RatioFrame.cpp:416 +#: src/RatioFrame.cpp:431 msgid "Portrait Orientation" msgstr "" -#: src/RatioFrame.cpp:417 src/RatioFrame.cpp:423 src/RatioFrame.cpp:429 +#: src/RatioFrame.cpp:432 src/RatioFrame.cpp:438 src/RatioFrame.cpp:444 msgid "test" msgstr "" -#: src/RatioFrame.cpp:418 +#: src/RatioFrame.cpp:433 msgid "0:0 (Free) " msgstr "" -#: src/RatioFrame.cpp:421 +#: src/RatioFrame.cpp:436 msgid "Ratio : " msgstr "" -#: src/RatioFrame.cpp:424 +#: src/RatioFrame.cpp:439 msgid "Resize " msgstr "" -#: src/RatioFrame.cpp:427 +#: src/RatioFrame.cpp:442 msgid " Resize : " msgstr "" -#: src/RatioFrame.cpp:430 +#: src/RatioFrame.cpp:445 msgid "Guide lines " msgstr "" -#: src/RatioFrame.cpp:433 +#: src/RatioFrame.cpp:448 msgid " Guide Lines : " msgstr "" -#: src/RatioFrame.cpp:504 +#: src/RatioFrame.cpp:519 msgid "Browse" msgstr "" -#: src/RatioFrame.cpp:527 +#: src/RatioFrame.cpp:542 msgid "Move Here" msgstr "" -#: src/RatioFrame.cpp:528 +#: src/RatioFrame.cpp:543 msgid "Move To" msgstr "" -#: src/RatioFrame.cpp:539 src/RatioFrame.cpp:545 +#: src/RatioFrame.cpp:554 src/RatioFrame.cpp:560 msgid "Tag" msgstr "" -#: src/RatioFrame.cpp:540 src/RatioFrame.cpp:546 +#: src/RatioFrame.cpp:555 src/RatioFrame.cpp:561 msgid "Value" msgstr "" -#: src/RatioFrame.cpp:541 +#: src/RatioFrame.cpp:556 msgid "Fav. Exif" msgstr "" -#: src/RatioFrame.cpp:547 +#: src/RatioFrame.cpp:562 msgid "All Exif" msgstr "" -#: src/RatioFrame.cpp:553 +#: src/RatioFrame.cpp:568 msgid "Apply" msgstr "" -#: src/RatioFrame.cpp:555 +#: src/RatioFrame.cpp:570 msgid "Comment" msgstr "" -#: src/RatioFrame.cpp:694 +#: src/RatioFrame.cpp:709 #, c-format msgid "%s - RPhoto" msgstr "" -#: src/RatioFrame.cpp:788 +#: src/RatioFrame.cpp:804 msgid "Executing : " msgstr "" -#: src/RatioFrame.cpp:810 +#: src/RatioFrame.cpp:826 msgid "" "JPEGTran has returned an error : \n" "\n" msgstr "" -#: src/RatioFrame.cpp:810 src/RatioFrame.cpp:819 +#: src/RatioFrame.cpp:826 src/RatioFrame.cpp:835 msgid "JPEGTran Error" msgstr "" -#: src/RatioFrame.cpp:818 +#: src/RatioFrame.cpp:834 msgid "" "Unable to launch JPEGTran : \n" "\n" "Please check that jpegtran executable is in the path." msgstr "" -#: src/RatioFrame.cpp:870 +#: src/RatioFrame.cpp:886 msgid "" "WARNING : This operation is not possible lossless. Non-transformable edge " "blocks have been dropped." msgstr "" -#: src/RatioFrame.cpp:879 +#: src/RatioFrame.cpp:895 msgid "JPEGTran warning" msgstr "" -#: src/RatioFrame.cpp:901 +#: src/RatioFrame.cpp:918 #, c-format msgid "Loading %s..." msgstr "" -#: src/RatioFrame.cpp:1006 +#: src/RatioFrame.cpp:964 +msgid "" +"The current image has unsaved changes. \n" +"Do you want to save it ?" +msgstr "" + +#: src/RatioFrame.cpp:964 +msgid "Save file?" +msgstr "" + +#: src/RatioFrame.cpp:1075 #, c-format msgid "" "%s %s\n" @@ -687,68 +710,68 @@ "http://people.via.ecp.fr/~remi" msgstr "" -#: src/RatioFrame.cpp:1011 +#: src/RatioFrame.cpp:1080 msgid "help_en.html" msgstr "" -#: src/RatioFrame.cpp:1095 +#: src/RatioFrame.cpp:1174 msgid "Applying modification of the comment." msgstr "" -#: src/RatioFrame.cpp:1100 +#: src/RatioFrame.cpp:1179 msgid "" "You have modified the comment but not saved it. Would you like to save this " "comment ?" msgstr "" -#: src/RatioFrame.cpp:1100 +#: src/RatioFrame.cpp:1179 msgid "Comment modification" msgstr "" -#: src/RatioFrame.cpp:1129 +#: src/RatioFrame.cpp:1234 msgid "Save a file" msgstr "" -#: src/RatioFrame.cpp:1161 +#: src/RatioFrame.cpp:1246 msgid "Are you sure to delete the file " msgstr "" -#: src/RatioFrame.cpp:1161 +#: src/RatioFrame.cpp:1246 msgid "Delete confirmation" msgstr "" -#: src/RatioFrame.cpp:1182 +#: src/RatioFrame.cpp:1267 msgid "No destination path selected." msgstr "" -#: src/RatioFrame.cpp:1187 +#: src/RatioFrame.cpp:1272 #, c-format msgid "Move to %s" msgstr "" -#: src/RatioFrame.cpp:1390 +#: src/RatioFrame.cpp:1475 msgid "No cropping zone defined." msgstr "" -#: src/RatioFrame.cpp:1444 +#: src/RatioFrame.cpp:1529 msgid "No angle defined." msgstr "" -#: src/RatioFrame.cpp:1458 +#: src/RatioFrame.cpp:1543 #, c-format msgid "Rotating of %f degree. Please wait..." msgstr "" -#: src/RatioFrame.cpp:1498 src/RatioFrame.cpp:1843 +#: src/RatioFrame.cpp:1583 src/RatioFrame.cpp:1928 msgid "Done." msgstr "" -#: src/RatioFrame.cpp:1586 +#: src/RatioFrame.cpp:1671 #, c-format msgid "Detected the quality %d." msgstr "" -#: src/RatioFrame.cpp:1595 +#: src/RatioFrame.cpp:1680 #, c-format msgid "" "Please input the size you want.\n" @@ -760,66 +783,66 @@ "\n" msgstr "" -#: src/RatioFrame.cpp:1596 +#: src/RatioFrame.cpp:1681 msgid "Resize Image" msgstr "" -#: src/RatioFrame.cpp:1636 +#: src/RatioFrame.cpp:1721 #, c-format msgid "Error writing comment : error %d." msgstr "" -#: src/RatioFrame.cpp:1702 +#: src/RatioFrame.cpp:1787 #, c-format msgid "" "Invalid fraction : %ld / %ld\n" "This should have the following format : 'x:y description'" msgstr "" -#: src/RatioFrame.cpp:1729 src/RatioFrame.cpp:1788 +#: src/RatioFrame.cpp:1814 src/RatioFrame.cpp:1873 #, c-format msgid "" "Invalid fixed size : %ld x %ld\n" "This should have the following format : '111x222 description'" msgstr "" -#: src/RatioFrame.cpp:1759 +#: src/RatioFrame.cpp:1844 #, c-format msgid "" "Invalid percent : %ld\n" "This should have the following format : 'x% description'" msgstr "" -#: src/RatioFrame.cpp:1792 +#: src/RatioFrame.cpp:1877 msgid "kb" msgstr "" -#: src/RatioFrame.cpp:1808 +#: src/RatioFrame.cpp:1893 #, c-format msgid "Detecting optimal size to obtain a size below %d bytes." msgstr "" -#: src/RatioFrame.cpp:1822 +#: src/RatioFrame.cpp:1907 msgid "Detected the size ok !" msgstr "" -#: src/RatioFrame.cpp:1829 +#: src/RatioFrame.cpp:1914 msgid "Invalid size : please see provided examples" msgstr "" -#: src/RatioFrame.cpp:1840 +#: src/RatioFrame.cpp:1925 #, c-format msgid "Resizing to %ld x %ld. Please wait..." msgstr "" -#: src/RatioFrame.cpp:1862 +#: src/RatioFrame.cpp:1947 #, c-format msgid "" "Guide lines ratio set to %f (\"%s\")\n" "." msgstr "" -#: src/RatioFrame.cpp:1868 +#: src/RatioFrame.cpp:1953 #, c-format msgid "" "Invalid numeric format : %s.\n" @@ -827,23 +850,23 @@ "separator depends on your local parameters)" msgstr "" -#: src/RatioFrame.cpp:2056 +#: src/RatioFrame.cpp:2141 msgid "." msgstr "" -#: src/RatioFrame.cpp:2057 +#: src/RatioFrame.cpp:2142 msgid ".." msgstr "" -#: src/RatioFrame.cpp:2060 +#: src/RatioFrame.cpp:2145 msgid "Illegal directory name." msgstr "" -#: src/RatioFrame.cpp:2060 src/RatioFrame.cpp:2071 +#: src/RatioFrame.cpp:2145 src/RatioFrame.cpp:2156 msgid "Error" msgstr "" -#: src/RatioFrame.cpp:2071 +#: src/RatioFrame.cpp:2156 msgid "File name exists already." msgstr "" diff -Nru rphoto-0.4.1/src/RatioFrame.cpp rphoto-0.4.2/src/RatioFrame.cpp --- rphoto-0.4.1/src/RatioFrame.cpp 2012-05-28 14:40:55.000000000 +0000 +++ rphoto-0.4.2/src/RatioFrame.cpp 2012-07-28 15:54:20.000000000 +0000 @@ -156,17 +156,20 @@ isInInit = false; UpdateControlsState(); imageUpdateExif(); + m_bDirty = FALSE; } void RatioFrame::InitConfig() { // Config m_pConfig = new wxConfig(wxT("RPhoto")); - m_pConfigDialog = new wxConfigDialog(*m_pConfig, this, -1, _("Preferences"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ); + m_pConfigDialog = new wxConfigDialog(*m_pConfig, this, -1, _("Preferences"), wxDefaultPosition, wxSize(600,400), wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ); // Setup options // * General stuff new wxConfigDialog_EntryCheck(*m_pConfigDialog, wxT("Main"), wxT("AutoSave"), _("Main"), _("Auto Save"), FALSE); + new wxConfigDialog_EntryTextEdit(*m_pConfigDialog, wxT("Main"), wxT("AutoSaveFolder"), _("Main"), _("Auto Save Folder"), wxT("")); + new wxConfigDialog_EntryTextEdit(*m_pConfigDialog, wxT("Main"), wxT("AutoSaveSuffix"), _("Main"), _("Auto Save Suffix"), wxT("")); new wxConfigDialog_EntryCheck(*m_pConfigDialog, wxT("Main"), wxT("AutoRotateCrop"), _("Main"), _("Auto Crop after Rotation"), FALSE); new wxConfigDialog_EntryTextEdit(*m_pConfigDialog, wxT("Main"), wxT("UndoHistory"), _("Main"), _("Undo History"), wxT("10")); @@ -209,6 +212,7 @@ // * Appearance new wxConfigDialog_EntryCheck(*m_pConfigDialog, wxT("View"), wxT("FitWindow"), _("Appearance"), _("Fit the image inside the window"), TRUE); // new wxConfigDialog_EntryCheck(*m_pConfigDialog, wxT("View"), wxT("Explorer"), _("Appearance"), _("View explorer panel"), TRUE); + new wxConfigDialog_EntryTextEdit(*m_pConfigDialog, wxT("View"), wxT("GreyOut"), _("Appearance"), _("Grey Out cutted off area (percent)"), wxT("50")); m_pConfigDialog->doLayout(); } @@ -217,6 +221,7 @@ { wxCommandEvent evt; int i; + double d; bool opt; // Toggle Explorer /* @@ -297,6 +302,16 @@ opt = FALSE; m_pConfig->Read(wxT("Main/AutoSave"), &opt); m_bAutoSave = opt; + m_pConfig->Read(wxT("Main/AutoSaveFolder"), &str); + m_sAutoSaveFolder = str; + m_pConfig->Read(wxT("Main/AutoSaveSuffix"), &str); + m_sAutoSaveSuffix = str; + // Grey Out area + m_pConfig->Read(wxT("View/GreyOut"), &str); + str.ToDouble(&d); i = (int)d; + if (i < 0) i = 0; + if (i > 100) i = 100; + m_pImageBox->GetRectTracker().SetGreyOutColour(i); } void RatioFrame::InitMenu() @@ -775,6 +790,7 @@ EVT_BUTTON(WIDGET_APPLY_COM, RatioFrame::OnImageWriteComment) EVT_MENU(MENU_ACCEL_APPLY_COMMENT, RatioFrame::OnImageWriteComment) EVT_TEXT(WIDGET_EDIT_COM, RatioFrame::UpdateControlsStateEvt) + EVT_CLOSE(RatioFrame::OnClose) END_EVENT_TABLE() @@ -897,28 +913,68 @@ m_isFileLoading = true; BEGIN_IMAGE() wxBeginBusyCursor(); - ImageCleanup(); - if (original) SetStatusText(wxString::Format(_("Loading %s..."), name.c_str())); - m_sFilename = name; - if ((!m_bTemp) || (original)) { m_sOriginalFilename = m_sFilename; m_bTemp = false; } - m_pImageBox->LoadFile(m_sFilename); - m_pImageBox->TrackerReset(); - imageUpdateExif(); - m_bJPEGlossless = (isJPEGFile(name))?TRUE:FALSE; + if (ImageCleanup()) + { + if (original) SetStatusText(wxString::Format(_("Loading %s..."), name.c_str())); + m_sFilename = name; + if ((!m_bTemp) || (original)) { m_sOriginalFilename = m_sFilename; m_bTemp = false; } + m_pImageBox->LoadFile(m_sFilename); + m_pImageBox->TrackerReset(); + imageUpdateExif(); + m_bJPEGlossless = (isJPEGFile(name))?TRUE:FALSE; + } UpdateControlsState(); - UpdateDirCtrl(); + UpdateDirCtrl(); wxEndBusyCursor(); END_IMAGE(); m_isFileLoading = false; } -void RatioFrame::ImageCleanup() +bool RatioFrame::ImageCleanup() { wxCommandEvent evt; + wxFileName destFn; if ((m_bDirty) && (m_bAutoSave)) { - OnFileSave(evt); - } + if (m_sAutoSaveFolder.IsEmpty() && m_sAutoSaveSuffix.IsEmpty()) + { + OnFileSave(evt); + } + else + { + destFn = m_sOriginalFilename; + destFn.SetName(destFn.GetName() + m_sAutoSaveSuffix); + if (!m_sAutoSaveFolder.IsEmpty()) + { + if (wxFileName(m_sAutoSaveFolder).IsAbsolute()) + { + destFn.SetPath(m_sAutoSaveFolder); + } + else + { + destFn.SetPath(destFn.GetPath() + destFn.GetPathSeparator() + m_sAutoSaveFolder); + destFn.Normalize(); + } + } + ImageSaveAs(destFn.GetFullPath()); + } + } + else if (m_bDirty) + { + switch (wxMessageBox(_("The current image has unsaved changes. \nDo you want to save it ?"),_("Save file?"), wxYES_NO | wxCANCEL, this)) + { + case wxYES: + OnFileSave(evt); + break; + case wxNO: + m_bDirty = false; + break; + case wxCANCEL: + default: + return false; + } + } + return true; } void RatioFrame::imageUpdateExif() @@ -996,6 +1052,19 @@ } } +void RatioFrame::OnClose(wxCloseEvent& event) +{ + if ( event.CanVeto() ) + { + if (!ImageCleanup()) + { + event.Veto(); + return; + } + } + event.Skip(); // the default event handler does call Destroy() +} + void RatioFrame::OnMenuFileQuit(wxCommandEvent &event) { Close(FALSE); @@ -1017,11 +1086,18 @@ wxString curFilename; if (m_pDirCtrl->GetFilePath() != wxT("")) { - if (!m_isFileLoading) + curFilename = m_pDirCtrl->GetFilePath(); + if ((!m_isFileLoading) && (curFilename != m_sOriginalFilename)) { - curFilename = m_pDirCtrl->GetFilePath(); - ImageCleanup(); - ImageLoad(curFilename, true); + if (!ImageCleanup()) + { + event.Skip(); + UpdateDirCtrl(); + } + else + { + ImageLoad(curFilename, true); + } } } else @@ -1078,11 +1154,14 @@ name = wxFileSelector(_("Open a file"),wxT(""),wxT(""),wxT(""), RPHOTO_FILTERIMGLIST_WORLD, wxFD_OPEN | wxFD_FILE_MUST_EXIST /* wxOPEN | wxFILE_MUST_EXIST */); if (name != wxT("")) { - ImageCleanup(); - ImageLoad(name); - m_sFilename = m_sOriginalFilename = name; - m_bTemp = false; - } + if (ImageCleanup()) + { + ImageLoad(name); + m_sFilename = m_sOriginalFilename = name; + m_bTemp = false; + + } + } } void RatioFrame::OnFileSave(wxCommandEvent &event) @@ -1123,33 +1202,39 @@ } } +void RatioFrame::ImageSaveAs(wxString name) +{ + if (name == wxT("")) return; + if (m_bTemp) { m_sFilename = m_sOriginalFilename; m_bTemp = false; } + if ((!m_bDirty) && (m_bJPEGlossless) && isJPEGFile(m_sOriginalFilename) && isJPEGFile(name)) + { + wxCopyFile(m_sFilename, name, TRUE); + Clean(); + } + else if (m_pImageBox != NULL) + { + if (isJPEGFile(m_sFilename)) + { + wxString squality = wxT(""); m_pConfig->Read(wxT("JPEG/Quality"),&squality); + long quality = 0; squality.ToLong(&quality); + m_pImageBox->GetImage().SetOption(wxT("quality"), (int)quality); + m_pImageBox->GetImage().SaveFile(name, wxBITMAP_TYPE_JPEG); + } + else m_pImageBox->GetImage().SaveFile(name); + Clean(); + } + + ImageCleanup(); + m_sFilename = m_sOriginalFilename = name; +} + void RatioFrame::OnFileSaveAs(wxCommandEvent &event) { wxString name; name = wxFileSelector(_("Save a file"),wxT(""),m_sOriginalFilename,wxT(""), RPHOTO_FILTERIMGLIST_WORLD,wxFD_SAVE /* wxSAVE*/); if (name != wxT("")) { - if (m_bTemp) { m_sFilename = m_sOriginalFilename; m_bTemp = false; } - if ((!m_bDirty) && (m_bJPEGlossless) && isJPEGFile(m_sOriginalFilename) && isJPEGFile(name)) - { - wxCopyFile(m_sFilename, name, TRUE); - Clean(); - } - else if (m_pImageBox != NULL) - { - if (isJPEGFile(m_sFilename)) - { - wxString squality = wxT(""); m_pConfig->Read(wxT("JPEG/Quality"),&squality); - long quality = 0; squality.ToLong(&quality); - m_pImageBox->GetImage().SetOption(wxT("quality"), (int)quality); - m_pImageBox->GetImage().SaveFile(name, wxBITMAP_TYPE_JPEG); - } - else m_pImageBox->GetImage().SaveFile(name); - Clean(); - } - - ImageCleanup(); - m_sFilename = m_sOriginalFilename = name; + ImageSaveAs(name); m_pDirCtrl->ReCreateTree(); ImageLoad(m_sFilename); } diff -Nru rphoto-0.4.1/src/RatioFrame.h rphoto-0.4.2/src/RatioFrame.h --- rphoto-0.4.1/src/RatioFrame.h 2012-05-28 14:29:27.000000000 +0000 +++ rphoto-0.4.2/src/RatioFrame.h 2012-07-28 15:54:20.000000000 +0000 @@ -202,6 +202,7 @@ void OnResizeEnter(wxCommandEvent &event); void OnGuideChange(wxCommandEvent &event); void OnGuideEnter(wxCommandEvent &event); + void OnClose(wxCloseEvent& event); // - Misc void UpdateControlsState(); void UpdateControlsStateEvt(wxCommandEvent & event); @@ -210,7 +211,8 @@ // Gestion des images void ImageLoad(wxString name, bool original = false); - void ImageCleanup(); + void ImageSaveAs(wxString name); + bool ImageCleanup(); void imageUndoPoint(); void imageUpdateExif(); bool CallJPEGTranTryPerfect(const wxString &command); @@ -222,7 +224,7 @@ void UpdateDirCtrl(const wxString &from = wxT("")); public: - void LoadFile(const wxString & filename) { ImageCleanup(); ImageLoad(filename, true); } + void LoadFile(const wxString & filename) { if (ImageCleanup()) ImageLoad(filename, true); } public: // Hack : TODO : Move Dirty/Clean in a document class bool isJPEGFile(const wxString & name); @@ -254,6 +256,8 @@ bool m_bJPEGlossless; wxString m_sComEncoding; bool m_bAutoSave; + wxString m_sAutoSaveFolder; + wxString m_sAutoSaveSuffix; bool m_bDirty; wxArrayString m_saRatios; wxArrayString m_saResize; diff -Nru rphoto-0.4.1/src/RatioImageBox.cpp rphoto-0.4.2/src/RatioImageBox.cpp --- rphoto-0.4.1/src/RatioImageBox.cpp 2012-05-28 14:29:27.000000000 +0000 +++ rphoto-0.4.2/src/RatioImageBox.cpp 2012-07-28 15:54:20.000000000 +0000 @@ -308,8 +308,8 @@ if (!IsModeInclinaison()) { - if (event.GetEventType() != wxEVT_TRACKER_CHANGING) - myRect = GetRectTracker().GetUnscrolledRect(); + if (event.GetEventType() == wxEVT_TRACKER_CHANGING) + myRect = GetRectTracker().GetTrackingRect(); else myRect = GetRectTracker().GetTrackerRect(); msg = wxString::Format(wxT("%dx%d+%d,%d"), (int)(myRect.width / GetScaleValue()), diff -Nru rphoto-0.4.1/src/RPhoto.h rphoto-0.4.2/src/RPhoto.h --- rphoto-0.4.1/src/RPhoto.h 2012-05-28 14:29:27.000000000 +0000 +++ rphoto-0.4.2/src/RPhoto.h 2012-07-28 15:54:20.000000000 +0000 @@ -22,7 +22,7 @@ * ************************************************************************** */ #define RPHOTO_NAME wxT("RPhoto") -#define RPHOTO_VERSION wxT("v0.4.1") +#define RPHOTO_VERSION wxT("v0.4.2") #define RPHOTO_COPYRIGHT wxT("2004-2012 - Remi Peyronnet") #define RT_DEFAULT_IMAGE wxT("test.jpg") diff -Nru rphoto-0.4.1/TODO rphoto-0.4.2/TODO --- rphoto-0.4.1/TODO 2012-05-28 14:29:27.000000000 +0000 +++ rphoto-0.4.2/TODO 2012-07-28 15:57:04.000000000 +0000 @@ -1,10 +1,8 @@ Bugs : Features : -- Mask off areas to be cropped off (Marcus S.) - Guides / Rulers (Marcus S.) - Zooms (Marcus S.) -- Confirmation when not save (Marcus S.) - Snap borders to lossless (Marcus S.) - Update Exif tags (Marcus S.) - Print (Catherine) @@ -31,6 +29,9 @@ - Bizarre tree behavior on linux, when saving (Marcus, marcus.sundman@iki.fi) -> not observed Features : +- Confirmation when not save (Marcus S.) -> ok +- AutoSave Folder & Suffix (Fank B.) -> ok +- Mask off areas to be cropped off (Marcus S. & Fank B.) -> ok - Print angle -> ok - Edit comments (text field in the bottom) -> ok - Save last entered ratio or size -> ok