Radar Product Model population

This commit is contained in:
Dan Paulat 2022-09-21 22:28:24 -05:00
parent 4c4c93cad1
commit efc6dc1413
5 changed files with 120 additions and 21 deletions

View file

@ -28,6 +28,11 @@ TreeItem::TreeItem(const std::vector<QVariant>& data, TreeItem* parent) :
{
}
TreeItem::TreeItem(std::initializer_list<QVariant> data, TreeItem* parent) :
TreeItem(std::vector<QVariant> {data}, parent)
{
}
TreeItem::~TreeItem() {}
TreeItem::TreeItem(TreeItem&&) noexcept = default;
@ -39,6 +44,24 @@ void TreeItem::AppendChild(TreeItem* item)
p->childItems_.push_back(item);
}
TreeItem* TreeItem::FindChild(int column, const QVariant& data)
{
auto it = std::find_if(p->childItems_.begin(),
p->childItems_.end(),
[&](auto& item) {
return (column < item->column_count() &&
item->data(column) == data);
});
TreeItem* item = nullptr;
if (it != p->childItems_.end())
{
item = *it;
}
return item;
}
const TreeItem* TreeItem::child(int row) const
{
const TreeItem* item = nullptr;
@ -51,6 +74,23 @@ const TreeItem* TreeItem::child(int row) const
return item;
}
TreeItem* TreeItem::child(int row)
{
TreeItem* item = nullptr;
if (0 <= row && row < p->childItems_.size())
{
item = p->childItems_[row];
}
return item;
}
std::vector<TreeItem*> TreeItem::children()
{
return p->childItems_;
}
int TreeItem::child_count() const
{
return static_cast<int>(p->childItems_.size());