#include "chartview.h"
#include <QtGui/QMouseEvent>
#include <QScrollBar>
#include <iostream>
ChartView::ChartView(QChart *chart, QWidget *parent) :
    QChartView(chart, parent),
    m_isTouching(false)
{
    setContentsMargins(0,0,0,0);
}


void ChartView::mousePressEvent(QMouseEvent *event)
{
    if (event->buttons() & Qt::LeftButton) {
        mouseDownPos = event->localPos();
        return;
    }
    QChartView::mousePressEvent(event);
}


void ChartView::mouseMoveEvent(QMouseEvent *event)
{
    if (event->buttons() & Qt::LeftButton) {
        QPointF diff = mouseDownPos - event->localPos();
        qreal dx = event->localPos().x() - mouseDownPos.x();
        qreal dy = event->localPos().y() - mouseDownPos.y();
        mouseDownPos = event->localPos();
        chart()->scroll(-1.0*dx,dy);
        return;
    }

    QChartView::mouseMoveEvent(event);
}


void ChartView::mouseReleaseEvent(QMouseEvent *event)
{
    if (event->buttons() & Qt::LeftButton)
        mouseDown = false;
    QChartView::mouseReleaseEvent(event);
}


void ChartView::keyPressEvent(QKeyEvent *event)
{
    switch (event->key()) {
    case Qt::Key_Plus:
        chart()->zoomIn();
        break;
    case Qt::Key_Minus:
        chart()->zoomOut();
        break;
    case Qt::Key_Left:
        chart()->scroll(-10, 0);
        break;
    case Qt::Key_Right:
        chart()->scroll(10, 0);
        break;
    case Qt::Key_Up:
        chart()->scroll(0, 10);
        break;
    case Qt::Key_Down:
        chart()->scroll(0, -10);
        break;
    default:
        QGraphicsView::keyPressEvent(event);
        break;
    }
}