diff options
author | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-09-09 16:13:15 +0200 |
---|---|---|
committer | Daniel Teske <daniel.teske@theqtcompany.com> | 2015-09-09 16:00:22 +0000 |
commit | 3ea963bdcf45690712ce6b8cefd3080b099f9318 (patch) | |
tree | fb601573eebfad500f11d990a0dc005c843196fe /src/plugins/qtsupport/qtoptionspage.cpp | |
parent | b961955fdf81de2437e91af2ad4ad51c3dd4f735 (diff) | |
download | qt-creator-3ea963bdcf45690712ce6b8cefd3080b099f9318.tar.gz |
QtOptionsPage: Fix some more crashes
Since QtVersionItem owns the version, deleting it deletes
the version too. Also ensure that we first set the new version
in the item before updating the ui and then delete the old version.
Task-number: QTCREATORBUG-15004
Change-Id: I27014589f8eeb1c188a189ed4a7f92a4d2ac3bc1
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Diffstat (limited to 'src/plugins/qtsupport/qtoptionspage.cpp')
-rw-r--r-- | src/plugins/qtsupport/qtoptionspage.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/plugins/qtsupport/qtoptionspage.cpp b/src/plugins/qtsupport/qtoptionspage.cpp index ee34087f41..73838474df 100644 --- a/src/plugins/qtsupport/qtoptionspage.cpp +++ b/src/plugins/qtsupport/qtoptionspage.cpp @@ -393,7 +393,6 @@ void QtOptionsPageWidget::cleanUpQtVersions() foreach (QtVersionItem *item, toRemove) { m_model->takeItem(item); - delete item->version(); delete item; } @@ -686,7 +685,6 @@ void QtOptionsPageWidget::updateQtVersions(const QList<int> &additions, const QL // Remove changed/removed items: foreach (QtVersionItem *item, toRemove) { m_model->takeItem(item); - delete item->version(); delete item; } @@ -787,7 +785,6 @@ void QtOptionsPageWidget::removeQtDir() return; m_model->takeItem(item); - delete item->version(); delete item; updateCleanUpButton(); @@ -822,14 +819,15 @@ void QtOptionsPageWidget::editPath() version->setId(current->uniqueId()); if (current->unexpandedDisplayName() != current->defaultUnexpandedDisplayName(current->qmakeCommand())) version->setUnexpandedDisplayName(current->displayName()); - delete current; // Update ui - userChangedCurrentVersion(); QtVersionItem *item = currentItem(); item->setVersion(version); item->setToolChainId(defaultToolChainId(version)); item->setIcon(version->isValid()? m_validVersionIcon : m_invalidVersionIcon); + userChangedCurrentVersion(); + + delete current; } void QtOptionsPageWidget::updateDebuggingHelperUi() |