32 EXPECT_EQ(Utils::TopItem<>(&model),
nullptr);
33 EXPECT_EQ(Utils::TopItem<SessionItem>(&model),
nullptr);
34 EXPECT_EQ(Utils::TopItem<ToyItems::MultiLayerItem>(&model),
nullptr);
39 EXPECT_EQ(Utils::TopItem<>(&model), multilayer1);
40 EXPECT_EQ(Utils::TopItem<SessionItem>(&model), multilayer1);
41 EXPECT_EQ(Utils::TopItem<ToyItems::MultiLayerItem>(&model), multilayer1);
47 EXPECT_EQ(Utils::TopItems<>(&model).size(), 0);
48 EXPECT_EQ(Utils::TopItems<SessionItem>(&model).size(), 0);
49 EXPECT_EQ(Utils::TopItems<ToyItems::MultiLayerItem>(&model).size(), 0);
55 std::vector<SessionItem*> expected1 = {multilayer1, particle, multilayer2};
56 EXPECT_EQ(Utils::TopItems<SessionItem>(&model), expected1);
57 std::vector<ToyItems::MultiLayerItem*> expected2 = {multilayer1, multilayer2};
58 EXPECT_EQ(Utils::TopItems<ToyItems::MultiLayerItem>(&model), expected2);
64 EXPECT_EQ(Utils::FindItems<>(&model).size(), 1);
65 EXPECT_EQ(Utils::FindItems<SessionItem>(&model).size(), 1);
66 EXPECT_EQ(Utils::FindItems<ToyItems::MultiLayerItem>(&model).size(), 0);
72 std::vector<ToyItems::MultiLayerItem*> expected2 = {multilayer1, multilayer2};
73 EXPECT_EQ(Utils::FindItems<ToyItems::MultiLayerItem>(&model), expected2);
79 std::vector<ToyItems::LayerItem*> expected3 = {layer1, layer2};
80 EXPECT_EQ(Utils::FindItems<ToyItems::LayerItem>(&model), expected3);
89 auto modelCopy = Utils::CreateCopy<ToyItems::SampleModel>(model);
95 EXPECT_FALSE(layerCopy->identifier() == layer->identifier());
104 auto modelCopy = Utils::CreateClone<ToyItems::SampleModel>(model);
109 EXPECT_TRUE(layerCopy->identifier() == layer->identifier());
136 std::vector<SessionItem*> expected = {layer0, layer1, layer2};
147 expected = {layer0, layer2, layer1};
160 std::vector<SessionItem*> expected = {layer0, layer1, layer2};
171 expected = {layer1, layer0, layer2};
The main object representing an editable/displayable/serializable entity.
std::string identifier() const
Returns unique identifier.
int childrenCount() const
Returns total number of children in all tags.
void setProperty(const std::string &tag, const T &value)
Sets value to property item.
SessionItem * rootItem() const
Returns root item of the model.
T * insertItem(SessionItem *parent=nullptr, const TagRow &tagrow={})
Inserts item into given parent under given tagrow.
Represents a layer, with thickness and color, and possibly populated with particles.
static const std::string P_THICKNESS
Represents multilayer with collection of layers.
static const std::string T_LAYERS
Represents a particle, with a position, and a selection of possible shapes.
TEST_F(ModelUtilsTest, topItem)
std::unique_ptr< T > CreateCopy(const T &model)
Creates full deep copy of given model. All item's ID will be generated.
MVVM_MODEL_EXPORT void MoveDown(SessionItem *item)
Moves item down (increments row of the item). Works on children belonging to single tag.
MVVM_MODEL_EXPORT void MoveUp(SessionItem *item)
Moves item up (decrements row of the item). Works on children belonging to single tag.
std::unique_ptr< T > CreateClone(const T &model)
Creates exact clone of given model. All item's ID will be preserved.
MVVM_MODEL_EXPORT void DeleteItemFromModel(SessionItem *item)
Removes and deletes item from its model.
materialitems.h Collection of materials to populate MaterialModel.