#include <QFileDialog>
#include <QMessageBox>
#include <QMouseEvent>
+#include <QWheelEvent>
#include <QRubberBand>
#include <QRect>
#include <QString>
switch(e->button()) {
case Qt::LeftButton:
startSelecting(e);
- break;
- case Qt::RightButton:
+ e->accept();
break;
default:
+ e->ignore();
break;
}
}
{
if (rubberBand and rubberBand->isVisible()) {
rubberBand->setGeometry(QRect(bandOrigin, e->pos()).normalized());
+ e->accept();
+ } else {
+ e->ignore();
}
}
}
break;
default:
+ e->ignore();
+ return;
break;
}
-
+ e->accept();
}
void SequenceBrowser::startSelecting(QMouseEvent *e)
}
}
+void SequenceBrowser::wheelEvent(QWheelEvent *e)
+{
+ e->accept();
+ double cur_zoom = GlSeqBrowser::zoom();
+
+ // Normalize so one turn of the mouse wheel
+ // is equal to 1 step.
+ const int normalize_tick = 120;
+ // arbitrary scaling factor that seems to "work"
+ const int scaling = 50;
+ int num_steps = e->delta() / normalize_tick;
+
+ cur_zoom = pow(10, log10(cur_zoom) - ((double)num_steps/scaling));
+ emit mouseWheelZoom(cur_zoom);
+}
+
void SequenceBrowser::clearSelection()
{
GlSeqBrowser::clearSelection();