Skip to content

Commit 594b90d

Browse files
committed
ProjectLoader: Clear sprites before loading project
1 parent 8bef51b commit 594b90d

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

src/projectloader.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,11 @@ void ProjectLoader::callLoad(ProjectLoader *loader)
251251
void ProjectLoader::load()
252252
{
253253
m_unpositionedMonitors.clear();
254+
m_sprites.clear();
255+
m_clones.clear();
256+
emit spritesChanged();
257+
emit clonesChanged();
258+
254259
m_loadStatus = m_project.load();
255260
m_engineMutex.lock();
256261
m_engine = m_project.engine().get();
@@ -262,6 +267,7 @@ void ProjectLoader::load()
262267
emit loadingFinished();
263268
emit engineChanged();
264269
emit spritesChanged();
270+
emit clonesChanged();
265271
return;
266272
}
267273

@@ -308,6 +314,7 @@ void ProjectLoader::load()
308314
emit loadingFinished();
309315
emit engineChanged();
310316
emit spritesChanged();
317+
emit clonesChanged();
311318
return;
312319
}
313320

@@ -327,6 +334,7 @@ void ProjectLoader::load()
327334
emit engineChanged();
328335
emit stageChanged();
329336
emit spritesChanged();
337+
emit clonesChanged();
330338
}
331339

332340
void ProjectLoader::initTimer()

test/projectloader/projectloader_test.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ class ProjectLoaderTest : public testing::Test
5757
ASSERT_EQ(loadingFinishedSpy.count(), 1);
5858
ASSERT_EQ(engineSpy.count(), 2);
5959
ASSERT_EQ(stageSpy.count(), 1);
60-
ASSERT_EQ(spritesSpy.count(), 2);
61-
ASSERT_EQ(clonesSpy.count(), 1);
60+
ASSERT_EQ(spritesSpy.count(), 3);
61+
ASSERT_EQ(clonesSpy.count(), 3);
6262
ASSERT_EQ(monitorsSpy.count(), loader->monitorList().size() + 1);
6363
ASSERT_EQ(monitorAddedSpy.count(), loader->monitorList().size());
6464
ASSERT_EQ(unsupportedBlocksSpy.count(), 1);
@@ -137,13 +137,13 @@ TEST_F(ProjectLoaderTest, Clones)
137137
load(&loader, "clones.sb3");
138138
ASSERT_TRUE(cloneCreatedSpy.empty());
139139
ASSERT_TRUE(cloneDeletedSpy.empty());
140-
ASSERT_EQ(clonesChangedSpy.count(), 1);
140+
ASSERT_EQ(clonesChangedSpy.count(), 3);
141141

142142
auto engine = loader.engine();
143143
engine->run();
144144
ASSERT_EQ(cloneCreatedSpy.count(), 3);
145145
ASSERT_EQ(cloneDeletedSpy.count(), 0);
146-
ASSERT_EQ(clonesChangedSpy.count(), 4);
146+
ASSERT_EQ(clonesChangedSpy.count(), 6);
147147

148148
const auto &sprites = loader.spriteList();
149149
const auto &clones = loader.cloneList();
@@ -162,7 +162,7 @@ TEST_F(ProjectLoaderTest, Clones)
162162
clones[1]->sprite()->deleteClone();
163163
ASSERT_EQ(cloneCreatedSpy.count(), 3);
164164
ASSERT_EQ(cloneDeletedSpy.count(), 1);
165-
ASSERT_EQ(clonesChangedSpy.count(), 5);
165+
ASSERT_EQ(clonesChangedSpy.count(), 7);
166166
ASSERT_EQ(clones.size(), 2);
167167
}
168168

0 commit comments

Comments
 (0)