##// END OF EJS Templates
Fixes the refresh of data that was not working all the time
Fixes the refresh of data that was not working all the time

File last commit:

r1040:d45cab418d5a
r1270:c436df4b66de
Show More
DataSourceItemBuilder.cpp
73 lines | 1.9 KiB | text/x-c | CppLexer
/ core / tests / DataSource / DataSourceItemBuilder.cpp
#include "DataSourceItemBuilder.h"
DataSourceItemBuilder &DataSourceItemBuilder::root(const QString &name)
{
m_Root = std::make_shared<DataSourceItem>(DataSourceItemType::NODE, name);
m_Items.push(m_Root.get());
return *this;
}
DataSourceItemBuilder &DataSourceItemBuilder::root(QVariantHash data)
{
m_Root = std::make_shared<DataSourceItem>(DataSourceItemType::NODE, data);
m_Items.push(m_Root.get());
return *this;
}
DataSourceItemBuilder &DataSourceItemBuilder::node(const QString &name)
{
return append(DataSourceItemType::NODE, name);
}
DataSourceItemBuilder &DataSourceItemBuilder::node(QVariantHash data)
{
return append(DataSourceItemType::NODE, std::move(data));
}
DataSourceItemBuilder &DataSourceItemBuilder::product(const QString &name)
{
return append(DataSourceItemType::PRODUCT, name);
}
DataSourceItemBuilder &DataSourceItemBuilder::product(QVariantHash data)
{
return append(DataSourceItemType::PRODUCT, std::move(data));
}
DataSourceItemBuilder &DataSourceItemBuilder::component(const QString &name)
{
return append(DataSourceItemType::COMPONENT, name);
}
DataSourceItemBuilder &DataSourceItemBuilder::component(QVariantHash data)
{
return append(DataSourceItemType::COMPONENT, std::move(data));
}
DataSourceItemBuilder &DataSourceItemBuilder::end()
{
m_Items.pop();
return *this;
}
std::shared_ptr<DataSourceItem> DataSourceItemBuilder::build()
{
return m_Root;
}
DataSourceItemBuilder &DataSourceItemBuilder::append(DataSourceItemType type, const QString &name)
{
append(type, QVariantHash{{DataSourceItem::NAME_DATA_KEY, name}});
return *this;
}
DataSourceItemBuilder &DataSourceItemBuilder::append(DataSourceItemType type, QVariantHash data)
{
auto parentItem = m_Items.top();
auto insertIndex = parentItem->childCount();
parentItem->appendChild(std::make_unique<DataSourceItem>(type, std::move(data)));
m_Items.push(parentItem->child(insertIndex));
return *this;
}