Corrected video recording resolution for front camera
[harmattan/cameraplus] / src / focusrectangle.cpp
index aeda534..293fa0e 100644 (file)
@@ -1,7 +1,7 @@
 /*!
  * 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() {
@@ -51,67 +55,55 @@ void FocusRectangle::setColor(const QColor& color) {
   }
 }
 
+#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);
 }