We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent dd51952 commit cfcbb77Copy full SHA for cfcbb77
3 files changed
src/scratch/target.cpp
@@ -42,6 +42,8 @@ int Target::addVariable(std::shared_ptr<Variable> variable)
42
return it - impl->variables.begin();
43
44
impl->variables.push_back(variable);
45
+ variable->setTarget(this);
46
+
47
return impl->variables.size() - 1;
48
}
49
@@ -93,6 +95,8 @@ int Target::addList(std::shared_ptr<List> list)
93
95
return it - impl->lists.begin();
94
96
97
impl->lists.push_back(list);
98
+ list->setTarget(this);
99
100
return impl->lists.size() - 1;
101
102
test/scratch_classes/sprite_test.cpp
@@ -69,6 +69,7 @@ TEST(SpriteTest, Clone)
69
ASSERT_EQ(clone->variableAt(1)->id(), "b");
70
ASSERT_EQ(clone->variableAt(1)->name(), "var2");
71
ASSERT_EQ(clone->variableAt(1)->value().toString(), "world");
72
+ ASSERT_EQ(clone->variableAt(1)->target(), clone);
73
74
ASSERT_EQ(clone->lists().size(), 2);
75
ASSERT_NE(clone->lists(), root->lists());
@@ -78,6 +79,7 @@ TEST(SpriteTest, Clone)
78
79
ASSERT_EQ(clone->listAt(1)->id(), "d");
80
ASSERT_EQ(clone->listAt(1)->name(), "list2");
81
ASSERT_EQ(*clone->listAt(1), std::deque<Value>({ "test" }));
82
+ ASSERT_EQ(clone->listAt(1)->target(), clone);
83
84
ASSERT_EQ(clone->currentCostume(), 2);
85
ASSERT_EQ(clone->layerOrder(), 5);
test/scratch_classes/target_test.cpp
@@ -38,6 +38,10 @@ TEST(TargetTest, Variables)
38
ASSERT_EQ(target.addVariable(v3), 2);
39
ASSERT_EQ(target.addVariable(v2), 1); // add existing variable
40
41
+ ASSERT_EQ(v1->target(), &target);
+ ASSERT_EQ(v2->target(), &target);
+ ASSERT_EQ(v3->target(), &target);
ASSERT_EQ(target.variables(), std::vector<std::shared_ptr<Variable>>({ v1, v2, v3 }));
ASSERT_EQ(target.variableAt(0), v1);
ASSERT_EQ(target.variableAt(1), v2);
@@ -68,6 +72,10 @@ TEST(TargetTest, Lists)
68
ASSERT_EQ(target.addList(l3), 2);
ASSERT_EQ(target.addList(l2), 1); // add existing list
+ ASSERT_EQ(l1->target(), &target);
76
+ ASSERT_EQ(l2->target(), &target);
77
+ ASSERT_EQ(l3->target(), &target);
ASSERT_EQ(target.lists(), std::vector<std::shared_ptr<List>>({ l1, l2, l3 }));
ASSERT_EQ(target.listAt(0), l1);
ASSERT_EQ(target.listAt(1), l2);
0 commit comments