Skip to content

Commit b126800

Browse files
committed
Make clones inherit pen information
1 parent a8f460d commit b126800

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

src/spritemodel.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ void SpriteModel::onCloned(libscratchcpp::Sprite *clone)
3232

3333
SpriteModel *cloneModel = new SpriteModel(m_cloneRoot);
3434
cloneModel->m_cloneRoot = m_cloneRoot;
35+
cloneModel->m_penLayer = m_penLayer;
36+
cloneModel->m_penAttributes = m_penAttributes;
37+
cloneModel->m_penDown = m_penDown;
3538
clone->setInterface(cloneModel);
3639
emit cloned(cloneModel);
3740
}

test/target_models/spritemodel_test.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,16 @@ TEST(SpriteModelTest, OnCloned)
7474
ASSERT_EQ(cloneModel->parent(), &model);
7575
ASSERT_EQ(cloneModel->sprite(), &clone2);
7676
ASSERT_EQ(cloneModel->cloneRoot(), &model);
77+
ASSERT_FALSE(cloneModel->penDown());
7778

7879
Sprite clone3;
7980
QSignalSpy spy2(cloneModel, &SpriteModel::cloned);
81+
PenLayerMock penLayer;
82+
cloneModel->setPenLayer(&penLayer);
83+
cloneModel->penAttributes().color = QColor(255, 0, 0);
84+
cloneModel->penAttributes().diameter = 20.3;
85+
EXPECT_CALL(penLayer, drawPoint);
86+
cloneModel->setPenDown(true);
8087
cloneModel->onCloned(&clone3);
8188
ASSERT_EQ(spy2.count(), 1);
8289

@@ -87,6 +94,10 @@ TEST(SpriteModelTest, OnCloned)
8794
ASSERT_EQ(cloneModel->parent(), &model);
8895
ASSERT_EQ(cloneModel->sprite(), &clone3);
8996
ASSERT_EQ(cloneModel->cloneRoot(), &model);
97+
ASSERT_EQ(cloneModel->penLayer(), &penLayer);
98+
ASSERT_EQ(cloneModel->penAttributes().color, QColor(255, 0, 0));
99+
ASSERT_EQ(cloneModel->penAttributes().diameter, 20.3);
100+
ASSERT_TRUE(cloneModel->penDown());
90101
}
91102

92103
TEST(SpriteModelTest, OnCostumeChanged)

0 commit comments

Comments
 (0)