[Digikam-devel] extragear/graphics/digikam/libs/widgets
Gilles Caulier
caulier.gilles at free.fr
Tue Jul 12 14:37:46 BST 2005
SVN commit 433991 by cgilles:
digiKam Image guide widget : animated guide is more visible!
CCMAIL: digikam-devel at kde.org
M +23 -5 imageguidewidget.cpp
M +3 -0 imageguidewidget.h
--- trunk/extragear/graphics/digikam/libs/widgets/imageguidewidget.cpp #433990:433991
@@ -26,6 +26,7 @@
#include <qpen.h>
#include <qpixmap.h>
#include <qtooltip.h>
+#include <qtimer.h>
// KDE include.
@@ -49,10 +50,13 @@
bool spotVisible, int guideMode)
: QWidget(parent, 0, Qt::WDestructiveClose)
{
- m_spotVisible = spotVisible;
- m_guideMode = guideMode;
- m_focus = false;
+ m_spotVisible = spotVisible;
+ m_guideMode = guideMode;
+ m_focus = false;
+ m_flicker = false;
+ m_timerID = startTimer(800);
+
setBackgroundMode(Qt::NoBackground);
setMinimumSize(w, h);
setMouseTracking(true);
@@ -137,8 +141,8 @@
{
QPainter p(m_pixmap);
p.setPen(QPen(Qt::red, 1, Qt::DotLine));
- p.drawLine(xspot, m_rect.top(), xspot, m_rect.bottom());
- p.drawLine(m_rect.left(), yspot, m_rect.right(), yspot);
+ p.drawLine(xspot, m_rect.top() + m_flicker, xspot, m_rect.bottom() - m_flicker);
+ p.drawLine(m_rect.left() + m_flicker, yspot, m_rect.right() - m_flicker, yspot);
p.end();
break;
}
@@ -149,6 +153,8 @@
p.setPen(QPen(Qt::red, 1, Qt::SolidLine));
p.drawLine(xspot-10, yspot-10, xspot+10, yspot+10);
p.drawLine(xspot+10, yspot-10, xspot-10, yspot+10);
+ if (m_flicker%2 != 0)
+ p.setPen(QPen(Qt::red, 2, Qt::SolidLine));
p.drawEllipse( xspot-5, yspot-5, 11, 11 );
p.end();
break;
@@ -159,6 +165,18 @@
bitBlt(this, 0, 0, m_pixmap);
}
+void ImageGuideWidget::timerEvent(QTimerEvent * e)
+{
+ if (e->timerId() == m_timerID)
+ {
+ if (m_flicker == 5) m_flicker=0;
+ else m_flicker++;
+ repaint(false);
+ }
+ else
+ QWidget::timerEvent(e);
+}
+
void ImageGuideWidget::resizeEvent(QResizeEvent * e)
{
blockSignals(true);
--- trunk/extragear/graphics/digikam/libs/widgets/imageguidewidget.h #433990:433991
@@ -73,6 +73,7 @@
void paintEvent( QPaintEvent *e );
void resizeEvent( QResizeEvent * e );
+ void timerEvent(QTimerEvent * e);
void mousePressEvent ( QMouseEvent * e );
void mouseReleaseEvent ( QMouseEvent * e );
void mouseMoveEvent ( QMouseEvent * e );
@@ -83,7 +84,9 @@
int m_w;
int m_h;
+ int m_timerID;
int m_guideMode;
+ int m_flicker;
bool m_focus;
bool m_spotVisible;
More information about the Digikam-devel
mailing list