Skip to content

Commit af14d11

Browse files
committed
Add cloneRoot() getter to SpriteModel
1 parent 7b379b4 commit af14d11

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

src/spritemodel.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,4 +115,12 @@ void SpriteModel::setRenderedTarget(IRenderedTarget *newRenderedTarget)
115115
emit renderedTargetChanged();
116116
}
117117

118+
SpriteModel *SpriteModel::cloneRoot() const
119+
{
120+
if (m_cloneRoot == this)
121+
return nullptr;
122+
else
123+
return m_cloneRoot;
124+
}
125+
118126
} // namespace scratchcpprender

src/spritemodel.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ class SpriteModel
4949
IRenderedTarget *renderedTarget() const;
5050
void setRenderedTarget(IRenderedTarget *newRenderedTarget);
5151

52+
SpriteModel *cloneRoot() const;
53+
5254
signals:
5355
void renderedTargetChanged();
5456
void cloned(SpriteModel *cloneModel);

test/target_models/spritemodel_test.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,18 +40,21 @@ TEST(SpriteModelTest, DeInitClone)
4040
TEST(SpriteModelTest, OnCloned)
4141
{
4242
SpriteModel model;
43+
ASSERT_EQ(model.cloneRoot(), nullptr);
4344

4445
Sprite clone1;
4546
QSignalSpy spy1(&model, &SpriteModel::cloned);
4647
model.onCloned(&clone1);
4748
ASSERT_EQ(spy1.count(), 1);
49+
ASSERT_EQ(model.cloneRoot(), nullptr);
4850

4951
QList<QVariant> args = spy1.takeFirst();
5052
ASSERT_EQ(args.size(), 1);
5153
SpriteModel *cloneModel = args.at(0).value<SpriteModel *>();
5254
ASSERT_TRUE(cloneModel);
5355
ASSERT_EQ(cloneModel->parent(), &model);
5456
ASSERT_EQ(cloneModel->sprite(), &clone1);
57+
ASSERT_EQ(cloneModel->cloneRoot(), &model);
5558
spy1.clear();
5659

5760
Sprite clone2;
@@ -64,6 +67,7 @@ TEST(SpriteModelTest, OnCloned)
6467
ASSERT_TRUE(cloneModel);
6568
ASSERT_EQ(cloneModel->parent(), &model);
6669
ASSERT_EQ(cloneModel->sprite(), &clone2);
70+
ASSERT_EQ(cloneModel->cloneRoot(), &model);
6771

6872
Sprite clone3;
6973
QSignalSpy spy2(cloneModel, &SpriteModel::cloned);
@@ -76,6 +80,7 @@ TEST(SpriteModelTest, OnCloned)
7680
ASSERT_TRUE(cloneModel);
7781
ASSERT_EQ(cloneModel->parent(), &model);
7882
ASSERT_EQ(cloneModel->sprite(), &clone3);
83+
ASSERT_EQ(cloneModel->cloneRoot(), &model);
7984
}
8085

8186
TEST(SpriteModelTest, OnCostumeChanged)

0 commit comments

Comments
 (0)