]> git.sesse.net Git - kdenlive/blobdiff - src/docclipbase.cpp
Use char for single character [krazy 1-44] by Mikko Rapeli
[kdenlive] / src / docclipbase.cpp
index 094e9c714c3eff6d20951e369974c18bc8ba7294..4694e1758909a6aa91c5f7338c88d43e24a74502 100644 (file)
@@ -66,7 +66,7 @@ DocClipBase::DocClipBase(ClipManager *clipManager, QDomElement xml, const QStrin
     }
 
     if (xml.hasAttribute("cutzones")) {
-        QStringList cuts = xml.attribute("cutzones").split(";", QString::SkipEmptyParts);
+        QStringList cuts = xml.attribute("cutzones").split(';', QString::SkipEmptyParts);
         for (int i = 0; i < cuts.count(); i++) {
             QString z = cuts.at(i);
             addCutZone(z.section('-', 0, 0).toInt(), z.section('-', 1, 1).toInt(), z.section('-', 2, 2));
@@ -235,7 +235,7 @@ qulonglong DocClipBase::fileSize() const
 }
 
 // virtual
-QDomElement DocClipBase::toXML() const
+QDomElement DocClipBase::toXML(bool hideTemporaryProperties) const
 {
     QDomDocument doc;
     QDomElement clip = doc.createElement("producer");
@@ -243,6 +243,7 @@ QDomElement DocClipBase::toXML() const
     QMapIterator<QString, QString> i(m_properties);
     while (i.hasNext()) {
         i.next();
+        if (hideTemporaryProperties && i.key().startsWith('_')) continue;
         if (!i.value().isEmpty()) clip.setAttribute(i.key(), i.value());
     }
     doc.appendChild(clip);
@@ -404,7 +405,7 @@ void DocClipBase::deleteProducers()
 {
     if (m_thumbProd) m_thumbProd->clearProducer();
     
-    if (numReferences() > 0) {
+    if (numReferences() > 0 && (!m_baseTrackProducers.isEmpty() || m_videoOnlyProducer || !m_audioTrackProducers.isEmpty())) {
         // Clip is used in timeline, delay producers deletion
         if (m_videoOnlyProducer) m_toDeleteProducers.append(m_videoOnlyProducer);
         for (int i = 0; i < m_baseTrackProducers.count(); i++) {
@@ -650,6 +651,7 @@ Mlt::Producer *DocClipBase::getCloneProducer()
     return prod;
 }
 
+
 Mlt::Producer *DocClipBase::getProducer(int track)
 {
     QMutexLocker locker(&m_producerMutex);