layout: remove widget by raw ptr

This commit is contained in:
Andrea Blankenstijn 2022-02-17 18:34:44 +01:00
parent d5b59a67ac
commit 59d4612a61
2 changed files with 7 additions and 1 deletions

View File

@ -47,9 +47,14 @@ namespace bwidgets
}
void remove_widget(const std::shared_ptr<Widget>& widget) override
{
remove_widget(widget.get());
}
void remove_widget(const Widget* widget) override
{
for (auto i = _widgets.cbegin(); i != _widgets.cend(); i++) {
if (*i == widget) {
if ((*i).get() == widget) {
_widgets.erase(i);
break;
}

View File

@ -16,6 +16,7 @@ namespace bwidgets
virtual void for_widgets(const std::function<void(Widget*)>&) = 0;
virtual void for_widgets(const std::function<void(const Widget*)>&) const = 0;
virtual void remove_widget(const std::shared_ptr<Widget>&) = 0;
virtual void remove_widget(const Widget*) = 0;
};
}