[Digikam-devel] extragear/graphics

Gilles Caulier caulier.gilles at free.fr
Wed Jul 27 13:48:06 BST 2005


SVN commit 439217 by cgilles:

digiKam Hot Pixels Tool - third stage : 

- display the hot pixels on image region widget !!!
- Remove unecessary source files.
- Finalize for beta.

A screenshot :

http://digikam3rdparty.free.fr/HotPixelRemovalTool-Alpha.png

CCMAIL: digikam-devel at kde.org, ugarro at telefonica.net

 M  +3 -3      digikam/libs/widgets/imagepaniconwidget.cpp  
 M  +2 -2      digikam/libs/widgets/imagepaniconwidget.h  
 M  +0 -1      digikam/libs/widgets/imagepannelwidget.cpp  
 M  +7 -2      digikam/libs/widgets/imagepannelwidget.h  
 M  +37 -2     digikam/libs/widgets/imageregionwidget.cpp  
 M  +16 -7     digikam/libs/widgets/imageregionwidget.h  
 D             digikamimageplugins/hotpixels/hotpixelviewwidget.cpp  
 D             digikamimageplugins/hotpixels/hotpixelviewwidget.h  
 D             digikamimageplugins/hotpixels/multiviewwidget.cpp  
 D             digikamimageplugins/hotpixels/multiviewwidget.h  


--- trunk/extragear/graphics/digikam/libs/widgets/imagepaniconwidget.cpp #439216:439217
@@ -147,13 +147,13 @@
    
     // Drawing HighLighted points.
     
