From 0f68d936dfe68c4ec6737ad22f6cd81ec8ab5516 Mon Sep 17 00:00:00 2001 From: Charles Dang Date: Thu, 3 Dec 2020 23:50:43 +1100 Subject: [PATCH] GUI2/Stacked Widget: no need to keep grid builders in shared_ptrs The stacked_widget builder's grid builder stack is only passed to stacked_widget::finalize. As of 4ada05a2cf74227ec460010db52acf525dddfcf6, the builder_grid is now passed by reference to the generator's create functions rather than passing another shared_ptr. --- src/gui/widgets/stacked_widget.cpp | 9 ++++----- src/gui/widgets/stacked_widget.hpp | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/gui/widgets/stacked_widget.cpp b/src/gui/widgets/stacked_widget.cpp index 0a40e8532f1..38fc29c0895 100644 --- a/src/gui/widgets/stacked_widget.cpp +++ b/src/gui/widgets/stacked_widget.cpp @@ -82,14 +82,13 @@ void stacked_widget::layout_children() } } -void -stacked_widget::finalize(std::vector widget_builder) +void stacked_widget::finalize(const std::vector& widget_builders) { assert(generator_); string_map empty_data; - for(const auto & builder : widget_builder) + for(const auto & builder : widget_builders) { - generator_->create_item(-1, *builder, empty_data, nullptr); + generator_->create_item(-1, builder, empty_data, nullptr); } swap_grid(nullptr, &get_grid(), generator_, "_content_grid"); @@ -278,7 +277,7 @@ builder_stacked_widget::builder_stacked_widget(const config& real_cfg) VALIDATE(cfg.has_child("layer"), _("No stack layers defined.")); for(const auto & layer : cfg.child_range("layer")) { - stack.emplace_back(std::make_shared(layer)); + stack.emplace_back(layer); } } diff --git a/src/gui/widgets/stacked_widget.hpp b/src/gui/widgets/stacked_widget.hpp index 5a1db6e0ca5..538692bdece 100644 --- a/src/gui/widgets/stacked_widget.hpp +++ b/src/gui/widgets/stacked_widget.hpp @@ -123,7 +123,7 @@ private: * @param widget_builder The builder to build the contents of the * widget. */ - void finalize(std::vector widget_builder); + void finalize(const std::vector& widget_builders); /** * Contains a pointer to the generator. @@ -208,7 +208,7 @@ struct builder_stacked_widget : public builder_styled_widget widget* build() const; /** The builders for all layers of the stack .*/ - std::vector stack; + std::vector stack; }; } // namespace implementation