##// END OF EJS Templates
Updates model after an event has been created through the colored zone
Updates model after an event has been created through the colored zone

File last commit:

r1080:d45cab418d5a
r1286:073d4af7c849
Show More
DataSourceItemBuilder.cpp
73 lines | 1.9 KiB | text/x-c | CppLexer
/ core / tests / DataSource / DataSourceItemBuilder.cpp
Alexandre Leroux
Creates builder used to facilitate creation of items (for test cases)
r1080 #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;
}