Skip to content

Commit 0484ed3

Browse files
committed
Add addPenLayer() method to PenLayer
1 parent de4e938 commit 0484ed3

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

src/penlayer.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,11 @@ IPenLayer *PenLayer::getProjectPenLayer(libscratchcpp::IEngine *engine)
134134
return nullptr;
135135
}
136136

137+
void PenLayer::addPenLayer(libscratchcpp::IEngine *engine, IPenLayer *penLayer)
138+
{
139+
m_projectPenLayers[engine] = penLayer;
140+
}
141+
137142
QNanoQuickItemPainter *PenLayer::createItemPainter() const
138143
{
139144
return new PenLayerPainter;

src/penlayer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class PenLayer : public IPenLayer
3434
QOpenGLFramebufferObject *framebufferObject() const override;
3535

3636
static IPenLayer *getProjectPenLayer(libscratchcpp::IEngine *engine);
37+
static void addPenLayer(libscratchcpp::IEngine *engine, IPenLayer *penLayer); // for tests
3738

3839
signals:
3940
void engineChanged();

test/penlayer/penlayer_test.cpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,27 +99,31 @@ TEST_F(PenLayerTest, FramebufferObject)
9999
TEST_F(PenLayerTest, GetProjectPenLayer)
100100
{
101101
PenLayer penLayer;
102-
ASSERT_EQ(penLayer.getProjectPenLayer(nullptr), nullptr);
102+
ASSERT_EQ(PenLayer::getProjectPenLayer(nullptr), nullptr);
103103

104104
EngineMock engine1, engine2;
105-
ASSERT_EQ(penLayer.getProjectPenLayer(&engine1), nullptr);
106-
ASSERT_EQ(penLayer.getProjectPenLayer(&engine2), nullptr);
105+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine1), nullptr);
106+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine2), nullptr);
107107

108108
EXPECT_CALL(engine1, stageWidth()).WillOnce(Return(1));
109109
EXPECT_CALL(engine1, stageHeight()).WillOnce(Return(1));
110110
penLayer.setEngine(&engine1);
111-
ASSERT_EQ(penLayer.getProjectPenLayer(&engine1), &penLayer);
112-
ASSERT_EQ(penLayer.getProjectPenLayer(&engine2), nullptr);
111+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine1), &penLayer);
112+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine2), nullptr);
113113

114114
EXPECT_CALL(engine2, stageWidth()).WillOnce(Return(1));
115115
EXPECT_CALL(engine2, stageHeight()).WillOnce(Return(1));
116116
penLayer.setEngine(&engine2);
117-
ASSERT_EQ(penLayer.getProjectPenLayer(&engine1), nullptr);
118-
ASSERT_EQ(penLayer.getProjectPenLayer(&engine2), &penLayer);
117+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine1), nullptr);
118+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine2), &penLayer);
119119

120120
penLayer.setEngine(nullptr);
121-
ASSERT_EQ(penLayer.getProjectPenLayer(&engine1), nullptr);
122-
ASSERT_EQ(penLayer.getProjectPenLayer(&engine2), nullptr);
121+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine1), nullptr);
122+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine2), nullptr);
123+
124+
PenLayer::addPenLayer(&engine1, &penLayer);
125+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine1), &penLayer);
126+
ASSERT_EQ(PenLayer::getProjectPenLayer(&engine2), nullptr);
123127
}
124128

125129
TEST_F(PenLayerTest, Clear)

0 commit comments

Comments
 (0)