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.
This commit is contained in:
Charles Dang 2020-12-03 23:50:43 +11:00
parent 4ada05a2cf
commit 0f68d936df
2 changed files with 6 additions and 7 deletions

View File

@ -82,14 +82,13 @@ void stacked_widget::layout_children()
}
}
void
stacked_widget::finalize(std::vector<builder_grid_const_ptr> widget_builder)
void stacked_widget::finalize(const std::vector<builder_grid>& 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<builder_grid>(layer));
stack.emplace_back(layer);
}
}

View File

@ -123,7 +123,7 @@ private:
* @param widget_builder The builder to build the contents of the
* widget.
*/
void finalize(std::vector<builder_grid_const_ptr> widget_builder);
void finalize(const std::vector<builder_grid>& 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<builder_grid_const_ptr> stack;
std::vector<builder_grid> stack;
};
} // namespace implementation