2 * This file is part of CameraPlus.
4 * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 #include "focusrectangle.h"
28 FocusRectangle::FocusRectangle(QDeclarativeItem *parent) :
29 QDeclarativeItem(parent),
32 setFlag(QGraphicsItem::ItemHasNoContents, false);
35 FocusRectangle::~FocusRectangle() {
39 QColor FocusRectangle::color() const {
43 void FocusRectangle::setColor(const QColor& color) {
44 if (color != m_color) {
52 void FocusRectangle::paint(QPainter* painter, const QStyleOptionGraphicsItem* option,
55 QDeclarativeItem::paint(painter, option, widget);
59 painter->setPen(QPen(QBrush(Qt::black), WIDTH));
60 painter->drawPath(m_path);
62 painter->setPen(QPen(QBrush(m_color), WIDTH - 2));
63 painter->drawPath(m_path);
68 void FocusRectangle::geometryChanged( const QRectF& newGeometry, const QRectF& oldGeometry) {
69 QDeclarativeItem::geometryChanged(newGeometry, oldGeometry);
74 qreal offset = WIDTH / 2;
77 m_path = QPainterPath(QPointF(offset, LENGTH - offset));
78 m_path.lineTo(offset, offset);
79 m_path.lineTo(LENGTH - offset, offset);
82 m_path.moveTo(w - LENGTH + offset, offset);
83 m_path.lineTo(w - offset, offset);
84 m_path.lineTo(w - offset, LENGTH - offset);
87 m_path.moveTo(w - offset, h - LENGTH + offset);
88 m_path.lineTo(w - offset, h - offset);
89 m_path.lineTo(w - LENGTH + offset, h - offset);
92 m_path.moveTo(LENGTH - offset, h - offset);
93 m_path.lineTo(offset, h - offset);
94 m_path.lineTo(offset, h - LENGTH + offset);