diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index a55057678..5702fb6b6 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -41,6 +41,7 @@ NodeView::NodeView(QWidget *parent) : connect(this, &NodeView::customContextMenuRequested, this, &NodeView::ShowContextMenu); setMouseTracking(true); + setRenderHint(QPainter::Antialiasing); } NodeView::~NodeView() @@ -273,6 +274,18 @@ void NodeView::mouseMoveEvent(QMouseEvent *event) } } +void NodeView::wheelEvent(QWheelEvent *event) +{ + if (event->modifiers() & Qt::ControlModifier) { + // FIXME: Hardcoded divider (0.001) + qreal multiplier = 1.0 + (static_cast(event->delta()) * 0.001); + + scale(multiplier, multiplier); + } else { + QWidget::wheelEvent(event); + } +} + void NodeView::SceneSelectionChangedSlot() { emit SelectionChanged(scene_.GetSelectedNodes()); diff --git a/app/widget/nodeview/nodeview.h b/app/widget/nodeview/nodeview.h index 7811ae4bb..d566d3be6 100644 --- a/app/widget/nodeview/nodeview.h +++ b/app/widget/nodeview/nodeview.h @@ -73,6 +73,8 @@ protected: virtual void mouseMoveEvent(QMouseEvent *event) override; + virtual void wheelEvent(QWheelEvent* event) override; + private: void PlaceNode(NodeViewItem* n, const QPointF& pos);