1 #pragma once
2 
3 #include "qmapboxgl.hpp"
4 
5 #include <mbgl/map/map_observer.hpp>
6 #include <mbgl/style/style.hpp>
7 
8 #include <QObject>
9 
10 #include <exception>
11 #include <memory>
12 
13 class QMapboxGLPrivate;
14 
15 class QMapboxGLMapObserver : public QObject, public mbgl::MapObserver
16 {
17     Q_OBJECT
18 
19 public:
20     explicit QMapboxGLMapObserver(QMapboxGLPrivate *);
21     virtual ~QMapboxGLMapObserver();
22 
23     // mbgl::MapObserver implementation.
24     void onCameraWillChange(mbgl::MapObserver::CameraChangeMode) final;
25     void onCameraIsChanging() final;
26     void onCameraDidChange(mbgl::MapObserver::CameraChangeMode) final;
27     void onWillStartLoadingMap() final;
28     void onDidFinishLoadingMap() final;
29     void onDidFailLoadingMap(std::exception_ptr) final;
30     void onWillStartRenderingFrame() final;
31     void onDidFinishRenderingFrame(mbgl::MapObserver::RenderMode) final;
32     void onWillStartRenderingMap() final;
33     void onDidFinishRenderingMap(mbgl::MapObserver::RenderMode) final;
34     void onDidFinishLoadingStyle() final;
35     void onSourceChanged(mbgl::style::Source&) final;
36 
37 signals:
38     void mapChanged(QMapboxGL::MapChange);
39     void mapLoadingFailed(QMapboxGL::MapLoadingFailure, const QString &reason);
40     void copyrightsChanged(const QString &copyrightsHtml);
41 
42 private:
43     Q_DISABLE_COPY(QMapboxGLMapObserver)
44 
45     QMapboxGLPrivate *d_ptr;
46 };
47