Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
[android][node][qt] Update platform code for style::Layer::setProperty()
Browse files Browse the repository at this point in the history
  • Loading branch information
pozdnyakov committed Dec 3, 2019
1 parent 684000f commit 5d46cd6
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 60 deletions.
28 changes: 11 additions & 17 deletions platform/android/src/style/layers/layer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,18 +91,10 @@ namespace android {
return layer;
}

void Layer::setLayoutProperty(jni::JNIEnv& env, const jni::String& jname, const jni::Object<>& jvalue) {
void Layer::setProperty(jni::JNIEnv& env, const jni::String& jname, const jni::Object<>& jvalue) {
// Convert and set property
optional<mbgl::style::conversion::Error> error = layer.setLayoutProperty(jni::Make<std::string>(env, jname), Value(env, jvalue));
if (error) {
mbgl::Log::Error(mbgl::Event::JNI, "Error setting property: " + jni::Make<std::string>(env, jname) + " " + error->message);
return;
}
}

void Layer::setPaintProperty(jni::JNIEnv& env, const jni::String& jname, const jni::Object<>& jvalue) {
// Convert and set property
optional<mbgl::style::conversion::Error> error = layer.setPaintProperty(jni::Make<std::string>(env, jname), Value(env, jvalue));
optional<mbgl::style::conversion::Error> error =
layer.setProperty(jni::Make<std::string>(env, jname), Value(env, jvalue));
if (error) {
mbgl::Log::Error(mbgl::Event::JNI, "Error setting property: " + jni::Make<std::string>(env, jname) + " " + error->message);
return;
Expand Down Expand Up @@ -176,10 +168,14 @@ namespace android {
#define METHOD(MethodPtr, name) jni::MakeNativePeerMethod<decltype(MethodPtr), (MethodPtr)>(name)

// Register the peer
jni::RegisterNativePeer<Layer>(env, javaClass, "nativePtr",
jni::RegisterNativePeer<Layer>(
env,
javaClass,
"nativePtr",
METHOD(&Layer::getId, "nativeGetId"),
METHOD(&Layer::setLayoutProperty, "nativeSetLayoutProperty"),
METHOD(&Layer::setPaintProperty, "nativeSetPaintProperty"),
METHOD(&Layer::setProperty,
"nativeSetLayoutProperty"), // TODO : Export only nativeSetProperty() when #15970 lands.
METHOD(&Layer::setProperty, "nativeSetPaintProperty"),
METHOD(&Layer::setFilter, "nativeSetFilter"),
METHOD(&Layer::getFilter, "nativeGetFilter"),
METHOD(&Layer::setSourceLayer, "nativeSetSourceLayer"),
Expand All @@ -189,9 +185,7 @@ namespace android {
METHOD(&Layer::getMaxZoom, "nativeGetMaxZoom"),
METHOD(&Layer::setMinZoom, "nativeSetMinZoom"),
METHOD(&Layer::setMaxZoom, "nativeSetMaxZoom"),
METHOD(&Layer::getVisibility, "nativeGetVisibility")
);

METHOD(&Layer::getVisibility, "nativeGetVisibility"));
}

} // namespace android
Expand Down
4 changes: 1 addition & 3 deletions platform/android/src/style/layers/layer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,7 @@ class Layer {

style::Layer& get();

void setLayoutProperty(jni::JNIEnv&, const jni::String&, const jni::Object<>& value);

void setPaintProperty(jni::JNIEnv&, const jni::String&, const jni::Object<>& value);
void setProperty(jni::JNIEnv&, const jni::String&, const jni::Object<>& value);

// Zoom

Expand Down
40 changes: 4 additions & 36 deletions platform/node/src/node_map.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -106,8 +106,8 @@ ParseError)JS").ToLocalChecked()).ToLocalChecked();
Nan::SetPrototypeMethod(tpl, "addImage", AddImage);
Nan::SetPrototypeMethod(tpl, "removeImage", RemoveImage);
Nan::SetPrototypeMethod(tpl, "setLayerZoomRange", SetLayerZoomRange);
Nan::SetPrototypeMethod(tpl, "setLayoutProperty", SetLayoutProperty);
Nan::SetPrototypeMethod(tpl, "setPaintProperty", SetPaintProperty);
Nan::SetPrototypeMethod(tpl, "setLayoutProperty", SetLayerProperty);
Nan::SetPrototypeMethod(tpl, "setPaintProperty", SetLayerProperty);
Nan::SetPrototypeMethod(tpl, "setFilter", SetFilter);
Nan::SetPrototypeMethod(tpl, "setCenter", SetCenter);
Nan::SetPrototypeMethod(tpl, "setZoom", SetZoom);
Expand Down Expand Up @@ -850,7 +850,7 @@ void NodeMap::SetLayerZoomRange(const Nan::FunctionCallbackInfo<v8::Value>& info
layer->setMaxZoom(info[2]->NumberValue());
}

void NodeMap::SetLayoutProperty(const Nan::FunctionCallbackInfo<v8::Value>& info) {
void NodeMap::SetLayerProperty(const Nan::FunctionCallbackInfo<v8::Value>& info) {
using namespace mbgl::style;
using namespace mbgl::style::conversion;

Expand All @@ -874,39 +874,7 @@ void NodeMap::SetLayoutProperty(const Nan::FunctionCallbackInfo<v8::Value>& info
return Nan::ThrowTypeError("Second argument must be a string");
}

mbgl::optional<Error> error = layer->setLayoutProperty(*Nan::Utf8String(info[1]), Convertible(info[2]));
if (error) {
return Nan::ThrowTypeError(error->message.c_str());
}

info.GetReturnValue().SetUndefined();
}

void NodeMap::SetPaintProperty(const Nan::FunctionCallbackInfo<v8::Value>& info) {
using namespace mbgl::style;
using namespace mbgl::style::conversion;

auto nodeMap = Nan::ObjectWrap::Unwrap<NodeMap>(info.Holder());
if (!nodeMap->map) return Nan::ThrowError(releasedMessage());

if (info.Length() < 3) {
return Nan::ThrowTypeError("Three arguments required");
}

if (!info[0]->IsString()) {
return Nan::ThrowTypeError("First argument must be a string");
}

mbgl::style::Layer* layer = nodeMap->map->getStyle().getLayer(*Nan::Utf8String(info[0]));
if (!layer) {
return Nan::ThrowTypeError("layer not found");
}

if (!info[1]->IsString()) {
return Nan::ThrowTypeError("Second argument must be a string");
}

mbgl::optional<Error> error = layer->setPaintProperty(*Nan::Utf8String(info[1]), Convertible(info[2]));
mbgl::optional<Error> error = layer->setProperty(*Nan::Utf8String(info[1]), Convertible(info[2]));
if (error) {
return Nan::ThrowTypeError(error->message.c_str());
}
Expand Down
3 changes: 1 addition & 2 deletions platform/node/src/node_map.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ class NodeMap : public Nan::ObjectWrap {
static void AddImage(const Nan::FunctionCallbackInfo<v8::Value>&);
static void RemoveImage(const Nan::FunctionCallbackInfo<v8::Value>&);
static void SetLayerZoomRange(const Nan::FunctionCallbackInfo<v8::Value>&);
static void SetLayoutProperty(const Nan::FunctionCallbackInfo<v8::Value>&);
static void SetPaintProperty(const Nan::FunctionCallbackInfo<v8::Value>&);
static void SetLayerProperty(const Nan::FunctionCallbackInfo<v8::Value>&);
static void SetFilter(const Nan::FunctionCallbackInfo<v8::Value>&);
static void SetCenter(const Nan::FunctionCallbackInfo<v8::Value>&);
static void SetZoom(const Nan::FunctionCallbackInfo<v8::Value>&);
Expand Down
4 changes: 2 additions & 2 deletions platform/qt/src/qmapboxgl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1011,7 +1011,7 @@ void QMapboxGL::removeAnnotation(QMapbox::AnnotationID id)
*/
bool QMapboxGL::setLayoutProperty(const QString& layer, const QString& propertyName, const QVariant& value)
{
return d_ptr->setProperty(&mbgl::style::Layer::setLayoutProperty, layer, propertyName, value);
return d_ptr->setProperty(&mbgl::style::Layer::setProperty, layer, propertyName, value);
}

/*!
Expand Down Expand Up @@ -1071,7 +1071,7 @@ bool QMapboxGL::setLayoutProperty(const QString& layer, const QString& propertyN

bool QMapboxGL::setPaintProperty(const QString& layer, const QString& propertyName, const QVariant& value)
{
return d_ptr->setProperty(&mbgl::style::Layer::setPaintProperty, layer, propertyName, value);
return d_ptr->setProperty(&mbgl::style::Layer::setProperty, layer, propertyName, value);
}

/*!
Expand Down

0 comments on commit 5d46cd6

Please sign in to comment.