diff options
author | Andy Shaw <andy.shaw@qt.io> | 2020-08-18 08:36:42 +0200 |
---|---|---|
committer | Andy Shaw <andy.shaw@qt.io> | 2021-05-05 12:43:27 +0000 |
commit | fcd250521b67f1ca1a2205ab566a1c405c2f0529 (patch) | |
tree | a57962361c54a5426110d1991dac6d848c2d3227 /src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h | |
parent | 10cfbd2e34e7234d37ef2a9f3b0a587c0709407d (diff) |
Update the replica when the layoutChanged signal is emitted
When a sort() is done on a QSortFilterProxyModel then it will emit
the layoutChanged() signal, so it should ensure that the replica is
updated in that case accordingly.
Pick-to: 5.15
Fixes: QTBUG-85795
Change-Id: I7f34b24f4fab78c18655e986f54a0eb61db3a7b7
Reviewed-by: Brett Stottlemyer <bstottle@ford.com>
Diffstat (limited to 'src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h')
-rw-r--r-- | src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h b/src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h index 9fc4a60..a8bcdb7 100644 --- a/src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h +++ b/src/remoteobjects/qremoteobjectabstractitemmodeladapter_p.h @@ -97,7 +97,7 @@ public Q_SLOTS: void sourceRowsRemoved(const QModelIndex & parent, int start, int end); void sourceRowsMoved(const QModelIndex & sourceParent, int sourceRow, int count, const QModelIndex & destinationParent, int destinationChild) const; void sourceCurrentChanged(const QModelIndex & current, const QModelIndex & previous); - + void sourceLayoutChanged(const QList<QPersistentModelIndex> &parents, QAbstractItemModel::LayoutChangeHint hint); Q_SIGNALS: void availableRolesChanged(); void dataChanged(IndexList topLeft, IndexList bottomRight, QList<int> roles) const; @@ -106,6 +106,7 @@ Q_SIGNALS: void rowsMoved(IndexList sourceParent, int sourceRow, int count, IndexList destinationParent, int destinationChild) const; void currentChanged(IndexList current, IndexList previous); void columnsInserted(IndexList parent, int start, int end) const; + void layoutChanged(IndexList parents, QAbstractItemModel::LayoutChangeHint hint); private: QAbstractItemModelSourceAdapter(); @@ -128,7 +129,7 @@ struct QAbstractItemAdapterSourceAPI : public SourceApiMap m_properties[0] = 2; m_properties[1] = QtPrivate::qtro_property_index<AdapterType>(&AdapterType::availableRoles, static_cast<QList<int> (QObject::*)()>(nullptr),"availableRoles"); m_properties[2] = QtPrivate::qtro_property_index<AdapterType>(&AdapterType::roleNames, static_cast<QIntHash (QObject::*)()>(nullptr),"roleNames"); - m_signals[0] = 9; + m_signals[0] = 10; m_signals[1] = QtPrivate::qtro_signal_index<AdapterType>(&AdapterType::availableRolesChanged, static_cast<void (QObject::*)()>(nullptr),m_signalArgCount+0,&m_signalArgTypes[0]); m_signals[2] = QtPrivate::qtro_signal_index<AdapterType>(&AdapterType::dataChanged, static_cast<void (QObject::*)(IndexList,IndexList,QList<int>)>(nullptr),m_signalArgCount+1,&m_signalArgTypes[1]); m_signals[3] = QtPrivate::qtro_signal_index<AdapterType>(&AdapterType::rowsInserted, static_cast<void (QObject::*)(IndexList,int,int)>(nullptr),m_signalArgCount+2,&m_signalArgTypes[2]); @@ -138,6 +139,7 @@ struct QAbstractItemAdapterSourceAPI : public SourceApiMap m_signals[7] = QtPrivate::qtro_signal_index<ObjectType>(&ObjectType::modelReset, static_cast<void (QObject::*)()>(nullptr),m_signalArgCount+6,&m_signalArgTypes[6]); m_signals[8] = QtPrivate::qtro_signal_index<ObjectType>(&ObjectType::headerDataChanged, static_cast<void (QObject::*)(Qt::Orientation,int,int)>(nullptr),m_signalArgCount+7,&m_signalArgTypes[7]); m_signals[9] = QtPrivate::qtro_signal_index<AdapterType>(&AdapterType::columnsInserted, static_cast<void (QObject::*)(IndexList,int,int)>(nullptr),m_signalArgCount+8,&m_signalArgTypes[8]); + m_signals[10] = QtPrivate::qtro_signal_index<AdapterType>(&AdapterType::layoutChanged, static_cast<void (QObject::*)(IndexList,QAbstractItemModel::LayoutChangeHint)>(nullptr),m_signalArgCount+9,&m_signalArgTypes[9]); m_methods[0] = 6; m_methods[1] = QtPrivate::qtro_method_index<AdapterType>(&AdapterType::replicaSizeRequest, static_cast<void (QObject::*)(IndexList)>(nullptr),"replicaSizeRequest(IndexList)",m_methodArgCount+0,&m_methodArgTypes[0]); m_methods[2] = QtPrivate::qtro_method_index<AdapterType>(&AdapterType::replicaRowRequest, static_cast<void (QObject::*)(IndexList,IndexList,QList<int>)>(nullptr),"replicaRowRequest(IndexList,IndexList,QList<int>)",m_methodArgCount+1,&m_methodArgTypes[1]); @@ -213,6 +215,7 @@ struct QAbstractItemAdapterSourceAPI : public SourceApiMap case 6: return QByteArrayLiteral("resetModel()"); case 7: return QByteArrayLiteral("headerDataChanged(Qt::Orientation,int,int)"); case 8: return QByteArrayLiteral("columnsInserted(IndexList,int,int)"); + case 9: return QByteArrayLiteral("layoutChanged(IndexList,QAbstractItemModel::LayoutChangeHint)"); } return QByteArrayLiteral(""); } @@ -264,6 +267,7 @@ struct QAbstractItemAdapterSourceAPI : public SourceApiMap case 4: case 5: case 8: + case 9: return true; } return false; @@ -292,10 +296,10 @@ struct QAbstractItemAdapterSourceAPI : public SourceApiMap } int m_properties[3]; - int m_signals[10]; + int m_signals[11]; int m_methods[7]; - int m_signalArgCount[9]; - const int* m_signalArgTypes[9]; + int m_signalArgCount[10]; + const int* m_signalArgTypes[10]; int m_methodArgCount[6]; const int* m_methodArgTypes[6]; QString m_name; |