- const vector< shared_ptr<Trace> > traces(_view.get_traces());
- BOOST_FOREACH(shared_ptr<Trace> t, traces) {
- assert(t);
- connect(t.get(), SIGNAL(visibility_changed()),
- this, SLOT(update()));
+ assert(e);
+
+ if (e->orientation() == Qt::Vertical) {
+ if (e->modifiers() & Qt::ControlModifier) {
+ // Vertical scrolling with the control key pressed
+ // is intrepretted as vertical scrolling
+ view_.set_v_offset(-view_.owner_visual_v_offset() -
+ (e->delta() * height()) / (8 * 120));
+ } else {
+ // Vertical scrolling is interpreted as zooming in/out
+ view_.zoom(e->delta() / 120, e->x());
+ }
+ } else if (e->orientation() == Qt::Horizontal) {
+ // Horizontal scrolling is interpreted as moving left/right
+ view_.set_scale_offset(view_.scale(),
+ e->delta() * view_.scale() + view_.offset());