-    if (!hightlightPoints.isEmpty())
+    if (!m_hightlightPoints.isEmpty())
        {
        QPoint pt;
        
-       for (uint i = 0 ; i < hightlightPoints.count() ; i++)
+       for (uint i = 0 ; i < m_hightlightPoints.count() ; i++)
           {
-          pt = hightlightPoints.point(i);
+          pt = m_hightlightPoints.point(i);
           pt.setX((int)(pt.x() * (float)(m_w)/(float)m_iface->originalWidth()));
           pt.setY((int)(pt.y() * (float)(m_h)/(float)m_iface->originalHeight()));
           p.setPen(QPen(Qt::black, 1, Qt::SolidLine));
--- trunk/extragear/graphics/digikam/libs/widgets/imagepaniconwidget.h #439216:439217
@@ -49,7 +49,7 @@
         
     void  setHighLightPoints(QPointArray pointsList)
        {
-       hightlightPoints = pointsList;
+       m_hightlightPoints = pointsList;
        updatePixmap();
        repaint(false);
        };
@@ -93,7 +93,7 @@
     
     QPixmap     *m_pixmap;
     
-    QPointArray  hightlightPoints;
+    QPointArray  m_hightlightPoints;
     
     ImageIface  *m_iface;
         
--- trunk/extragear/graphics/digikam/libs/widgets/imagepannelwidget.cpp #439216:439217
@@ -45,7 +45,6 @@
 
 // Local includes.
 
-#include "imageregionwidget.h"
 #include "imagepannelwidget.h"
 
 namespace Digikam
--- trunk/extragear/graphics/digikam/libs/widgets/imagepannelwidget.h #439216:439217
@@ -32,6 +32,7 @@
 
 // Local includes
 
+#include "imageregionwidget.h"
 #include "imagepaniconwidget.h"
 #include "digikam_export.h"
 
@@ -78,9 +79,13 @@
 
     void   setUserAreaWidget(QWidget *w, bool separator=true);
     
-    void   setPanIconHighLightPoints(QPointArray pt) { m_imagePanIconWidget->setHighLightPoints(pt); };
+    void   setPanIconHighLightPoints(QPointArray pt) 
+       {
+       m_imageRegionWidget->setHighLightPoints(pt); 
+       m_imagePanIconWidget->setHighLightPoints(pt); 
+       };
     
-    KProgress *progressBar(void)                     { return m_progressBar; };
+    KProgress *progressBar(void) { return m_progressBar; };
            
 public slots:
 
--- trunk/extragear/graphics/digikam/libs/widgets/imageregionwidget.cpp #439216:439217
@@ -180,6 +180,8 @@
     
     if (!m_movingInProgress)
         {
+        // Drawing separate view.
+        
         switch (m_separateView)
             {
             case SeparateViewVertical:
@@ -217,8 +219,10 @@
             case SeparateViewDuplicateHorz:
                 {
                 p->setPen(QPen(Qt::red, 2, Qt::DotLine));
-                p->drawLine(getTargetImageRegion().topLeft().x(),  getTargetImageRegion().topLeft().y(),
-                            getTargetImageRegion().topRight().x(), getTargetImageRegion().topRight().y());
+                p->drawLine(getTargetImageRegion().topLeft().x(),
+                            getTargetImageRegion().topLeft().y(),
+                            getTargetImageRegion().topRight().x(),
+                            getTargetImageRegion().topRight().y());
                             
                 p->setPen(QPen::QPen(Qt::red, 1)) ;                    
                 QFontMetrics fontMt = p->fontMetrics();
@@ -242,6 +246,37 @@
                 p->drawText(textRect, Qt::AlignCenter, text);
                 break;
                 }
+            }   
+        
+        // Drawing HighLighted points.
+        
+        if (!m_hightlightPoints.isEmpty())
+            {
+            QPoint pt;
+            QRect  ptArea;
+            
+            for (uint i = 0 ; i < m_hightlightPoints.count() ; i++)
+                {
+                pt = m_hightlightPoints.point(i);
+                
+                if ( getImageRegionToRender().contains(pt) )
+                    {
+                    p->setPen(QPen(Qt::white, 1, Qt::SolidLine));
+                    ptArea.setSize(QSize::QSize(12, 12));
+                    ptArea.moveCenter(pt);
+                    p->drawEllipse(ptArea);
+                    ptArea.setSize(QSize::QSize(8, 8));
+                    ptArea.moveCenter(pt);
+                    p->drawEllipse(ptArea);
+                    p->setPen(QPen(Qt::black, 1, Qt::SolidLine));
+                    ptArea.setSize(QSize::QSize(10, 10));
+                    ptArea.moveCenter(pt);
+                    p->drawEllipse(ptArea);
+                    ptArea.setSize(QSize::QSize(6, 6));
+                    ptArea.moveCenter(pt);
+                    p->drawEllipse(ptArea);
+                    }
+                }
             }
         }
 }
--- trunk/extragear/graphics/digikam/libs/widgets/imageregionwidget.h #439216:439217
@@ -26,6 +26,7 @@
 #include <qscrollview.h>
 #include <qimage.h>
 #include <qrect.h>
+#include <qpointarray.h>
 
 // Local includes
 
@@ -67,6 +68,12 @@
 
     void   backupPixmapRegion(void);
     void   restorePixmapRegion(void);
+    
+    void   setHighLightPoints(QPointArray pointsList)
+       {
+       m_hightlightPoints = pointsList;
+       repaintContents(false);    
+       };
              
 signals:
     
@@ -82,17 +89,19 @@
 
 private:
     
-    bool     m_movingInProgress;
+    bool         m_movingInProgress;
 
-    int      m_separateView;
-    int      m_xpos;
-    int      m_ypos;
+    int          m_separateView;
+    int          m_xpos;
+    int          m_ypos;
 
-    QPixmap *m_pix;                // Entire content widget pixmap.
-    QPixmap *m_pixRegion;          // Pixmap of current region to render.
+    QPixmap     *m_pix;                // Entire content widget pixmap.
+    QPixmap     *m_pixRegion;          // Pixmap of current region to render.
     
-    QImage   m_img;                // Entire content image.
+    QPointArray  m_hightlightPoints;    
     
+    QImage       m_img;                // Entire content image.
+    
 private:
     
     void  drawContents(QPainter *p, int x, int y, int w, int h);



More information about the Digikam-devel mailing list