if (!infoXmlNode.isNull()) {
QDomElement infoXml = infoXmlNode.toElement();
QString profilePath = infoXml.attribute("profile");
+ if (!profilePath.isEmpty()) setProfilePath(profilePath);
double version = infoXml.attribute("version").toDouble();
if (version < 0.7) convertDocument(version);
- if (!profilePath.isEmpty()) setProfilePath(profilePath);
- QDomNodeList producers = infoXmlNode.childNodes();
+ QDomNodeList producers = m_document.elementsByTagName("producer"); //infoXmlNode.childNodes();
QDomElement e;
for (int i = 0; i < producers.count(); i++) {
e = producers.item(i).cloneNode().toElement();
- if (!e.isNull() && e.tagName() == "kdenlive_producer") {
- e.setTagName("producer");
+ if (!e.isNull() && e.attribute("id") != "black") {
+ //e.setTagName("producer");
addClip(e, e.attribute("id").toInt());
}
}
QDomNode multitrack = m_document.elementsByTagName("multitrack").at(0);
QDomNodeList playlists = m_document.elementsByTagName("playlist");
+ QDomNode props = m_document.elementsByTagName("properties").at(0).toElement();
+ QString profile = props.toElement().attribute("videoprofile");
+ if (!profile.isEmpty()) {
+ setProfilePath(profile);
+ } else setProfilePath("dv_pal");
+
// move playlists outside of tractor and add the tracks instead
int max = playlists.count();
for (int i = 0; i < max; i++) {
QDomText value = m_document.createTextNode("237");
property.appendChild(value);
tr.appendChild(property);
+ } else {
+ // convert transition
+ QDomNamedNodeMap attrs = tr.attributes();
+ for (unsigned int j = 0; j < attrs.count(); j++) {
+ QString attrName = attrs.item(j).nodeName();
+ if (attrName != "in" && attrName != "out" && attrName != "id") {
+ QDomElement property = m_document.createElement("property");
+ property.setAttribute("name", attrName);
+ QDomText value = m_document.createTextNode(attrs.item(j).nodeValue());
+ property.appendChild(value);
+ tr.appendChild(property);
+ }
+ }
}
}
tractor.insertAfter(transitions.at(0), QDomNode());
}
+
// change producer names
QDomNodeList producers = m_document.elementsByTagName("producer");
max = producers.count();
+
+ for (int i = 0; i < max; i++) {
+ QDomElement prod = producers.at(0).toElement();
+ int duration = prod.attribute("duration").toInt();
+ if (duration > 0) prod.setAttribute("out", QString::number(duration));
+ westley.insertBefore(prod, QDomNode());
+ }
+
+ QDomNode westley0 = m_document.elementsByTagName("westley").at(0);
+ westley0.removeChild(kdenlivedoc);
+
+ QDomNodeList elements = westley.childNodes();
+ max = elements.count();
for (int i = 0; i < max; i++) {
- QDomNode prod = producers.at(i);
- prod.toElement().setTagName("kdenlive_producer");
- //kdenlivedoc.insertBefore(prod, QDomNode());
+ QDomElement prod = elements.at(0).toElement();
+ westley0.insertAfter(prod, QDomNode());
}
+ westley0.removeChild(westley);
kDebug() << "///////////////// CONVERTED DOC:";
kDebug() << m_document.toString();
break;
} else if (p.attribute("name") == "a_track") a_track = p.text().toInt();
else if (p.attribute("name") == "b_track") b_track = m_projectTracks - 1 - p.text().toInt();
- else if (p.attribute("name") == "mlt_service") mlt_service = p.text().toInt();
+ else if (p.attribute("name") == "mlt_service") mlt_service = p.text();
}
}
if (transitionAdd) {
transitionInfo.startPos = GenTime(e.attribute("in").toInt(), m_doc->fps());
transitionInfo.endPos = GenTime(e.attribute("out").toInt(), m_doc->fps());
transitionInfo.track = b_track;
+ kDebug() << "/////////////// +++++++++++ ADDING TRANSITION ON TRACK: " << b_track << ", TOTAL TRKA: " << m_projectTracks;
Transition *tr = new Transition(transitionInfo, a_track, m_scale, m_doc->fps(), QDomElement());
m_scene->addItem(tr);
}
m_trackview->setDuration(duration);
+ kDebug() << "/////////// TOTAL PROJECT DURATION: " << duration;
slotRebuildTrackHeaders();
//m_trackview->setCursorPos(cursorPos);
//m_scrollBox->setGeometry(0, 0, 300 * zoomFactor(), m_scrollArea->height());
ItemInfo clipinfo;
clipinfo.startPos = GenTime(position, m_doc->fps());
- clipinfo.endPos = GenTime(out, m_doc->fps());
+ clipinfo.endPos = clipinfo.startPos + GenTime(out, m_doc->fps());
clipinfo.track = ix;
kDebug() << "// INSERTING CLIP: " << in << "x" << out << ", track: " << ix << ", ID: " << id << ", SCALE: " << m_scale << ", FPS: " << m_doc->fps();
ClipItem *item = new ClipItem(clip, clipinfo, m_scale, m_doc->fps());