Skip to content

Commit 3d3f2f8

Browse files
committed
Implement SpriteModel::deinitClone
1 parent ef9cfa9 commit 3d3f2f8

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

src/spritemodel.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ void SpriteModel::init(libscratchcpp::Sprite *sprite)
2121

2222
void SpriteModel::deinitClone()
2323
{
24+
emit cloneDeleted(this);
2425
}
2526

2627
void SpriteModel::onCloned(libscratchcpp::Sprite *clone)

src/spritemodel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ class SpriteModel
5252
signals:
5353
void renderedTargetChanged();
5454
void cloned(SpriteModel *cloneModel);
55+
void cloneDeleted(SpriteModel *clone);
5556

5657
private:
5758
libscratchcpp::Sprite *m_sprite = nullptr;

test/target_models/spritemodel_test.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,18 @@ TEST(SpriteModelTest, Init)
2525
ASSERT_EQ(model.sprite(), &sprite);
2626
}
2727

28+
TEST(SpriteModelTest, DeInitClone)
29+
{
30+
SpriteModel model;
31+
QSignalSpy spy(&model, &SpriteModel::cloneDeleted);
32+
model.deinitClone();
33+
ASSERT_EQ(spy.count(), 1);
34+
QList<QVariant> args = spy.takeFirst();
35+
ASSERT_EQ(args.size(), 1);
36+
SpriteModel *modelPtr = args.at(0).value<SpriteModel *>();
37+
ASSERT_EQ(modelPtr, &model);
38+
}
39+
2840
TEST(SpriteModelTest, OnCloned)
2941
{
3042
SpriteModel model;

0 commit comments

Comments
 (0)