Disconnect upon construction

Since we connect to "this" via PMF syntax, we need to disconnect while
QQuickDialog is not partially destroyed.

Pick-to: 6.2
Change-Id: Ia8797dd7b12bf9ce796b17fc0420273191e262cd
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
This commit is contained in:
Volker Hilsheimer 2021-11-30 14:22:54 +01:00
parent 47822b45a6
commit e5e371291a
2 changed files with 13 additions and 0 deletions

View File

@ -212,6 +212,18 @@ QQuickDialog::QQuickDialog(QQuickDialogPrivate &dd, QObject *parent)
QObject::connect(d->popupItem, &QQuickPopupItem::implicitFooterHeightChanged, this, &QQuickDialog::implicitFooterHeightChanged);
}
QQuickDialog::~QQuickDialog()
{
Q_D(QQuickDialog);
QObject::disconnect(d->popupItem, &QQuickPopupItem::titleChanged, this, &QQuickDialog::titleChanged);
QObject::disconnect(d->popupItem, &QQuickPopupItem::headerChanged, this, &QQuickDialog::headerChanged);
QObject::disconnect(d->popupItem, &QQuickPopupItem::footerChanged, this, &QQuickDialog::footerChanged);
QObject::disconnect(d->popupItem, &QQuickPopupItem::implicitHeaderWidthChanged, this, &QQuickDialog::implicitHeaderWidthChanged);
QObject::disconnect(d->popupItem, &QQuickPopupItem::implicitHeaderHeightChanged, this, &QQuickDialog::implicitHeaderHeightChanged);
QObject::disconnect(d->popupItem, &QQuickPopupItem::implicitFooterWidthChanged, this, &QQuickDialog::implicitFooterWidthChanged);
QObject::disconnect(d->popupItem, &QQuickPopupItem::implicitFooterHeightChanged, this, &QQuickDialog::implicitFooterHeightChanged);
}
/*!
\qmlproperty string QtQuick.Controls::Dialog::title

View File

@ -79,6 +79,7 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickDialog : public QQuickPopup
public:
explicit QQuickDialog(QObject *parent = nullptr);
~QQuickDialog();
QString title() const;
void setTitle(const QString &title);