mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Fix marble losting track of zoom level
Marble had a bug on the way it treats zoom level, there's no way for it to find out if it's user-input or algorithm input and when a user clicks on a dive, it spins and centers on it, but if the user clicks on another dive when it's still spinning, it will get the zoom in the actual state ( spinning, usually zoom is far away from the first position ) and continue the spin to the other position. This patch works by saving the first location and triggering a helper function with a timer that will only update the zoom level if the timer is not active ( and thus, will not get the bugged zoom state set by the animation. ). Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
579d1cb915
commit
8f623c2c72
2 changed files with 22 additions and 3 deletions
|
@ -13,25 +13,28 @@ struct dive;
|
|||
|
||||
class GlobeGPS : public MarbleWidget{
|
||||
Q_OBJECT
|
||||
void prepareForGetDiveCoordinates(struct dive* dive);
|
||||
public:
|
||||
using MarbleWidget::centerOn;
|
||||
GlobeGPS(QWidget *parent);
|
||||
void reload();
|
||||
void centerOn(struct dive* dive);
|
||||
void resizeEvent(QResizeEvent *event);
|
||||
|
||||
protected:
|
||||
virtual void mousePressEvent(QMouseEvent* event);
|
||||
/* reimp */ void resizeEvent(QResizeEvent *event);
|
||||
/* reimp */ void mousePressEvent(QMouseEvent* event);
|
||||
|
||||
private:
|
||||
void prepareForGetDiveCoordinates(struct dive* dive);
|
||||
GeoDataDocument *loadedDives;
|
||||
struct dive* editingDiveCoords;
|
||||
KMessageWidget* messageWidget;
|
||||
QTimer *fixZoomTimer;
|
||||
int currentZoomLevel;
|
||||
|
||||
public slots:
|
||||
void changeDiveGeoPosition(qreal lon,qreal lat,GeoDataCoordinates::Unit);
|
||||
void mouseClicked(qreal lon, qreal lat, GeoDataCoordinates::Unit);
|
||||
void fixZoom();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue