subsurface/qt-ui/globe.h
Tomaz Canabrava d26f109fba Fixes Setting the dive-location via the map.
This patch adds a context menu to set the dive location
via the globe, being the dive with a coordinate or not.

It also fixes setting the dive location on edit mode.

Fixes: #315

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-02 09:44:55 -08:00

42 lines
994 B
C++

#ifndef GLOBE_H
#define GLOBE_H
#include <marble/MarbleWidget.h>
#include <marble/GeoDataCoordinates.h>
#include <marble/GeoDataDocument.h>
#include <QHash>
class KMessageWidget;
using namespace Marble;
struct dive;
class GlobeGPS : public MarbleWidget{
Q_OBJECT
public:
using MarbleWidget::centerOn;
GlobeGPS(QWidget *parent);
void reload();
void repopulateLabels();
void centerOn(struct dive* dive);
bool eventFilter(QObject*, QEvent*);
protected:
/* reimp */ void resizeEvent(QResizeEvent *event);
/* reimp */ void mousePressEvent(QMouseEvent* event);
/* reimp */ void contextMenuEvent(QContextMenuEvent*);
private:
GeoDataDocument *loadedDives;
KMessageWidget* messageWidget;
QTimer *fixZoomTimer;
int currentZoomLevel;
bool editingDiveLocation;
public slots:
void changeDiveGeoPosition(qreal lon,qreal lat,GeoDataCoordinates::Unit);
void mouseClicked(qreal lon, qreal lat, GeoDataCoordinates::Unit);
void fixZoom();
void prepareForGetDiveCoordinates();
};
#endif