From d0a53669d235e604ee16592aee6cfb6e4162f287 Mon Sep 17 00:00:00 2001 From: Ingvar Stepanyan Date: Mon, 12 Jul 2021 12:04:56 +0000 Subject: [PATCH] Use object keys for setting names --- api.cpp | 14 ++++++++------ ui.html | 23 ++++++++++++++++++----- 2 files changed, 26 insertions(+), 11 deletions(-) diff --git a/api.cpp b/api.cpp index d9d0b14..ed5de8d 100644 --- a/api.cpp +++ b/api.cpp @@ -74,7 +74,7 @@ class Context { GPPWidget config( GPP_CALL(CameraWidget *, gp_camera_get_config(camera.get(), _, context.get()))); - return walk_config(config.get()); + return walk_config(config.get()).second; }); } @@ -170,10 +170,11 @@ class Context { gpp_unique_ptr camera; gpp_unique_ptr context; - static val walk_config(CameraWidget *widget) { + static std::pair walk_config(CameraWidget *widget) { val result = val::object(); - result.set("name", GPP_CALL(const char *, gp_widget_get_name(widget, _))); + val name(GPP_CALL(const char *, gp_widget_get_name(widget, _))); + result.set("name", name); result.set("info", GPP_CALL(const char *, gp_widget_get_info(widget, _))); result.set("label", GPP_CALL(const char *, gp_widget_get_label(widget, _))); result.set("readonly", @@ -227,11 +228,12 @@ class Context { case GP_WIDGET_SECTION: { result.set("type", type == GP_WIDGET_WINDOW ? "window" : "section"); - val children = val::array(); + val children = val::object(); for (int i = 0, n = gp_widget_count_children(widget); i < n; i++) { auto child = GPP_CALL(CameraWidget *, gp_widget_get_child(widget, i, _)); - children.call("push", walk_config(child)); + auto kv = walk_config(child); + children.set(kv.first, kv.second); } result.set("children", children); @@ -242,7 +244,7 @@ class Context { } } - return result; + return {name, result}; } }; diff --git a/ui.html b/ui.html index d860564..bca8430 100644 --- a/ui.html +++ b/ui.html @@ -14,10 +14,23 @@ style="max-height: 100%; overflow-y: auto" > +