diff --git a/qad/blockview/blockview.cpp b/qad/blockview/blockview.cpp index 6c34863..a14e92e 100644 --- a/qad/blockview/blockview.cpp +++ b/qad/blockview/blockview.cpp @@ -28,7 +28,7 @@ BlockView::~BlockView() { void BlockView::_init() { grid_visible = grid_snap = pm_connect = navigation = m_connect = m_trace_with_buses = prev_tcb = minimap = true; - mm_drag = moved = new_branch = new_bus = mm_cancel = iconnect = mm_copy = m_pin_mc = mm_thumb = move_bus_point = false; + mm_drag = moved = new_branch = new_bus = mm_cancel = iconnect = mm_copy = m_pin_mc = mm_thumb = move_bus_point = wheel_zoom = false; match_bus = bus_from = 0; mm_ci = 0; hpin = 0; @@ -638,7 +638,7 @@ void BlockView::timerEvent(QTimerEvent * e) { void BlockView::wheelEvent(QWheelEvent * e) { if (!navigation) return; - if (e->modifiers().testFlag(Qt::ControlModifier)) { + if (wheel_zoom || e->modifiers().testFlag(Qt::ControlModifier)) { double scl = 1. - e->delta() / 500.; //scale(scl, scl); if (!is_nav_anim || (nav_anim.state() != QPropertyAnimation::Running)) @@ -654,7 +654,7 @@ void BlockView::wheelEvent(QWheelEvent * e) { animateNav(r); return; } - QGraphicsView::wheelEvent(e); + if (!wheel_zoom) QGraphicsView::wheelEvent(e); } diff --git a/qad/blockview/blockview.h b/qad/blockview/blockview.h index fadf324..22d19f7 100644 --- a/qad/blockview/blockview.h +++ b/qad/blockview/blockview.h @@ -49,6 +49,7 @@ class BlockView: public QGraphicsView Q_PROPERTY(bool traceConsiderBuses READ isTraceConsiderBuses WRITE setTraceConsiderBuses) Q_PROPERTY(bool pinMulticonnect READ isPinMulticonnectEnabled WRITE setPinMulticonnectEnabled) Q_PROPERTY(bool miniMap READ isMiniMapEnabled WRITE setMiniMapEnabled) + Q_PROPERTY(bool zoomWheelOnly READ isZoomWheelOnly WRITE setZoomWheelOnly) Q_PROPERTY(double _thumb READ _thumb WRITE _setThumb DESIGNABLE false SCRIPTABLE false) Q_PROPERTY(QRectF _nav READ _nav WRITE _setNav DESIGNABLE false SCRIPTABLE false) @@ -75,6 +76,7 @@ public: bool isTraceConsiderBuses() const {return m_trace_with_buses;} bool isPinMulticonnectEnabled() const {return m_pin_mc;} bool isMiniMapEnabled() const {return minimap;} + bool isZoomWheelOnly() const {return wheel_zoom;} double gridStep() const {return grid_step;} double gridPointsWidth() const {return grid_points;} SelectionMode selectionMode() const {return smode;} @@ -183,7 +185,7 @@ protected: QPropertyAnimation thumb_anim, nav_anim; int timer_thumb, thumb_hide_delay, thick; bool mm_drag, new_bus, new_branch, moved, mm_cancel, iconnect, mm_copy, mm_thumb, ae_enabled, is_nav_anim, is_block_anim, move_bus_point; - bool grid_visible, grid_snap, pm_connect, navigation, m_connect, m_trace_with_buses, m_pin_mc, minimap, prev_tcb; + bool grid_visible, grid_snap, pm_connect, navigation, m_connect, m_trace_with_buses, m_pin_mc, minimap, prev_tcb, wheel_zoom; bool nav_prev_aa, nav_prev_imaa, nav_prev_grid; double grid_step, grid_points, cur_scl, _talpha, thumb_scl; @@ -220,6 +222,7 @@ public slots: void setTraceConsiderBuses(bool on) {m_trace_with_buses = on;} void setPinMulticonnectEnabled(bool on) {m_pin_mc = on;} void setMiniMapEnabled(bool on) {minimap = on;} + void setZoomWheelOnly(bool on) {wheel_zoom = on;} void zoom(double factor); void zoomIn() {zoom(1.2);}