]> git.sesse.net Git - kdenlive/blobdiff - src/renderwidget.cpp
Fixed: Rendering possible again
[kdenlive] / src / renderwidget.cpp
index 35a2e01708b8e1d72f8589f04b54c46ea0245cf3..eb120bfc772f5245feb2a75c1464513cb74e3cc8 100644 (file)
@@ -594,6 +594,10 @@ void RenderWidget::slotPrepareExport(bool scriptExport)
         KMessageBox::sorry(this, i18n("Cannot play video after rendering because the default video player application is not set.\nPlease define it in Kdenlive settings dialog."));
     QString chapterFile;
     if (m_view.create_chapter->isChecked()) chapterFile = m_view.out_file->url().path() + ".dvdchapter";
+
+    // mantisbt 1051
+    KStandardDirs::makeDir(m_view.out_file->url().directory());
+
     emit prepareRenderingData(scriptExport, m_view.render_zone->isChecked(), chapterFile);
 }
 
@@ -609,7 +613,7 @@ void RenderWidget::slotExport(bool scriptExport, int zoneIn, int zoneOut, const
     // Check whether target file has an extension.
     // If not, ask whether extension should be added or not.
     QString extension = item->data(ExtensionRole).toString();
-    if (!dest.endsWith(extension)) {
+    if (!dest.endsWith(extension, Qt::CaseInsensitive)) {
         if (KMessageBox::questionYesNo(this, i18n("File has no extension. Add extension (%1)?", extension)) == KMessageBox::Yes) {
             dest.append("." + extension);
         }
@@ -990,17 +994,24 @@ void RenderWidget::refreshView()
 
 KUrl RenderWidget::filenameWithExtension(KUrl url, QString extension)
 {
-    QString path;
-    if (!url.isEmpty()) {
-        path = url.path();
-        int pos = path.lastIndexOf('.') + 1;
-        if (pos == 0) path.append('.' + extension);
-        else path = path.left(pos) + extension;
+    QString directory = url.directory(KUrl::AppendTrailingSlash | KUrl::ObeyTrailingSlash);
+    QString filename = url.fileName(KUrl::ObeyTrailingSlash);
+    QString ext;
 
-    } else {
-        path = m_projectFolder + "untitled." + extension;
+    if (extension.at(0) == '.') ext = extension;
+    else ext = '.' + extension;
+
+    if (filename.isEmpty()) filename = i18n("untitled");
+
+    int pos = filename.lastIndexOf('.');
+    if (pos == 0) filename.append(ext);
+    else {
+        if (!filename.endsWith(ext, Qt::CaseInsensitive)) {
+            filename = filename.left(pos) + ext;
+        }
     }
-    return KUrl(path);
+
+    return KUrl(directory + filename);
 }