From d0a7184b48382bbffa1fdef032932a31d5bc6217 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Fri, 19 Dec 2008 16:50:54 +0000 Subject: [PATCH] Fix wrong project clip deletion, fixes: http://www.kdenlive.org:80/mantis/view.php?id=493 svn path=/branches/KDE4/; revision=2809 --- src/clipmanager.cpp | 3 ++- src/docclipbase.cpp | 4 +++- src/kdenlivedoc.cpp | 2 +- src/kthumb.cpp | 6 +++++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/clipmanager.cpp b/src/clipmanager.cpp index eff38756..bb33d430 100644 --- a/src/clipmanager.cpp +++ b/src/clipmanager.cpp @@ -115,7 +115,8 @@ void ClipManager::slotDeleteClip(const QString &clipId) { void ClipManager::deleteClip(const QString &clipId) { for (int i = 0; i < m_clipList.count(); i++) { if (m_clipList.at(i)->getId() == clipId) { - m_clipList.removeAt(i); + DocClipBase *clip = m_clipList.takeAt(i); + delete clip; break; } } diff --git a/src/docclipbase.cpp b/src/docclipbase.cpp index 2b147d9c..709a61de 100644 --- a/src/docclipbase.cpp +++ b/src/docclipbase.cpp @@ -66,7 +66,9 @@ DocClipBase::DocClipBase(ClipManager *clipManager, QDomElement xml, const QStrin }*/ DocClipBase::~DocClipBase() { - if (m_thumbProd) delete m_thumbProd; + if (m_thumbProd) { + delete m_thumbProd; + } qDeleteAll(m_baseTrackProducers); } diff --git a/src/kdenlivedoc.cpp b/src/kdenlivedoc.cpp index 77732d30..01b282a5 100644 --- a/src/kdenlivedoc.cpp +++ b/src/kdenlivedoc.cpp @@ -1163,7 +1163,7 @@ void KdenliveDoc::addClip(QDomElement elem, QString clipId, bool createClipItem) if (KMessageBox::messageBox(kapp->activeWindow(), KMessageBox::WarningYesNo, i18n("Clip %1
is invalid or missing, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search manually")), /*KGuiItem(i18n("Remove from project")),*/ KGuiItem(i18n("Keep as placeholder"))) == KMessageBox::Yes) newpath = KFileDialog::getExistingDirectory(KUrl("kfiledialog:///clipfolder"), kapp->activeWindow(), i18n("Looking for %1", path)); } else if (KMessageBox::messageBox(kapp->activeWindow(), KMessageBox::WarningYesNo, i18n("Clip %1
is invalid or missing, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search manually")), /*KGuiItem(i18n("Remove from project")),*/ KGuiItem(i18n("Keep as placeholder"))) == KMessageBox::Yes) - newpath = KFileDialog::getOpenFileName(KUrl("kfiledialog:///clipfolder"), QString(), kapp->activeWindow(), i18n("Looking for %1", path)); + newpath = KFileDialog::getOpenFileName(KUrl("kfiledialog:///clipfolder"), QString(), kapp->activeWindow(), i18n("Looking for %1", path)); } if (action == KMessageBox::Yes) { kDebug() << "// ASKED FOR SRCH CLIP: " << clipId; diff --git a/src/kthumb.cpp b/src/kthumb.cpp index a7e12e10..70864a3e 100644 --- a/src/kthumb.cpp +++ b/src/kthumb.cpp @@ -132,7 +132,11 @@ KThumb::KThumb(ClipManager *clipManager, KUrl url, const QString &id, const QStr } KThumb::~KThumb() { - if (audioThumbProducer.isRunning()) audioThumbProducer.exit(); + if (audioThumbProducer.isRunning()) { + slotAudioThumbOver(); + audioThumbProducer.stop_me = true; + audioThumbProducer.wait(300); + } } void KThumb::setProducer(Mlt::Producer *producer) { -- 2.39.2