Make the QItemSelectionModel::selection a property.
QML code like this should be possible: Text { text: selModel.selection.contains(modelIndex) ? "blue" : "yellow" } If the selection is just a Q_INVOKABLE method, then all consumers need to set up Connections { target: selModel selectionChanged: foo() } That is obviously not the API we want (made more clear by the fact that the signal is already perfectly named) because it is not declarative but it can be. So, make it declarative by making selection a property. Change-Id: Id1a05ae9b91e45e6d462bea4272b8740571e9fc3 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
This commit is contained in:
parent
38e64664a2
commit
196fde2ac7
@ -146,6 +146,7 @@ class Q_CORE_EXPORT QItemSelectionModel : public QObject
|
||||
Q_PROPERTY(QAbstractItemModel *model READ model WRITE setModel NOTIFY modelChanged)
|
||||
Q_PROPERTY(bool hasSelection READ hasSelection NOTIFY selectionChanged STORED false DESIGNABLE false)
|
||||
Q_PROPERTY(QModelIndex currentIndex READ currentIndex NOTIFY currentChanged STORED false DESIGNABLE false)
|
||||
Q_PROPERTY(QItemSelection selection READ selection NOTIFY selectionChanged STORED false DESIGNABLE false)
|
||||
|
||||
Q_DECLARE_PRIVATE(QItemSelectionModel)
|
||||
|
||||
@ -186,7 +187,7 @@ public:
|
||||
Q_INVOKABLE QModelIndexList selectedIndexes() const;
|
||||
Q_INVOKABLE QModelIndexList selectedRows(int column = 0) const;
|
||||
Q_INVOKABLE QModelIndexList selectedColumns(int row = 0) const;
|
||||
Q_INVOKABLE const QItemSelection selection() const;
|
||||
const QItemSelection selection() const;
|
||||
|
||||
// ### Qt 6: Merge these two as "QAbstractItemModel *model() const"
|
||||
const QAbstractItemModel *model() const;
|
||||
|
Loading…
Reference in New Issue
Block a user