2 * This file is part of CameraPlus.
4 * Copyright (C) 2012-2013 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),
31 FocusRectangle::FocusRectangle(QQuickItem *parent) :
32 QQuickPaintedItem(parent),
37 setFlag(QGraphicsItem::ItemHasNoContents, false);
41 FocusRectangle::~FocusRectangle() {
45 QColor FocusRectangle::color() const {
49 void FocusRectangle::setColor(const QColor& color) {
50 if (color != m_color) {
59 void FocusRectangle::paint(QPainter* painter, const QStyleOptionGraphicsItem* option,
62 QDeclarativeItem::paint(painter, option, widget);
64 void FocusRectangle::paint(QPainter* painter) {
69 painter->setPen(QPen(QBrush(Qt::black), WIDTH));
70 painter->drawPath(m_path);
72 painter->setPen(QPen(QBrush(m_color), WIDTH - 2));
73 painter->drawPath(m_path);
78 void FocusRectangle::geometryChanged( const QRectF& newGeometry, const QRectF& oldGeometry) {
80 QDeclarativeItem::geometryChanged(newGeometry, oldGeometry);
82 QQuickPaintedItem::geometryChanged(newGeometry, oldGeometry);
88 qreal offset = WIDTH / 2;
91 m_path = QPainterPath(QPointF(offset, LENGTH - offset));
92 m_path.lineTo(offset, offset);
93 m_path.lineTo(LENGTH - offset, offset);
96 m_path.moveTo(w - LENGTH + offset, offset);
97 m_path.lineTo(w - offset, offset);
98 m_path.lineTo(w - offset, LENGTH - offset);
101 m_path.moveTo(w - offset, h - LENGTH + offset);
102 m_path.lineTo(w - offset, h - offset);
103 m_path.lineTo(w - LENGTH + offset, h - offset);
106 m_path.moveTo(LENGTH - offset, h - offset);
107 m_path.lineTo(offset, h - offset);
108 m_path.lineTo(offset, h - LENGTH + offset);