[Kdenlive-devel] [PATCH 10/37] slotRemoveSpace: Use QPointer
Mikko Rapeli
mikko.rapeli at iki.fi
Thu Jun 28 13:52:48 UTC 2012
Fixes crashes if parent is destroyed. Found by krazy. Details at:
http://blogs.kde.org/node/3919
---
src/customtrackview.cpp | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp
index 858a9a1..82715d9 100644
--- a/src/customtrackview.cpp
+++ b/src/customtrackview.cpp
@@ -3076,15 +3076,19 @@ void CustomTrackView::slotRemoveSpace()
if (m_menuPosition.isNull()) {
pos = GenTime(cursorPos(), m_document->fps());
- TrackDialog d(m_document, parentWidget());
- d.comboTracks->setCurrentIndex(m_selectedTrack);
- d.label->setText(i18n("Track"));
- d.before_select->setHidden(true);
- d.setWindowTitle(i18n("Remove Space"));
- d.video_track->setHidden(true);
- d.audio_track->setHidden(true);
- if (d.exec() != QDialog::Accepted) return;
- track = d.comboTracks->currentIndex();
+ QPointer<TrackDialog> d = new TrackDialog(m_document, parentWidget());
+ d->comboTracks->setCurrentIndex(m_selectedTrack);
+ d->label->setText(i18n("Track"));
+ d->before_select->setHidden(true);
+ d->setWindowTitle(i18n("Remove Space"));
+ d->video_track->setHidden(true);
+ d->audio_track->setHidden(true);
+ if (d->exec() != QDialog::Accepted) {
+ delete d;
+ return;
+ }
+ track = d->comboTracks->currentIndex();
+ delete d;
} else {
pos = GenTime((int)(mapToScene(m_menuPosition).x()), m_document->fps());
track = (int)(mapToScene(m_menuPosition).y() / m_tracksHeight);
--
1.7.10.4
More information about the Kdenlive
mailing list