40 auto command = std::make_unique<RemoveItemCommand>(model.
rootItem(),
TagRow{
"", 0});
43 EXPECT_EQ(std::get<bool>(command->result()),
true);
45 EXPECT_FALSE(command->isObsolete());
49 EXPECT_FALSE(command->isObsolete());
52 EXPECT_EQ(restored->identifier(), item_identifier);
68 auto command = std::make_unique<RemoveItemCommand>(parent,
TagRow{
"", 0});
72 EXPECT_FALSE(command->isObsolete());
73 EXPECT_EQ(std::get<bool>(command->result()),
true);
74 EXPECT_EQ(parent->childrenCount(), 1);
78 EXPECT_FALSE(command->isObsolete());
79 EXPECT_EQ(parent->childrenCount(), 2);
81 EXPECT_EQ(restored->identifier(), child1_identifier);
84 EXPECT_EQ(restored->data<
double>(), 42.0);
96 auto parent_identifier = parent->identifier();
97 auto child1_identifier = child1->identifier();
100 auto command = std::make_unique<RemoveItemCommand>(model.
rootItem(),
TagRow{
"", 0});
102 EXPECT_FALSE(command->isObsolete());
105 EXPECT_EQ(std::get<bool>(command->result()),
true);
110 EXPECT_FALSE(command->isObsolete());
115 EXPECT_EQ(restored_parent->identifier(), parent_identifier);
116 EXPECT_EQ(restored_child->identifier(), child1_identifier);
119 EXPECT_EQ(restored_child->data<
double>(), 42.0);
140 auto parent_identifier = parent->
identifier();
141 auto child1_identifier = child1->identifier();
142 auto child2_identifier = child2->identifier();
143 auto child3_identifier = child3->identifier();
146 auto command = std::make_unique<RemoveItemCommand>(parent,
TagRow{
"tag1", 1});
150 EXPECT_FALSE(command->isObsolete());
151 EXPECT_EQ(std::get<bool>(command->result()),
true);
156 EXPECT_FALSE(command->isObsolete());
161 EXPECT_EQ(restored_parent->identifier(), parent_identifier);
162 EXPECT_EQ(restored_child2->identifier(), child2_identifier);
165 EXPECT_EQ(restored_child2->data<
double>(), 42.0);
176 auto command = std::make_unique<RemoveItemCommand>(parent,
TagRow{
"thickness", 0});
179 EXPECT_TRUE(command->isObsolete());
180 EXPECT_EQ(std::get<bool>(command->result()),
false);
Complex item holding mixed SessionItem types (single properties and other CompountItems).
T * addProperty(const std::string &name)
Adds property item of given type.
The main object representing an editable/displayable/serializable entity.
std::string identifier() const
Returns unique identifier.
void registerTag(const TagInfo &tagInfo, bool set_as_default=false)
Registers tag to hold items under given name.
bool setData(const T &value, int role=ItemDataRole::DATA, bool direct=false)
Sets data for a given role.
int childrenCount() const
Returns total number of children in all tags.
Main class to hold hierarchy of SessionItem objects.
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.
static TagInfo universalTag(std::string name, std::vector< std::string > modelTypes={})
Constructs universal tag intended for unlimited amount of various items.
Aggregate to hold (tag, row) information for SessionModel.
MVVM_MODEL_EXPORT SessionItem * ChildAt(const SessionItem *parent, int index)
Returns child at given index of parent.
materialitems.h Collection of materials to populate MaterialModel.
TEST_F(RemoveItemCommandTest, removeAtCommand)