From: Mohammed Sameer Date: Sun, 16 Dec 2012 19:00:42 +0000 (+0200) Subject: Fixed painting to take into account offsets introduced by QPainter X-Git-Url: http://cgit.sxemacs.org/?a=commitdiff_plain;h=6888f057397765f1607b1344f4525c14bf3794d5;p=harmattan%2Fcameraplus Fixed painting to take into account offsets introduced by QPainter --- diff --git a/src/focusrectangle.cpp b/src/focusrectangle.cpp index 7b9a155..c228da0 100644 --- a/src/focusrectangle.cpp +++ b/src/focusrectangle.cpp @@ -22,10 +22,8 @@ #include #include -#define OUTER_WIDTH 4 -#define INNER_WIDTH 2 -#define OUTER_LENGTH 30 -#define INNER_LENGTH 29 +#define WIDTH 4 +#define LENGTH 30 FocusRectangle::FocusRectangle(QDeclarativeItem *parent) : QDeclarativeItem(parent), @@ -58,11 +56,11 @@ void FocusRectangle::paint(QPainter* painter, const QStyleOptionGraphicsItem* op painter->save(); - painter->setPen(QPen(QBrush(Qt::black), OUTER_WIDTH)); - painter->drawPath(m_outer); + painter->setPen(QPen(QBrush(Qt::black), WIDTH)); + painter->drawPath(m_path); - painter->setPen(QPen(QBrush(m_color), INNER_WIDTH)); - painter->drawPath(m_inner); + painter->setPen(QPen(QBrush(m_color), WIDTH - 2)); + painter->drawPath(m_path); painter->restore(); } @@ -73,45 +71,25 @@ void FocusRectangle::geometryChanged( const QRectF& newGeometry, const QRectF& o qreal w = width(); qreal h = height(); - // Outer: - // top left: - m_outer = QPainterPath(QPointF(0, OUTER_LENGTH)); - m_outer.lineTo(0, 0); - m_outer.lineTo(OUTER_LENGTH, 0); - - // top right: - m_outer.moveTo(w - OUTER_LENGTH, 0); - m_outer.lineTo(w, 0); - m_outer.lineTo(w, OUTER_LENGTH); - - // bottom right: - m_outer.moveTo(w, h - OUTER_LENGTH); - m_outer.lineTo(w, h); - m_outer.lineTo(w - OUTER_LENGTH, h); - - // bottom left: - m_outer.moveTo(OUTER_LENGTH, h); - m_outer.lineTo(0, h); - m_outer.lineTo(0, h - OUTER_LENGTH); + qreal offset = WIDTH / 2; - // Inner: // top left: - m_inner = QPainterPath(QPointF(0, INNER_LENGTH)); - m_inner.lineTo(0, 0); - m_inner.lineTo(INNER_LENGTH, 0); + m_path = QPainterPath(QPointF(offset, LENGTH - offset)); + m_path.lineTo(offset, offset); + m_path.lineTo(LENGTH - offset, offset); // top right: - m_inner.moveTo(w - INNER_LENGTH, 0); - m_inner.lineTo(w, 0); - m_inner.lineTo(w, INNER_LENGTH); + m_path.moveTo(w - LENGTH + offset, offset); + m_path.lineTo(w - offset, offset); + m_path.lineTo(w - offset, LENGTH - offset); // bottom right: - m_inner.moveTo(w, h - INNER_LENGTH); - m_inner.lineTo(w, h); - m_inner.lineTo(w - INNER_LENGTH, h); + m_path.moveTo(w - offset, h - LENGTH + offset); + m_path.lineTo(w - offset, h - offset); + m_path.lineTo(w - LENGTH + offset, h - offset); // bottom left: - m_inner.moveTo(INNER_LENGTH, h); - m_inner.lineTo(0, h); - m_inner.lineTo(0, h - INNER_LENGTH); + m_path.moveTo(LENGTH - offset, h - offset); + m_path.lineTo(offset, h - offset); + m_path.lineTo(offset, h - LENGTH + offset); } diff --git a/src/focusrectangle.h b/src/focusrectangle.h index 6d6e296..9429825 100644 --- a/src/focusrectangle.h +++ b/src/focusrectangle.h @@ -48,8 +48,7 @@ signals: private: QColor m_color; - QPainterPath m_inner; - QPainterPath m_outer; + QPainterPath m_path; }; #endif /* FOCUS_RECTANGLE_H */