svn path=/branches/KDE4/; revision=2885
if (m_fps == 30000.0 / 1001.0) m_timecode.setFormat(30, true);
else m_timecode.setFormat((int) m_fps);
if (m_fps == 30000.0 / 1001.0) m_timecode.setFormat(30, true);
else m_timecode.setFormat((int) m_fps);
- m_render->setSceneList(m_document.toString(), m_startPos);
//kDebug() << "// SETTING SCENE LIST:\n\n" << m_document.toString();
//kDebug() << "// SETTING SCENE LIST:\n\n" << m_document.toString();
connect(m_autoSaveTimer, SIGNAL(timeout()), this, SLOT(slotAutoSave()));
}
connect(m_autoSaveTimer, SIGNAL(timeout()), this, SLOT(slotAutoSave()));
}
+void KdenliveDoc::setSceneList() {
+ m_render->setSceneList(m_document.toString(), m_startPos);
+ checkProjectClips();
+}
+
QDomDocument KdenliveDoc::createEmptyDocument(const int videotracks, const int audiotracks) {
// Creating new document
QDomDocument doc;
QDomDocument KdenliveDoc::createEmptyDocument(const int videotracks, const int audiotracks) {
// Creating new document
QDomDocument doc;
QString getLadspaFile() const;
void setZone(int start, int end);
QPoint zone() const;
QString getLadspaFile() const;
void setZone(int start, int end);
QPoint zone() const;
connect(m_trackview, SIGNAL(trackHeightChanged()), this, SLOT(slotRebuildTrackHeaders()));
parseDocument(m_doc->toXml());
connect(m_trackview, SIGNAL(trackHeightChanged()), this, SLOT(slotRebuildTrackHeaders()));
parseDocument(m_doc->toXml());
connect(m_trackview, SIGNAL(cursorMoved(int, int)), m_ruler, SLOT(slotCursorMoved(int, int)));
connect(m_trackview->horizontalScrollBar(), SIGNAL(valueChanged(int)), m_ruler, SLOT(slotMoveRuler(int)));
connect(m_trackview, SIGNAL(mousePosition(int)), this, SIGNAL(mousePosition(int)));
connect(m_trackview, SIGNAL(cursorMoved(int, int)), m_ruler, SLOT(slotCursorMoved(int, int)));
connect(m_trackview->horizontalScrollBar(), SIGNAL(valueChanged(int)), m_ruler, SLOT(slotMoveRuler(int)));
connect(m_trackview, SIGNAL(mousePosition(int)), this, SIGNAL(mousePosition(int)));
}*/
// parse project tracks
}*/
// parse project tracks
+ QDomElement tractor = doc.elementsByTagName("tractor").item(0).toElement();
QDomNodeList tracks = doc.elementsByTagName("track");
QDomNodeList playlists = doc.elementsByTagName("playlist");
int duration = 300;
QDomNodeList tracks = doc.elementsByTagName("track");
QDomNodeList playlists = doc.elementsByTagName("playlist");
int duration = 300;
// parse transitions
QDomNodeList transitions = doc.elementsByTagName("transition");
// parse transitions
QDomNodeList transitions = doc.elementsByTagName("transition");
- int projectTransitions = transitions.count();
//kDebug() << "//////////// TIMELINE FOUND: " << projectTransitions << " transitions";
//kDebug() << "//////////// TIMELINE FOUND: " << projectTransitions << " transitions";
- for (int i = 0; i < projectTransitions; i++) {
+ for (int i = 0; i < transitions.count(); i++) {
e = transitions.item(i).toElement();
QDomNodeList transitionparams = e.childNodes();
bool transitionAdd = true;
e = transitions.item(i).toElement();
QDomNodeList transitionparams = e.childNodes();
bool transitionAdd = true;
transitionInfo.endPos = GenTime(e.attribute("out").toInt() + 1, m_doc->fps());
transitionInfo.track = m_projectTracks - 1 - b_track;
//kDebug() << "/////////////// +++++++++++ ADDING TRANSITION ON TRACK: " << b_track << ", TOTAL TRKA: " << m_projectTracks;
transitionInfo.endPos = GenTime(e.attribute("out").toInt() + 1, m_doc->fps());
transitionInfo.track = m_projectTracks - 1 - b_track;
//kDebug() << "/////////////// +++++++++++ ADDING TRANSITION ON TRACK: " << b_track << ", TOTAL TRKA: " << m_projectTracks;
- Transition *tr = new Transition(transitionInfo, a_track, m_doc->fps(), base, isAutomatic);
- if (forceTrack) tr->setForcedTrack(true, a_track);
- m_scene->addItem(tr);
+ if (transitionInfo.startPos >= transitionInfo.endPos) {
+ // invalid transition, remove it.
+ m_documentErrors.append(i18n("Removed invalid transition: %1\n", e.attribute("id")));
+ kDebug()<<"///// REMOVED INVALID TRANSITION: "<<e.attribute("id");
+ tractor.removeChild(transitions.item(i));
+ i--;
+ }
+ else {
+ Transition *tr = new Transition(transitionInfo, a_track, m_doc->fps(), base, isAutomatic);
+ if (forceTrack) tr->setForcedTrack(true, a_track);
+ m_scene->addItem(tr);
+ }