/*!
* This file is part of CameraPlus.
*
- * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
#include "focusrectangle.h"
#include <QPainter>
-#include <QDebug>
-#define OUTER_WIDTH 4
-#define INNER_WIDTH 2
-#define OUTER_LENGTH 50
-#define INNER_LENGTH 49
+#define WIDTH 4
+#define LENGTH 30
+#if defined(QT4)
FocusRectangle::FocusRectangle(QDeclarativeItem *parent) :
QDeclarativeItem(parent),
+#elif defined(QT5)
+FocusRectangle::FocusRectangle(QQuickItem *parent) :
+ QQuickPaintedItem(parent),
+#endif
m_color(Qt::white) {
+#if defined(QT4)
setFlag(QGraphicsItem::ItemHasNoContents, false);
+#endif
}
FocusRectangle::~FocusRectangle() {
}
}
+#if defined(QT4)
void FocusRectangle::paint(QPainter* painter, const QStyleOptionGraphicsItem* option,
QWidget* widget) {
QDeclarativeItem::paint(painter, option, widget);
+#elif defined(QT5)
+void FocusRectangle::paint(QPainter* painter) {
+#endif
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();
}
void FocusRectangle::geometryChanged( const QRectF& newGeometry, const QRectF& oldGeometry) {
+#if defined(QT4)
QDeclarativeItem::geometryChanged(newGeometry, oldGeometry);
+#elif defined(QT5)
+ QQuickPaintedItem::geometryChanged(newGeometry, oldGeometry);
+#endif
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);
}