[Digikam-devel] extragear/graphics/digikam

Gilles Caulier caulier.gilles at free.fr
Fri Feb 17 11:18:43 GMT 2006


SVN commit 510459 by cgilles:

digikam from trunk : bug fix : handle undo manager with a named action if DImgInterface::putImageSelection() is called (for example with red eyes correction tool)

CCMAIL: digikam-devel at kde.org

 M  +1 -1      imageplugins/imageeffect_redeye.cpp  
 M  +7 -7      utilities/imageeditor/canvas/dimginterface.cpp  
 M  +23 -20    utilities/imageeditor/canvas/dimginterface.h  
 M  +2 -2      utilities/imageeditor/editor/imageiface.cpp  
 M  +2 -2      utilities/imageeditor/editor/imageiface.h  


--- trunk/extragear/graphics/digikam/imageplugins/imageeffect_redeye.cpp #510458:510459
@@ -221,7 +221,7 @@
 
     selection.bitBlend_RGBA2RGB(newSelection, 0, 0, w, h);
 
-    iface.putImageSelection(selection.bits());
+    iface.putImageSelection(i18n("Red Eyes Correction"), selection.bits());
     parent->setCursor( KCursor::arrowCursor() );
 }
 
--- trunk/extragear/graphics/digikam/utilities/imageeditor/canvas/dimginterface.cpp #510458:510459
@@ -4,7 +4,8 @@
  * Date  : 2003-01-15
  * Description :
  *
- * Copyright 2003-2006 by Renchi Raju, Gilles Caulier
+ * Copyright 2004-2005 by Renchi Raju, Gilles Caulier
+ * Copyright 2006 by Gilles Caulier
  *
  * This program is free software; you can redistribute it
  * and/or modify it under the terms of the GNU General
@@ -82,9 +83,9 @@
         selH            = 0;
         zoom            = 1.0;
         
-        exifOrient           = false;
-        valid                = false;
-        rotatedOrFlipped     = false;
+        exifOrient       = false;
+        valid            = false;
+        rotatedOrFlipped = false;
     }
 
     bool          valid;
@@ -919,13 +920,12 @@
     return 0;
 }
 
-void DImgInterface::putImageSelection(uchar* data, bool saveUndo)
+void DImgInterface::putImageSelection(const QString &caller, uchar* data)
 {
     if (!data || d->image.isNull())
         return;
 
-    if (saveUndo)
-        d->undoMan->addAction(new UndoActionIrreversible(this));
+    d->undoMan->addAction(new UndoActionIrreversible(this, caller));
 
     d->image.bitBltImage(data, 0, 0, d->selW, d->selH, d->selX, d->selY, d->selW, d->selH, d->image.bytesDepth());
 
--- trunk/extragear/graphics/digikam/utilities/imageeditor/canvas/dimginterface.h #510458:510459
@@ -4,7 +4,8 @@
  * Date  : 2003-01-15
  * Description :
  *
- * Copyright 2003-2006 by Renchi Raju, Gilles Caulier
+ * Copyright 2004-2005 by Renchi Raju, Gilles Caulier
+ * Copyright 2006 by Gilles Caulier
  *
  * This program is free software; you can redistribute it
  * and/or modify it under the terms of the GNU General
@@ -58,13 +59,15 @@
 
     void   load(const QString& filename,
                 ICCSettingsContainer *cmSettings, IOFileSettingsContainer* iofileSettings);
+                
     void   setExifOrient(bool exifOrient);
     void   undo();
     void   redo();
     void   restore();
-    //void   save(const QString& file, IOFileSettingsContainer *iofileSettings);
+    
     void   saveAs(const QString& file, IOFileSettingsContainer *iofileSettings,
                   const QString& mimeType=0);
+                  
     void   switchToLastSaved(const QString& newFilename);
     void   setModified();
     void   clearUndoManager();
@@ -122,23 +125,15 @@
     uchar* getImage();
     
     void   putImage(uchar* data, int w, int h);
+    void   putImage(uchar* data, int w, int h, bool sixteenBit);
     void   putImage(const QString &caller, uchar* data, int w, int h);
-    
-    void   putImage(uchar* data, int w, int h, bool sixteenBit);
     void   putImage(const QString &caller, uchar* data, int w, int h, bool sixteenBit);
     
     uchar* getImageSelection();
-    void   putImageSelection(uchar* data, bool saveUndo=true);
+    void   putImageSelection(const QString &caller, uchar* data);
 
     QByteArray getEmbeddedICC();
 
-    // FIXME : remove these methods when all image plugins will be ported to DImg.
-    uint*  getData();
-    void   putData(uint* data, int w, int h);
-    void   putData(const QString &caller, uint* data, int w, int h);
-    uint*  getSelectedData();
-    void   putSelectedData(uint* data, bool saveUndo=true);
-
 protected slots:
 
     void   slotImageLoaded(const QString&, const DImg& img);
@@ -148,18 +143,16 @@
 
 signals:
 
-    void signalModified();
-    void signalUndoStateChanged(bool moreUndo, bool moreRedo, bool canSave);
+    void   signalModified();
+    void   signalUndoStateChanged(bool moreUndo, bool moreRedo, bool canSave);
 
-    void signalLoadingProgress(const QString& filePath, float progress);
-    void signalImageLoaded(const QString& filePath, bool success);
-    void signalSavingProgress(const QString& filePath, float progress);
-    void signalImageSaved(const QString& filePath, bool success);
+    void   signalLoadingProgress(const QString& filePath, float progress);
+    void   signalImageLoaded(const QString& filePath, bool success);
+    void   signalSavingProgress(const QString& filePath, float progress);
+    void   signalImageSaved(const QString& filePath, bool success);
 
 private:
 
-    //void   saveAction(const QString& fileName, IOFileSettingsContainer *iofileSettings,
-      //                const QString& mimeType); 
     void   exifRotate(const QString& filename);
 
     DImgInterface();
@@ -170,6 +163,16 @@
     
     DImgInterfacePrivate *d;
 
+// -----------------------------------------------------------------------------
+// FIXME : remove these methods when all image plugins will be ported to DImg.
+
+public: 
+    uint*  getData();
+    void   putData(uint* data, int w, int h);
+    void   putData(const QString &caller, uint* data, int w, int h);
+    uint*  getSelectedData();
+    void   putSelectedData(uint* data, bool saveUndo=true);
+
 };
 
 }  // namespace Digikam
--- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/imageiface.cpp #510458:510459
@@ -227,12 +227,12 @@
     DImgInterface::instance()->putImage(caller, data, w, h);
 }
 
-void ImageIface::putImageSelection(uchar* data)
+void ImageIface::putImageSelection(const QString &caller, uchar* data)
 {
     if (!data)
         return;
     
-    DImgInterface::instance()->putImageSelection(data);
+    DImgInterface::instance()->putImageSelection(caller, data);
 }
 
 int ImageIface::previewWidth()
--- trunk/extragear/graphics/digikam/utilities/imageeditor/editor/imageiface.h #510458:510459
@@ -57,12 +57,12 @@
     ~ImageIface();
 
     uchar* getPreviewImage();
+    uchar* getImageSelection();
     uchar* getOriginalImage();
-    uchar* getImageSelection();
 
     void   putOriginalImage(const QString &caller, uchar* data, int w=-1, int h=-1);
+    void   putImageSelection(const QString &caller, uchar* data);
     void   putPreviewImage(uchar* data);
-    void   putImageSelection(uchar* data);
 
     /** Color point information method.*/
 



More information about the Digikam-devel mailing list