]> git.sesse.net Git - kdenlive/blobdiff - src/kdenlivedoc.cpp
Notes widget: context menu now allows to insert clickable timecode to make easy refer...
[kdenlive] / src / kdenlivedoc.cpp
index d4eaa6da10b21259885cc3948c26a552e28dbb89..e953b2eb381392b51b0d3091a9cc9e34041b9946 100644 (file)
@@ -166,12 +166,14 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup
                                 }
                                 mlt.removeChild(tracksinfo);
                             }
-
+                            QStringList expandedFolders;
                             QDomNodeList folders = m_document.elementsByTagName("folder");
                             for (int i = 0; i < folders.count(); i++) {
                                 e = folders.item(i).cloneNode().toElement();
+                                if (e.hasAttribute("opened")) expandedFolders.append(e.attribute("id"));
                                 m_clipManager->addFolder(e.attribute("id"), e.attribute("name"));
                             }
+                            m_documentProperties["expandedfolders"] = expandedFolders.join(";");
 
                             const int infomax = infoproducers.count();
                             QDomNodeList producers = m_document.elementsByTagName("producer");
@@ -507,7 +509,7 @@ void KdenliveDoc::slotAutoSave()
             kDebug() << "ERROR; CANNOT CREATE AUTOSAVE FILE";
         }
         kDebug() << "// AUTOSAVE FILE: " << m_autosave->fileName();
-        saveSceneList(m_autosave->fileName(), m_render->sceneList());
+        saveSceneList(m_autosave->fileName(), m_render->sceneList(), QStringList());
     }
 }
 
@@ -533,7 +535,7 @@ QPoint KdenliveDoc::zone() const
     return QPoint(m_documentProperties.value("zonein").toInt(), m_documentProperties.value("zoneout").toInt());
 }
 
-bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
+bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene, const QStringList expandedFolders)
 {
     QDomDocument sceneList;
     sceneList.setContent(scene, true);
@@ -587,7 +589,7 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
     addedXml.appendChild(docproperties);
 
     QDomElement docnotes = sceneList.createElement("documentnotes");
-    QDomText value = sceneList.createTextNode(m_notesWidget->toPlainText());
+    QDomText value = sceneList.createTextNode(m_notesWidget->toHtml());
     docnotes.appendChild(value);
     addedXml.appendChild(docnotes);
 
@@ -627,6 +629,7 @@ bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene)
         QDomElement folder = sceneList.createElement("folder");
         folder.setAttribute("id", f.key());
         folder.setAttribute("name", f.value());
+        if (expandedFolders.contains(f.key())) folder.setAttribute("opened", "1");
         addedXml.appendChild(folder);
     }
 
@@ -1394,6 +1397,12 @@ void KdenliveDoc::addTrackEffect(int ix, QDomElement effect)
                 //break;
             }
         }
+
+        if (effect.attribute("id") == "crop") {
+            // default use_profile to 1 for clips with proxies to avoid problems when rendering
+            if (e.attribute("name") == "use_profile" && getDocumentProperty("enableproxy") == "1")
+                e.setAttribute("value", "1");
+        }
     }
 
     m_tracksList[ix].effectsList.append(effect);
@@ -1526,5 +1535,13 @@ void KdenliveDoc::updateProjectFolderPlacesEntry()
     }
 }
 
+QStringList KdenliveDoc::getExpandedFolders()
+{
+    QStringList result = m_documentProperties.value("expandedfolders").split(';');
+    // this property is only needed once when opening project, so clear it now
+    m_documentProperties.remove("expandedfolders");
+    return result;
+}
+
 #include "kdenlivedoc.moc"