diff --git a/storybook/pages/MovableModelPage.qml b/storybook/pages/MovableModelPage.qml
index 79583e377e..de3d937abb 100644
--- a/storybook/pages/MovableModelPage.qml
+++ b/storybook/pages/MovableModelPage.qml
@@ -119,7 +119,7 @@ Item {
Layout.fillHeight: true
Label {
- text: "DETACHED-ORDER MODEL"
+ text: "MOVABLE MODEL (press to drag&drop)"
font.bold: true
font.pixelSize: 17
@@ -234,15 +234,23 @@ Item {
}
Button {
- text: "detach order explicitely"
+ text: "desynchronize"
onClicked: {
- movableModel.detach()
+ movableModel.desyncOrder()
+ }
+ }
+
+ Button {
+ text: "synchronize"
+
+ onClicked: {
+ movableModel.syncOrder()
}
}
Label {
- text: "Detached: " + movableModel.detached
+ text: "Synchronized: " + movableModel.synced
}
}
}
diff --git a/storybook/pages/MovableModelWithSfpmPage.qml b/storybook/pages/MovableModelWithSfpmPage.qml
index 3af3663ed3..20d2ad5505 100644
--- a/storybook/pages/MovableModelWithSfpmPage.qml
+++ b/storybook/pages/MovableModelWithSfpmPage.qml
@@ -460,13 +460,19 @@ Item {
}
Button {
- text: "detach order explicitely"
+ text: "desynchronize"
- onClicked: movableModel.detach()
+ onClicked: movableModel.desyncOrder()
+ }
+
+ Button {
+ text: "synchronize"
+
+ onClicked: movableModel.syncOrder()
}
Label {
- text: `Detached: ${movableModel.detached}`
+ text: `Synchronized: ${movableModel.synced}`
}
}
}
diff --git a/ui/StatusQ/include/StatusQ/movablemodel.h b/ui/StatusQ/include/StatusQ/movablemodel.h
index 5c88b4a26d..ccec69cbc6 100644
--- a/ui/StatusQ/include/StatusQ/movablemodel.h
+++ b/ui/StatusQ/include/StatusQ/movablemodel.h
@@ -11,7 +11,7 @@ class MovableModel : public QAbstractListModel
Q_PROPERTY(QAbstractItemModel* sourceModel READ sourceModel
WRITE setSourceModel NOTIFY sourceModelChanged)
- Q_PROPERTY(bool detached READ detached NOTIFY detachedChanged)
+ Q_PROPERTY(bool synced READ synced NOTIFY syncedChanged)
public:
explicit MovableModel(QObject *parent = nullptr);
@@ -22,16 +22,16 @@ public:
QVariant data(const QModelIndex &index, int role) const override;
QHash roleNames() const override;
- Q_INVOKABLE void detach();
- Q_INVOKABLE void attach();
+ Q_INVOKABLE void desyncOrder();
+ Q_INVOKABLE void syncOrder();
Q_INVOKABLE void move(int from, int to, int count = 1);
Q_INVOKABLE QVector order() const;
- bool detached() const;
+ bool synced() const;
signals:
void sourceModelChanged();
- void detachedChanged();
+ void syncedChanged();
protected slots:
void resetInternalData();
@@ -41,6 +41,6 @@ private:
void connectSignalsForAttachedState();
- bool m_detached = false;
+ bool m_synced = true;
std::vector m_indexes;
};
diff --git a/ui/StatusQ/src/movablemodel.cpp b/ui/StatusQ/src/movablemodel.cpp
index f0eafa2a21..cd2f9fe8f0 100644
--- a/ui/StatusQ/src/movablemodel.cpp
+++ b/ui/StatusQ/src/movablemodel.cpp
@@ -34,7 +34,7 @@ QAbstractItemModel* MovableModel::sourceModel() const
int MovableModel::rowCount(const QModelIndex &parent) const
{
- if (m_detached)
+ if (!m_synced)
return m_indexes.size();
if (m_sourceModel == nullptr)
@@ -48,7 +48,7 @@ QVariant MovableModel::data(const QModelIndex &index, int role) const
if (!checkIndex(index, CheckIndexOption::IndexIsValid))
return {};
- if (m_detached)
+ if (!m_synced)
return m_indexes.at(index.row()).data(role);
if (m_sourceModel == nullptr)
@@ -65,9 +65,9 @@ QHash MovableModel::roleNames() const
return m_sourceModel->roleNames();
}
-void MovableModel::detach()
+void MovableModel::desyncOrder()
{
- if (m_detached || m_sourceModel == nullptr)
+ if (!m_synced || m_sourceModel == nullptr)
return;
disconnect(m_sourceModel, &QAbstractItemModel::rowsAboutToBeInserted, this,
@@ -175,13 +175,13 @@ void MovableModel::detach()
for (auto i = 0; i < count; i++)
m_indexes.emplace_back(m_sourceModel->index(i, 0));
- m_detached = true;
- emit detachedChanged();
+ m_synced = false;
+ emit syncedChanged();
}
-void MovableModel::attach()
+void MovableModel::syncOrder()
{
- if (!m_detached || m_sourceModel == nullptr)
+ if (m_synced || m_sourceModel == nullptr)
return;
emit layoutAboutToBeChanged();
@@ -212,8 +212,8 @@ void MovableModel::move(int from, int to, int count)
const int sourceLast = from + count - 1;
const int destinationRow = to < from ? to : to + count;
- if (!m_detached)
- detach();
+ if (m_synced)
+ desyncOrder();
beginMoveRows({}, sourceFirst, sourceLast, {}, destinationRow);
@@ -236,7 +236,7 @@ QVector MovableModel::order() const
{
QVector order(rowCount());
- if (m_detached)
+ if (!m_synced)
std::transform(m_indexes.begin(), m_indexes.end(), order.begin(),
[](auto& idx) { return idx.row(); });
else
@@ -245,9 +245,9 @@ QVector MovableModel::order() const
return order;
}
-bool MovableModel::detached() const
+bool MovableModel::synced() const
{
- return m_detached;
+ return m_synced;
}
void MovableModel::resetInternalData()
@@ -256,9 +256,9 @@ void MovableModel::resetInternalData()
m_indexes.clear();
- if (m_detached) {
- m_detached = false;
- emit detachedChanged();
+ if (!m_synced) {
+ m_synced = true;
+ emit syncedChanged();
}
}
diff --git a/ui/StatusQ/tests/tst_MovableModel.cpp b/ui/StatusQ/tests/tst_MovableModel.cpp
index c5727010d2..f049e686c6 100644
--- a/ui/StatusQ/tests/tst_MovableModel.cpp
+++ b/ui/StatusQ/tests/tst_MovableModel.cpp
@@ -47,11 +47,11 @@ private slots:
MovableModel model;
model.setSourceModel(sourceModel);
- QCOMPARE(model.detached(), false);
+ QCOMPARE(model.synced(), true);
QVERIFY(isSame(&model, sourceModel));
}
- void detachTest()
+ void desyncOrderTest()
{
QQmlEngine engine;
@@ -67,16 +67,16 @@ private slots:
MovableModel model;
model.setSourceModel(sourceModel);
- QSignalSpy detachChangedSpy(&model, &MovableModel::detachedChanged);
- model.detach();
+ QSignalSpy syncedChangedSpy(&model, &MovableModel::syncedChanged);
+ model.desyncOrder();
- QCOMPARE(detachChangedSpy.count(), 1);
- QCOMPARE(model.detached(), true);
+ QCOMPARE(syncedChangedSpy.count(), 1);
+ QCOMPARE(model.synced(), false);
QVERIFY(isSame(&model, sourceModel));
model.setSourceModel(nullptr);
- QCOMPARE(detachChangedSpy.count(), 2);
- QCOMPARE(model.detached(), false);
+ QCOMPARE(syncedChangedSpy.count(), 2);
+ QCOMPARE(model.synced(), true);
QCOMPARE(model.rowCount(), 0);
}
@@ -98,7 +98,7 @@ private slots:
MovableModel model;
model.setSourceModel(sourceModel);
- model.detach();
+ model.desyncOrder();
ModelSignalsSpy signalsSpy(&model);
ModelSignalsSpy referenceSignalsSpy(sourceModelCopy);
@@ -150,7 +150,7 @@ private slots:
MovableModel model;
model.setSourceModel(sourceModel);
- model.detach();
+ model.desyncOrder();
ModelSignalsSpy signalsSpy(&model);
ModelSignalsSpy referenceSignalsSpy(sourceModelCopy);
@@ -202,7 +202,7 @@ private slots:
MovableModel model;
model.setSourceModel(sourceModel);
- model.detach();
+ model.desyncOrder();
ModelSignalsSpy signalsSpy(&model);
ModelSignalsSpy referenceSignalsSpy(sourceModelCopy);
@@ -249,7 +249,7 @@ private slots:
MovableModel model;
model.setSourceModel(sourceModel);
- model.detach();
+ model.desyncOrder();
ModelSignalsSpy signalsSpy(&model);
ModelSignalsSpy referenceSignalsSpy(sourceModelCopy);
@@ -299,7 +299,7 @@ private slots:
MovableModel model;
model.setSourceModel(&sfpm);
- model.detach();
+ model.desyncOrder();
model.move(2, 1);
sourceModelCopy.move(2, 1);
@@ -340,7 +340,7 @@ private slots:
MovableModel model;
model.setSourceModel(sourceModel);
- model.detach();
+ model.desyncOrder();
model.move(4, 1);
SnapshotModel snapshot(model);
@@ -459,7 +459,7 @@ private slots:
MovableModel model;
model.setSourceModel(sourceModel);
- model.detach();
+ model.desyncOrder();
ModelSignalsSpy signalsSpy(&model);
@@ -594,12 +594,12 @@ private slots:
MovableModel model;
model.setSourceModel(sourceModel1);
- model.detach();
+ model.desyncOrder();
- QCOMPARE(model.detached(), true);
+ QCOMPARE(model.synced(), false);
ModelSignalsSpy signalsSpy(&model);
- QSignalSpy detachChangedSpy(&model, &MovableModel::detachedChanged);
+ QSignalSpy syncedChangedSpy(&model, &MovableModel::syncedChanged);
model.setSourceModel(sourceModel2);
@@ -607,14 +607,14 @@ private slots:
QCOMPARE(signalsSpy.modelAboutToBeResetSpy.count(), 1);
QCOMPARE(signalsSpy.modelResetSpy.count(), 1);
- QCOMPARE(detachChangedSpy.count(), 1);
- QCOMPARE(model.detached(), false);
+ QCOMPARE(syncedChangedSpy.count(), 1);
+ QCOMPARE(model.synced(), true);
QCOMPARE(model.rowCount(), 2);
QVERIFY(isSame(&model, sourceModel2));
}
- void attachTest()
+ void syncOrderTest()
{
QQmlEngine engine;
@@ -632,7 +632,7 @@ private slots:
{
ModelSignalsSpy signalsSpy(&model);
- model.attach();
+ model.syncOrder();
QCOMPARE(signalsSpy.count(), 0);
}
@@ -640,26 +640,26 @@ private slots:
{
ModelSignalsSpy signalsSpy(&model);
- model.attach();
+ model.syncOrder();
QCOMPARE(signalsSpy.count(), 0);
}
- model.detach();
+ model.desyncOrder();
sourceModel.move(0, 2, 2);
QVERIFY(!isSame(&model, sourceModel));
ModelSignalsSpy signalsSpy(&model);
- QSignalSpy detachChangedSpy(&model, &MovableModel::detachedChanged);
+ QSignalSpy syncedChangedSpy(&model, &MovableModel::syncedChanged);
- model.attach();
+ model.syncOrder();
QCOMPARE(signalsSpy.count(), 2);
QCOMPARE(signalsSpy.layoutAboutToBeChangedSpy.count(), 1);
QCOMPARE(signalsSpy.layoutChangedSpy.count(), 1);
- QCOMPARE(detachChangedSpy.count(), 1);
- QCOMPARE(model.detached(), false);
+ QCOMPARE(syncedChangedSpy.count(), 1);
+ QCOMPARE(model.synced(), true);
QVERIFY(isSame(&model, sourceModel));
}