mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Only drag the tooltip panel when not zooming.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
2052e44ba1
commit
ea5353025f
2 changed files with 14 additions and 5 deletions
|
@ -144,12 +144,13 @@ void ProfileGraphicsView::wheelEvent(QWheelEvent* event)
|
|||
// Scale the view / do the zoom
|
||||
QPoint toolTipPos = mapFromScene(toolTip->pos());
|
||||
double scaleFactor = 1.15;
|
||||
if(event->delta() > 0) {
|
||||
// Zoom in
|
||||
if(event->delta() > 0 && zoomLevel <= 10) {
|
||||
scale(scaleFactor, scaleFactor);
|
||||
} else {
|
||||
zoomLevel++;
|
||||
} else if (zoomLevel >= 0) {
|
||||
// Zooming out
|
||||
scale(1.0 / scaleFactor, 1.0 / scaleFactor);
|
||||
zoomLevel--;
|
||||
}
|
||||
toolTip->setPos(mapToScene(toolTipPos).x(), mapToScene(toolTipPos).y());
|
||||
}
|
||||
|
@ -162,7 +163,9 @@ void ProfileGraphicsView::mouseMoveEvent(QMouseEvent* event)
|
|||
ensureVisible(event->pos().x(), event->pos().y(), 10, 10, 100, 100);
|
||||
toolTip->setPos(mapToScene(toolTipPos).x(), mapToScene(toolTipPos).y());
|
||||
|
||||
QGraphicsView::mouseMoveEvent(event);
|
||||
if (zoomLevel < 0){
|
||||
QGraphicsView::mouseMoveEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
bool ProfileGraphicsView::eventFilter(QObject* obj, QEvent* event)
|
||||
|
@ -192,7 +195,12 @@ void ProfileGraphicsView::plot(struct dive *d)
|
|||
{
|
||||
scene()->clear();
|
||||
|
||||
dive = d;
|
||||
if (dive != d){
|
||||
resetTransform();
|
||||
zoomLevel = 0;
|
||||
dive = d;
|
||||
}
|
||||
|
||||
if(!dive)
|
||||
return;
|
||||
|
||||
|
|
|
@ -96,6 +96,7 @@ private:
|
|||
ToolTipItem *toolTip;
|
||||
graphics_context gc;
|
||||
struct dive *dive;
|
||||
int zoomLevel;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue