[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