summaryrefslogtreecommitdiff
path: root/src/plugins/qtsupport/qtoptionspage.cpp
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@theqtcompany.com>2015-09-09 16:13:15 +0200
committerDaniel Teske <daniel.teske@theqtcompany.com>2015-09-09 16:00:22 +0000
commit3ea963bdcf45690712ce6b8cefd3080b099f9318 (patch)
treefb601573eebfad500f11d990a0dc005c843196fe /src/plugins/qtsupport/qtoptionspage.cpp
parentb961955fdf81de2437e91af2ad4ad51c3dd4f735 (diff)
downloadqt-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.cpp8
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()