X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fkdenlivedoc.cpp;h=cf065b7dea11777bcf1739a3d87593d546acd7aa;hb=787f4f5c61761da7d96b3b9143ca28a7b1dd4e5c;hp=d4eaa6da10b21259885cc3948c26a552e28dbb89;hpb=e71084bf388a41bc9494da9cd6f2a4d7af487962;p=kdenlive diff --git a/src/kdenlivedoc.cpp b/src/kdenlivedoc.cpp index d4eaa6da..cf065b7d 100644 --- a/src/kdenlivedoc.cpp +++ b/src/kdenlivedoc.cpp @@ -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); @@ -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); } @@ -1526,5 +1529,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"