Graph improvements (#500)

* Add antialiasing to graphview
* Make panning speed up/slow down with current zoom
* Made scrolling proportional to zoom level
This commit is contained in:
Xaltonon 2018-05-21 10:33:46 -07:00 committed by xarkes
parent 8ac598f992
commit 55be4efb8c
2 changed files with 16 additions and 2 deletions

View File

@ -411,6 +411,9 @@ void GraphView::paintEvent(QPaintEvent *event)
{ {
Q_UNUSED(event); Q_UNUSED(event);
QPainter p(viewport()); QPainter p(viewport());
p.setRenderHint(QPainter::Antialiasing);
int render_offset_x = -horizontalScrollBar()->value() * current_scale; int render_offset_x = -horizontalScrollBar()->value() * current_scale;
int render_offset_y = -verticalScrollBar()->value() * current_scale; int render_offset_y = -verticalScrollBar()->value() * current_scale;
int render_width = viewport()->size().width() / current_scale; int render_width = viewport()->size().width() / current_scale;
@ -861,8 +864,8 @@ void GraphView::mouseMoveEvent(QMouseEvent *event)
int y_delta = scroll_base_y - event->y(); int y_delta = scroll_base_y - event->y();
scroll_base_x = event->x(); scroll_base_x = event->x();
scroll_base_y = event->y(); scroll_base_y = event->y();
horizontalScrollBar()->setValue(horizontalScrollBar()->value() + x_delta); horizontalScrollBar()->setValue(horizontalScrollBar()->value() + x_delta * (1/current_scale));
verticalScrollBar()->setValue(verticalScrollBar()->value() + y_delta); verticalScrollBar()->setValue(verticalScrollBar()->value() + y_delta * (1/current_scale));
} }
} }
@ -903,3 +906,13 @@ void GraphView::mouseReleaseEvent(QMouseEvent *event)
viewport()->releaseMouse(); viewport()->releaseMouse();
} }
} }
void GraphView::wheelEvent(QWheelEvent *event)
{
const QPoint delta = -event->angleDelta();
int x_delta = delta.x();
int y_delta = delta.y();
horizontalScrollBar()->setValue(horizontalScrollBar()->value() + x_delta * (1/current_scale));
verticalScrollBar()->setValue(verticalScrollBar()->value() + y_delta * (1/current_scale));
event->accept();
}

View File

@ -121,6 +121,7 @@ protected:
virtual void blockHelpEvent(GraphView::GraphBlock &block, QHelpEvent *event, QPoint pos); virtual void blockHelpEvent(GraphView::GraphBlock &block, QHelpEvent *event, QPoint pos);
virtual bool helpEvent(QHelpEvent *event); virtual bool helpEvent(QHelpEvent *event);
virtual void blockTransitionedTo(GraphView::GraphBlock *to); virtual void blockTransitionedTo(GraphView::GraphBlock *to);
virtual void wheelEvent(QWheelEvent *event) override;
virtual EdgeConfiguration edgeConfiguration(GraphView::GraphBlock &from, GraphView::GraphBlock *to); virtual EdgeConfiguration edgeConfiguration(GraphView::GraphBlock &from, GraphView::GraphBlock *to);
void adjustSize(int new_width, int new_height, QPoint mouse = QPoint(0, 0)); void adjustSize(int new_width, int new_height, QPoint mouse = QPoint(0, 0));