summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-10-27 20:05:45 +0300
committerIvo van Dongen <info@ivovandongen.nl>2017-10-31 10:05:40 +0200
commitd6518fb7e40fe407347155c9b780333f8d8179ae (patch)
tree70de23f3e797d2195ee462e6692e0b8b88d85b8d
parent8c1b6bdb626a00f1f48a12e3a18c83d701b6509d (diff)
downloadqtlocation-mapboxgl-d6518fb7e40fe407347155c9b780333f8d8179ae.tar.gz
[core] map snapshotter - add attributions to snapshotter callback
-rw-r--r--platform/default/mbgl/map/map_snapshotter.cpp11
-rw-r--r--platform/default/mbgl/map/map_snapshotter.hpp4
2 files changed, 14 insertions, 1 deletions
diff --git a/platform/default/mbgl/map/map_snapshotter.cpp b/platform/default/mbgl/map/map_snapshotter.cpp
index 3e930c31f1..7b4ec5913b 100644
--- a/platform/default/mbgl/map/map_snapshotter.cpp
+++ b/platform/default/mbgl/map/map_snapshotter.cpp
@@ -76,10 +76,21 @@ void MapSnapshotter::Impl::snapshot(ActorRef<MapSnapshotter::Callback> callback)
return transform.latLngToScreenCoordinate(unwrappedLatLng);
}};
+ // Collect all source attributions
+ std::vector<std::string> attributions;
+ for (auto source : map.getStyle().getSources()) {
+ auto attribution = source->getAttribution();
+ if (attribution) {
+ attributions.push_back(*attribution);
+ }
+ }
+
+ // Invoke callback
callback.invoke(
&MapSnapshotter::Callback::operator(),
error,
error ? PremultipliedImage() : frontend.readStillImage(),
+ std::move(attributions),
std::move(pointForFn)
);
});
diff --git a/platform/default/mbgl/map/map_snapshotter.hpp b/platform/default/mbgl/map/map_snapshotter.hpp
index b3cfb3058f..985396e5a3 100644
--- a/platform/default/mbgl/map/map_snapshotter.hpp
+++ b/platform/default/mbgl/map/map_snapshotter.hpp
@@ -8,6 +8,7 @@
#include <exception>
#include <memory>
#include <string>
+#include <vector>
#include <functional>
namespace mbgl {
@@ -48,7 +49,8 @@ public:
LatLngBounds getRegion() const;
using PointForFn = std::function<ScreenCoordinate (const LatLng&)>;
- using Callback = std::function<void (std::exception_ptr, PremultipliedImage, PointForFn)>;
+ using Attributions = std::vector<std::string>;
+ using Callback = std::function<void (std::exception_ptr, PremultipliedImage, Attributions, PointForFn)>;
void snapshot(ActorRef<Callback>);
private: