Skip to content

Commit 0f89348

Browse files
committed
Update monitor value change handlers
1 parent ecb9bdd commit 0f89348

File tree

7 files changed

+18
-42
lines changed

7 files changed

+18
-42
lines changed

src/listmonitormodel.cpp

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// SPDX-License-Identifier: LGPL-3.0-or-later
22

3-
#include <scratchcpp/virtualmachine.h>
3+
#include <scratchcpp/value.h>
44

55
#include "listmonitormodel.h"
66
#include "listmonitorlistmodel.h"
@@ -18,13 +18,10 @@ ListMonitorModel::ListMonitorModel(libscratchcpp::IExtension *extension, QObject
1818
m_listModel = new ListMonitorListModel(this);
1919
}
2020

21-
void ListMonitorModel::onValueChanged(const libscratchcpp::VirtualMachine *vm)
21+
void ListMonitorModel::onValueChanged(const libscratchcpp::Value &value)
2222
{
23-
if (vm->registerCount() == 1) {
24-
long index = vm->getInput(0, 1)->toLong();
25-
libscratchcpp::List *list = vm->lists()[index];
26-
m_listModel->setList(list, m_minIndex, m_maxIndex);
27-
}
23+
libscratchcpp::List *list = (libscratchcpp::List *)value.toPointer();
24+
m_listModel->setList(list, m_minIndex, m_maxIndex);
2825
}
2926

3027
MonitorModel::Type ListMonitorModel::type() const

src/listmonitormodel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class ListMonitorModel : public MonitorModel
2525
ListMonitorModel(QObject *parent = nullptr);
2626
ListMonitorModel(libscratchcpp::IExtension *extension, QObject *parent = nullptr);
2727

28-
void onValueChanged(const libscratchcpp::VirtualMachine *vm) override;
28+
void onValueChanged(const libscratchcpp::Value &value) override;
2929

3030
Type type() const override;
3131

src/monitormodel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class MonitorModel
4747

4848
void init(libscratchcpp::Monitor *monitor) override final;
4949

50-
virtual void onValueChanged(const libscratchcpp::VirtualMachine *vm) override { }
50+
virtual void onValueChanged(const libscratchcpp::Value &value) override { }
5151
void onVisibleChanged(bool visible) override final;
5252
void onXChanged(int x) override final;
5353
void onYChanged(int y) override final;

src/valuemonitormodel.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// SPDX-License-Identifier: LGPL-3.0-or-later
22

3-
#include <scratchcpp/virtualmachine.h>
43
#include <scratchcpp/monitor.h>
4+
#include <scratchcpp/value.h>
55

66
#include "valuemonitormodel.h"
77

@@ -21,12 +21,10 @@ ValueMonitorModel::ValueMonitorModel(IExtension *extension, QObject *parent) :
2121
{
2222
}
2323

24-
void ValueMonitorModel::onValueChanged(const VirtualMachine *vm)
24+
void ValueMonitorModel::onValueChanged(const libscratchcpp::Value &value)
2525
{
26-
if (vm->registerCount() == 1) {
27-
m_value = QString::fromStdString(vm->getInput(0, 1)->toString());
28-
emit valueChanged();
29-
}
26+
m_value = QString::fromStdString(value.toString());
27+
emit valueChanged();
3028
}
3129

3230
MonitorModel::Type ValueMonitorModel::type() const

src/valuemonitormodel.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class ValueMonitorModel : public MonitorModel
3030
ValueMonitorModel(QObject *parent = nullptr);
3131
ValueMonitorModel(libscratchcpp::IExtension *extension, QObject *parent = nullptr);
3232

33-
void onValueChanged(const libscratchcpp::VirtualMachine *vm) override;
33+
void onValueChanged(const libscratchcpp::Value &value) override;
3434

3535
Type type() const override;
3636

test/monitor_models/listmonitormodel_test.cpp

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include <QtTest/QSignalSpy>
2-
#include <scratchcpp/virtualmachine.h>
32
#include <scratchcpp/list.h>
43
#include <listmonitormodel.h>
54
#include <listmonitorlistmodel.h>
@@ -29,7 +28,6 @@ TEST(ListMonitorModelTest, OnValueChanged)
2928
ListMonitorModel model;
3029
ListMonitorListModel *listModel = model.listModel();
3130
QSignalSpy dataChangedSpy(listModel, &ListMonitorListModel::dataChanged);
32-
VirtualMachine vm;
3331

3432
List list1("", "");
3533
list1.append(1);
@@ -46,38 +44,26 @@ TEST(ListMonitorModelTest, OnValueChanged)
4644
list3.append(2);
4745
list3.append(3);
4846

49-
List *lists[] = { &list1, &list2, &list3 };
50-
vm.setLists(lists);
51-
52-
vm.addReturnValue(1);
53-
model.onValueChanged(&vm);
47+
model.onValueChanged(&list2);
5448
ASSERT_EQ(listModel->rowCount(QModelIndex()), 4);
5549

56-
vm.reset();
57-
vm.addReturnValue(2);
58-
model.onValueChanged(&vm);
50+
model.onValueChanged(&list3);
5951
ASSERT_EQ(listModel->rowCount(QModelIndex()), 3);
6052

61-
vm.reset();
62-
vm.addReturnValue(2);
6353
model.setMinIndex(0);
6454
model.setMaxIndex(3);
65-
model.onValueChanged(&vm);
55+
model.onValueChanged(&list3);
6656
ASSERT_EQ(listModel->rowCount(QModelIndex()), 3);
6757
ASSERT_EQ(dataChangedSpy.count(), 4);
6858

6959
dataChangedSpy.clear();
70-
vm.reset();
71-
vm.addReturnValue(2);
7260
model.setMinIndex(1);
7361
model.setMaxIndex(2);
74-
model.onValueChanged(&vm);
62+
model.onValueChanged(&list3);
7563
ASSERT_EQ(listModel->rowCount(QModelIndex()), 3);
7664
ASSERT_EQ(dataChangedSpy.count(), 2);
7765

78-
vm.reset();
79-
vm.addReturnValue(0);
80-
model.onValueChanged(&vm);
66+
model.onValueChanged(&list1);
8167
ASSERT_EQ(listModel->rowCount(QModelIndex()), 2);
8268
}
8369

test/monitor_models/valuemonitormodel_test.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
#include <QtTest/QSignalSpy>
22
#include <scratchcpp/monitor.h>
3-
#include <scratchcpp/virtualmachine.h>
43
#include <scratchcpp/block.h>
54
#include <scratchcpp/comment.h>
65
#include <valuemonitormodel.h>
@@ -29,16 +28,12 @@ TEST(ValueMonitorModelTest, OnValueChanged)
2928
{
3029
ValueMonitorModel model;
3130
QSignalSpy spy(&model, &ValueMonitorModel::valueChanged);
32-
VirtualMachine vm;
3331

34-
vm.addReturnValue(5.4);
35-
model.onValueChanged(&vm);
32+
model.onValueChanged(5.4);
3633
ASSERT_EQ(model.value(), "5.4");
3734
ASSERT_EQ(spy.count(), 1);
3835

39-
vm.reset();
40-
vm.addReturnValue("test");
41-
model.onValueChanged(&vm);
36+
model.onValueChanged("test");
4237
ASSERT_EQ(model.value(), "test");
4338
ASSERT_EQ(spy.count(), 2);
4439
}

0 commit comments

Comments
 (0)