]> git.sesse.net Git - kdenlive/blobdiff - src/renderwidget.cpp
Fix forcing some clip properties not always working correctly
[kdenlive] / src / renderwidget.cpp
index 690e36e5e19ed4c7b6c63cc3777368122dad4218..d0d486e580acfc20c0cdee13bc05a9af494d8e0c 100644 (file)
@@ -1551,7 +1551,6 @@ void RenderWidget::parseFile(QString exportFile, bool editable)
     bool replaceLibfaacCodec = false;
     if (!acodecsList.contains("aac") && acodecsList.contains("libfaac")) replaceLibfaacCodec = true;
 
-
     if (editable || groups.count() == 0) {
         QDomElement profiles = doc.documentElement();
         if (editable && profiles.attribute("version", 0).toInt() < 1) {
@@ -2077,7 +2076,7 @@ void RenderWidget::setRenderProfile(QMap <QString, QString> props)
 bool RenderWidget::startWaitingRenderJobs()
 {
     m_blockProcessing = true;
-    QString autoscriptFile = getFreeScriptName("auto");
+    QString autoscriptFile = getFreeScriptName(KUrl(), "auto");
     QFile file(autoscriptFile);
     if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
         kWarning() << "//////  ERROR writing to file: " << autoscriptFile;
@@ -2115,15 +2114,18 @@ bool RenderWidget::startWaitingRenderJobs()
     return true;
 }
 
-QString RenderWidget::getFreeScriptName(const QString &prefix)
+QString RenderWidget::getFreeScriptName(const KUrl &projectName, const QString &prefix)
 {
     int ix = 0;
     QString scriptsFolder = m_projectFolder + "scripts/";
     KStandardDirs::makeDir(scriptsFolder);
     QString path;
+    QString fileName;
+    if (projectName.isEmpty()) fileName = i18n("script");
+    else fileName = projectName.fileName().section('.', 0, -2) + "_";
     while (path.isEmpty() || QFile::exists(path)) {
         ix++;
-        path = scriptsFolder + prefix + i18n("script") + QString::number(ix).rightJustified(3, '0', false) + ".sh";
+        path = scriptsFolder + prefix + fileName + QString::number(ix).rightJustified(3, '0', false) + ".sh";
     }
     return path;
 }
@@ -2147,12 +2149,16 @@ void RenderWidget::missingClips(bool hasMissing)
 
 void RenderWidget::errorMessage(const QString &message)
 {
-    show();
     if (!message.isEmpty()) {
 #if KDE_IS_VERSION(4,7,0)
         m_infoMessage->setMessageType(KMessageWidget::Warning);
         m_infoMessage->setText(message);
+#if KDE_IS_VERSION(4,10,0)
         m_infoMessage->animatedShow();
+#else
+       // Workaround KDE bug in KMessageWidget
+       QTimer::singleShot(0, m_infoMessage, SLOT(animatedShow()));
+#endif
 #else
         m_view.errorLabel->setText(message);
         m_view.errorBox->setHidden(false);
@@ -2160,7 +2166,11 @@ void RenderWidget::errorMessage(const QString &message)
     }
     else {
 #if KDE_IS_VERSION(4,7,0)
+#if KDE_IS_VERSION(4,10,0)
         m_infoMessage->animatedHide();
+#else
+       QTimer::singleShot(0, m_infoMessage, SLOT(animatedHide()));
+#endif
 #else
         m_view.errorBox->setHidden(true);
         m_view.errorLabel->setText(QString());