X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;ds=inline;f=pv%2Fview%2Frowitemowner.cpp;h=d6150f89a90e5db497bf6f2eae4e5a09e7b69e80;hb=68b21a71797051fb48ed272bc2a6b4893bdbf517;hp=3ef2782eb3ec62db7c2c1b46bd1a33b5e41edb38;hpb=bd9a1f175057487cff3cb3cc62bc9595e19945be;p=pulseview.git diff --git a/pv/view/rowitemowner.cpp b/pv/view/rowitemowner.cpp index 3ef2782e..d6150f89 100644 --- a/pv/view/rowitemowner.cpp +++ b/pv/view/rowitemowner.cpp @@ -18,4 +18,46 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + +#include "rowitem.h" #include "rowitemowner.h" + +using std::shared_ptr; +using std::vector; + +namespace pv { +namespace view { + +const vector< shared_ptr >& RowItemOwner::child_items() const +{ + return _items; +} + +void RowItemOwner::clear_child_items() +{ + for (auto &i : _items) { + assert(i->owner() == this); + i->set_owner(nullptr); + } + _items.clear(); +} + +void RowItemOwner::add_child_item(std::shared_ptr item) +{ + assert(!item->owner()); + item->set_owner(this); + _items.push_back(item); +} + +void RowItemOwner::remove_child_item(std::shared_ptr item) +{ + assert(item->owner() == this); + item->set_owner(nullptr); + auto iter = std::find(_items.begin(), _items.end(), item); + assert(iter != _items.end()); + _items.erase(iter); +} + +} // view +} // pv