From c0e84875f38151ce41c1dd86e7a2668ed9024aef Mon Sep 17 00:00:00 2001 From: baldurk Date: Wed, 18 Mar 2020 12:02:13 +0000 Subject: [PATCH] Forward signals/slots as well in ForwardingDelegate --- qrenderdoc/Code/QRDUtils.h | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/qrenderdoc/Code/QRDUtils.h b/qrenderdoc/Code/QRDUtils.h index d5c99591d..5ebe34eb4 100644 --- a/qrenderdoc/Code/QRDUtils.h +++ b/qrenderdoc/Code/QRDUtils.h @@ -427,7 +427,28 @@ class ForwardingDelegate : public QStyledItemDelegate public: explicit ForwardingDelegate(QObject *parent = NULL) : QStyledItemDelegate(parent) {} ~ForwardingDelegate() {} - void setForwardDelegate(QAbstractItemDelegate *real) { m_delegate = real; } + void setForwardDelegate(QAbstractItemDelegate *real) + { + if(m_delegate) + { + QObject::disconnect(m_delegate, &QAbstractItemDelegate::commitData, this, + &QAbstractItemDelegate::commitData); + QObject::disconnect(m_delegate, &QAbstractItemDelegate::closeEditor, this, + &QAbstractItemDelegate::closeEditor); + QObject::disconnect(m_delegate, &QAbstractItemDelegate::sizeHintChanged, this, + &QAbstractItemDelegate::sizeHintChanged); + } + m_delegate = real; + if(m_delegate) + { + QObject::connect(m_delegate, &QAbstractItemDelegate::commitData, this, + &QAbstractItemDelegate::commitData); + QObject::connect(m_delegate, &QAbstractItemDelegate::closeEditor, this, + &QAbstractItemDelegate::closeEditor); + QObject::connect(m_delegate, &QAbstractItemDelegate::sizeHintChanged, this, + &QAbstractItemDelegate::sizeHintChanged); + } + } void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override {