Fixes a crash if parent is deleted before exit. Found by krazy.
Details at: http://blogs.kde.org/node/3919
---
 plugins/sampleplugin/sampleplugin.cpp |   13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/plugins/sampleplugin/sampleplugin.cpp 
b/plugins/sampleplugin/sampleplugin.cpp
index 74b22f8..7710ea2 100644
--- a/plugins/sampleplugin/sampleplugin.cpp
+++ b/plugins/sampleplugin/sampleplugin.cpp
@@ -51,15 +51,15 @@ KUrl SamplePlugin::generatedClip(const QString &generator, 
const KUrl &projectFo
         ct++;
         counter = QString::number(ct).rightJustified(5, '0', false);
     }
-    QDialog d;
+    QPointer<QDialog> d = new QDialog;
     Ui::CountDown_UI view;
-    view.setupUi(&d);
+    view.setupUi(d);
     if (generator == i18n("Noise")) {
-        d.setWindowTitle(tr("Create Noise Clip"));
+        d->setWindowTitle(tr("Create Noise Clip"));
         view.font_label->setHidden(true);
         view.font->setHidden(true);
     } else {
-        d.setWindowTitle(tr("Create Countdown Clip"));
+        d->setWindowTitle(tr("Create Countdown Clip"));
         view.font->setValue(height);
     }
 
@@ -68,7 +68,7 @@ KUrl SamplePlugin::generatedClip(const QString &generator, 
const KUrl &projectFo
 
     QString clipFile = prePath + counter + ".mlt";
     view.path->setUrl(KUrl(clipFile));
-    if (d.exec() == QDialog::Accepted) {
+    if (d->exec() == QDialog::Accepted) {
         QDomDocument doc;
         QDomElement mlt = doc.createElement("mlt");
         QDomElement playlist = doc.createElement("playlist");
@@ -99,6 +99,7 @@ KUrl SamplePlugin::generatedClip(const QString &generator, 
const KUrl &projectFo
         if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
             kWarning() << "//////  ERROR writing to file: " << 
view.path->url().path();
             KMessageBox::error(0, i18n("Cannot write to file %1", 
view.path->url().path()));
+            delete d;
             return KUrl();
         }
         QTextStream out(&file);
@@ -106,9 +107,11 @@ KUrl SamplePlugin::generatedClip(const QString &generator, 
const KUrl &projectFo
         if (file.error() != QFile::NoError) {
             KMessageBox::error(0, i18n("Cannot write to file %1", 
view.path->url().path()));
             file.close();
+            delete d;
             return KUrl();
         }
         file.close();
+       delete d;
         return view.path->url();
     }
     return KUrl();
-- 
1.7.10.4


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Kdenlive-devel mailing list
Kdenlive-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kdenlive-devel

Reply via email to