]> git.sesse.net Git - kdenlive/blobdiff - src/clipmanager.cpp
Disable (until fixed) show frame on mouse move with razor tool. Fixes crash on clip...
[kdenlive] / src / clipmanager.cpp
index 7eb4145b93ef2dd6872322700a8ad1fa088df9fc..232b311cbec1972404e45fb6995d8be4240224ba 100644 (file)
@@ -31,6 +31,7 @@ ClipManager::ClipManager(KdenliveDoc *doc): m_doc(doc) {
 }
 
 ClipManager::~ClipManager() {
+    qDeleteAll(m_clipList);
 }
 
 void ClipManager::checkAudioThumbs() {
@@ -105,7 +106,7 @@ void ClipManager::slotAddClipFile(const KUrl url, const QString group, const int
     if (type->name().startsWith("image/")) {
         prod.setAttribute("type", (int) IMAGE);
         prod.setAttribute("in", "0");
-        prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()));
+        prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1);
     }
     AddClipCommand *command = new AddClipCommand(m_doc, prod, id, true);
     m_doc->commandStack()->push(command);
@@ -120,7 +121,7 @@ void ClipManager::slotAddColorClipFile(const QString name, const QString color,
     uint id = m_clipIdCounter++;
     prod.setAttribute("id", QString::number(id));
     prod.setAttribute("in", "0");
-    prod.setAttribute("out", m_doc->getFramePos(duration));
+    prod.setAttribute("out", m_doc->getFramePos(duration) - 1);
     prod.setAttribute("name", name);
     if (!group.isEmpty()) {
         prod.setAttribute("groupname", group);
@@ -130,7 +131,7 @@ void ClipManager::slotAddColorClipFile(const QString name, const QString color,
     m_doc->commandStack()->push(command);
 }
 
-void ClipManager::slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, const bool loop, QString group, const int groupId) {
+void ClipManager::slotAddSlideshowClipFile(const QString name, const QString path, int count, const QString duration, const bool loop, const bool fade, const QString &luma_duration, const QString &luma_file, const int softness, QString group, const int groupId) {
     QDomDocument doc;
     QDomElement prod = doc.createElement("producer");
     prod.setAttribute("resource", path);
@@ -138,10 +139,14 @@ void ClipManager::slotAddSlideshowClipFile(const QString name, const QString pat
     uint id = m_clipIdCounter++;
     prod.setAttribute("id", QString::number(id));
     prod.setAttribute("in", "0");
-    prod.setAttribute("out", m_doc->getFramePos(duration) * count);
+    prod.setAttribute("out", m_doc->getFramePos(duration) * count - 1);
     prod.setAttribute("ttl", m_doc->getFramePos(duration));
+    prod.setAttribute("luma_duration", m_doc->getFramePos(luma_duration));
     prod.setAttribute("name", name);
     prod.setAttribute("loop", loop);
+    prod.setAttribute("fade", fade);
+    prod.setAttribute("softness", QString::number(softness));
+    prod.setAttribute("luma_file", luma_file);
     if (!group.isEmpty()) {
         prod.setAttribute("groupname", group);
         prod.setAttribute("groupid", groupId);
@@ -152,12 +157,13 @@ void ClipManager::slotAddSlideshowClipFile(const QString name, const QString pat
 
 
 
-void ClipManager::slotAddTextClipFile(const QString path, const QString group, const int groupId) {
+void ClipManager::slotAddTextClipFile(const QString path, const QString xml, const QString group, const int groupId) {
     kDebug() << "/////  CLIP MANAGER, ADDING CLIP: " << path;
     QDomDocument doc;
     QDomElement prod = doc.createElement("producer");
     prod.setAttribute("resource", path + ".png");
     prod.setAttribute("xml", path);
+    prod.setAttribute("xmldata", xml);
     uint id = m_clipIdCounter++;
     prod.setAttribute("id", QString::number(id));
     if (!group.isEmpty()) {
@@ -165,8 +171,9 @@ void ClipManager::slotAddTextClipFile(const QString path, const QString group, c
         prod.setAttribute("groupid", groupId);
     }
     prod.setAttribute("type", (int) TEXT);
+    prod.setAttribute("transparency", "1");
     prod.setAttribute("in", "0");
-    prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()));
+    prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1);
     AddClipCommand *command = new AddClipCommand(m_doc, prod, id, true);
     m_doc->commandStack()->push(command);
 }