##// END OF EJS Templates
Refactoring the pie for animations (no actual animations yet)
Refactoring the pie for animations (no actual animations yet)

File last commit:

r531:64f37cf5241e
r566:875089213706
Show More
chartwidget.cpp
75 lines | 1.5 KiB | text/x-c | CppLexer
#include "chartwidget.h"
#include <QMouseEvent>
ChartWidget::ChartWidget(QWidget *parent)
: QChartView(parent),
m_rubberBand(QRubberBand::Rectangle,this)
{
}
void ChartWidget::mousePressEvent(QMouseEvent *event)
{
if(event->button()!=Qt::LeftButton) return;
int margin = this->margin();
QRect rect(margin,margin,width()-2*margin,height()-2*margin);
m_origin = event->pos();
if (!rect.contains(m_origin)) return;
m_rubberBand.setGeometry(QRect(m_origin, QSize()));
m_rubberBand.show();
event->accept();
}
void ChartWidget::mouseMoveEvent(QMouseEvent *event)
{
if(m_rubberBand.isVisible())
m_rubberBand.setGeometry(QRect(m_origin, event->pos()).normalized());
}
void ChartWidget::mouseReleaseEvent(QMouseEvent *event)
{
if( event->button()==Qt::LeftButton && m_rubberBand.isVisible()) {
m_rubberBand.hide();
QRect rect = m_rubberBand.geometry();
zoomIn(rect);
event->accept();
}
if(event->button()==Qt::RightButton) {
zoomOut();
}
}
void ChartWidget::keyPressEvent(QKeyEvent *event)
{
switch (event->key()) {
case Qt::Key_Plus:
zoomIn();
break;
case Qt::Key_Minus:
zoomOut();
break;
case Qt::Key_Left:
scroll(-10,0);
break;
case Qt::Key_Right:
scroll(10,0);
break;
case Qt::Key_Up:
scroll(0,10);
break;
case Qt::Key_Down:
scroll(0,-10);
break;
default:
QGraphicsView::keyPressEvent(event);
break;
}
}