diff options
author | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2023-09-24 19:41:42 +0200 |
---|---|---|
committer | Christian Ehrlicher <ch.ehrlicher@gmx.de> | 2023-10-01 17:10:18 +0200 |
commit | c55a7e4167c3174120f1fb32c7e7d1756cc3960d (patch) | |
tree | 99433e125d2d448e974b7d097cacf3120c97e937 /src/widgets/itemviews/qtreewidget.cpp | |
parent | 0bb35ee2f0885ad34bcac1b02d9d77c108f57785 (diff) |
Widgets/Itemviews: use pmf-style connect in QTreeWidget
Replace all connect() calls with pmf-style connection syntax. This also
means that we have to properly disconnect everything in the ctor to not
trigger an assertion in QtPrivate::assertObjectType().
Task-number: QTBUG-117698
Change-Id: I652c8d6f27b23a7d4467dc39b7c12850f4d25f66
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'src/widgets/itemviews/qtreewidget.cpp')
-rw-r--r-- | src/widgets/itemviews/qtreewidget.cpp | 59 |
1 files changed, 35 insertions, 24 deletions
diff --git a/src/widgets/itemviews/qtreewidget.cpp b/src/widgets/itemviews/qtreewidget.cpp index 3fa8a7e1b9..c261212113 100644 --- a/src/widgets/itemviews/qtreewidget.cpp +++ b/src/widgets/itemviews/qtreewidget.cpp @@ -2301,6 +2301,12 @@ QDataStream &operator>>(QDataStream &in, QTreeWidgetItem &item) #endif // QT_NO_DATASTREAM +void QTreeWidgetPrivate::clearConnections() +{ + for (const QMetaObject::Connection &connection : connections) + QObject::disconnect(connection); +} + void QTreeWidgetPrivate::_q_emitItemPressed(const QModelIndex &index) { Q_Q(QTreeWidget); @@ -2570,31 +2576,34 @@ void QTreeWidgetPrivate::_q_dataChanged(const QModelIndex &topLeft, QTreeWidget::QTreeWidget(QWidget *parent) : QTreeView(*new QTreeWidgetPrivate(), parent) { + Q_D(QTreeWidget); QTreeView::setModel(new QTreeModel(1, this)); - connect(this, SIGNAL(pressed(QModelIndex)), - SLOT(_q_emitItemPressed(QModelIndex))); - connect(this, SIGNAL(clicked(QModelIndex)), - SLOT(_q_emitItemClicked(QModelIndex))); - connect(this, SIGNAL(doubleClicked(QModelIndex)), - SLOT(_q_emitItemDoubleClicked(QModelIndex))); - connect(this, SIGNAL(activated(QModelIndex)), - SLOT(_q_emitItemActivated(QModelIndex))); - connect(this, SIGNAL(entered(QModelIndex)), - SLOT(_q_emitItemEntered(QModelIndex))); - connect(this, SIGNAL(expanded(QModelIndex)), - SLOT(_q_emitItemExpanded(QModelIndex))); - connect(this, SIGNAL(collapsed(QModelIndex)), - SLOT(_q_emitItemCollapsed(QModelIndex))); - connect(selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), - this, SLOT(_q_emitCurrentItemChanged(QModelIndex,QModelIndex))); - connect(model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), - this, SLOT(_q_emitItemChanged(QModelIndex))); - connect(model(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), - this, SLOT(_q_dataChanged(QModelIndex,QModelIndex))); - connect(model(), SIGNAL(columnsRemoved(QModelIndex,int,int)), - this, SLOT(_q_sort())); - connect(selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), - this, SLOT(_q_selectionChanged(QItemSelection,QItemSelection))); + d->connections = { + QObjectPrivate::connect(this, &QTreeWidget::pressed, + d, &QTreeWidgetPrivate::_q_emitItemPressed), + QObjectPrivate::connect(this, &QTreeWidget::clicked, + d, &QTreeWidgetPrivate::_q_emitItemClicked), + QObjectPrivate::connect(this, &QTreeWidget::doubleClicked, + d, &QTreeWidgetPrivate::_q_emitItemDoubleClicked), + QObjectPrivate::connect(this, &QTreeWidget::activated, + d, &QTreeWidgetPrivate::_q_emitItemActivated), + QObjectPrivate::connect(this, &QTreeWidget::entered, + d, &QTreeWidgetPrivate::_q_emitItemEntered), + QObjectPrivate::connect(this, &QTreeWidget::expanded, + d, &QTreeWidgetPrivate::_q_emitItemExpanded), + QObjectPrivate::connect(this, &QTreeWidget::collapsed, + d, &QTreeWidgetPrivate::_q_emitItemCollapsed), + QObjectPrivate::connect(model(), &QAbstractItemModel::dataChanged, + d, &QTreeWidgetPrivate::_q_emitItemChanged), + QObjectPrivate::connect(model(), &QAbstractItemModel::dataChanged, + d, &QTreeWidgetPrivate::_q_dataChanged), + QObjectPrivate::connect(model(), &QAbstractItemModel::columnsRemoved, + d, &QTreeWidgetPrivate::_q_sort), + QObjectPrivate::connect(selectionModel(), &QItemSelectionModel::currentChanged, + d, &QTreeWidgetPrivate::_q_emitCurrentItemChanged), + QObjectPrivate::connect(selectionModel(), &QItemSelectionModel::selectionChanged, + d, &QTreeWidgetPrivate::_q_selectionChanged) + }; header()->setSectionsClickable(false); } @@ -2604,6 +2613,8 @@ QTreeWidget::QTreeWidget(QWidget *parent) QTreeWidget::~QTreeWidget() { + Q_D(QTreeWidget); + d->clearConnections(); } /* |