info.track = m_document->tracksCount() - item->track();
int endPos = m_document->renderer()->mltChangeClipSpeed(info, speed, oldspeed, baseclip->producer());
if (endPos >= 0) {
- item->setSpeed(speed);
- item->updateRectGeometry();
- if (item->cropDuration().frames(m_document->fps()) > endPos)
- item->AbstractClipItem::resizeEnd(info.startPos.frames(m_document->fps()) + endPos, speed);
- m_document->setModified(true);
- }
- else emit displayMessage(i18n("Invalid clip"), ErrorMessage);
+ item->setSpeed(speed);
+ item->updateRectGeometry();
+ if (item->cropDuration().frames(m_document->fps()) > endPos)
+ item->AbstractClipItem::resizeEnd(info.startPos.frames(m_document->fps()) + endPos, speed);
+ m_document->setModified(true);
+ } else emit displayMessage(i18n("Invalid clip"), ErrorMessage);
}
void CustomTrackView::cutSelectedClips() {
// virtual
QDomElement DocClipBase::toXML() const {
QDomDocument doc;
-
QDomElement clip = doc.createElement("producer");
QMapIterator<QString, QString> i(m_properties);
i.next();
if (!i.value().isEmpty()) clip.setAttribute(i.key(), i.value());
}
- //doc.appendChild(clip);
+ doc.appendChild(clip);
//kDebug()<<"/// CLIP XML: "<<doc.toString();
- return clip;
+ return doc.documentElement();
}
DocClipBase *DocClipBase::
kDebug() << "ERROR; CANNOT CREATE AUTOSAVE FILE";
}
kDebug() << "// AUTOSAVE FILE: " << m_autosave->fileName();
- QDomDocument doc;
+ QString doc;
if (KdenliveSettings::dropbframes()) {
KdenliveSettings::setDropbframes(false);
m_clipManager->updatePreviewSettings();
- doc.setContent(m_render->sceneList());
+ doc = m_render->sceneList();
KdenliveSettings::setDropbframes(true);
m_clipManager->updatePreviewSettings();
- } else doc.setContent(m_render->sceneList());
+ } else doc = m_render->sceneList();
saveSceneList(m_autosave->fileName(), doc);
}
}
return QPoint(m_zoneStart, m_zoneEnd);
}
-bool KdenliveDoc::saveSceneList(const QString &path, QDomDocument sceneList) {
+bool KdenliveDoc::saveSceneList(const QString &path, const QString &scene) {
+ QDomDocument sceneList;
+ sceneList.setContent(scene, true);
QDomNode wes = sceneList.elementsByTagName("westley").at(0);
-
QDomElement addedXml = sceneList.createElement("kdenlivedoc");
+ wes.appendChild(addedXml);
+
QDomElement markers = sceneList.createElement("markers");
addedXml.setAttribute("version", "0.82");
addedXml.setAttribute("profile", profilePath());
addedXml.appendChild(markers);
if (!m_guidesXml.isNull()) addedXml.appendChild(sceneList.importNode(m_guidesXml, true));
- wes.appendChild(addedXml);
//wes.appendChild(doc.importNode(kdenliveData, true));
QFile file(path);
KMessageBox::error(kapp->activeWindow(), i18n("Cannot write to file %1", path));
return false;
}
+
QTextStream out(&file);
out << sceneList.toString();
file.close();
}
}
-QString KdenliveDoc::profilePath() const {
+const QString &KdenliveDoc::profilePath() const {
return m_profile.path;
}
return m_modified;
}
-QString KdenliveDoc::description() const {
+const QString KdenliveDoc::description() const {
if (m_url.isEmpty())
return i18n("Untitled") + " / " + m_profile.description;
else
void deleteProjectClip(QList <QString> ids);
/** Inform application of the audio thumbnails generation progress */
void setThumbsProgress(const QString &message, int progress);
- QString profilePath() const;
+ const QString &profilePath() const;
MltVideoProfile mltProfile() const;
- QString description() const;
+ const QString description() const;
void setUrl(KUrl url);
void setProfilePath(QString path);
const QString &getFreeClipId();
int zoom() const;
const double dar();
double projectDuration() const;
- bool saveSceneList(const QString &path, QDomDocument sceneList);
+ bool saveSceneList(const QString &path, const QString &scene);
int tracksCount() const;
TrackInfo trackInfoAt(int ix) const;
void insertTrack(int ix, TrackInfo type);
}
bool MainWindow::saveFileAs(const QString &outputFileName) {
- QDomDocument currentSceneList;
+ QString currentSceneList;
if (KdenliveSettings::dropbframes()) {
KdenliveSettings::setDropbframes(false);
m_activeDocument->clipManager()->updatePreviewSettings();
render->saveSceneList(path, info);
}
-QDomDocument Monitor::sceneList() {
- if (render == NULL) return QDomDocument();
- QDomDocument doc;
- doc.setContent(render->sceneList());
- return doc;
+const QString Monitor::sceneList() {
+ if (render == NULL) return QString();
+ return render->sceneList();
}
bool isActive() const;
void pause();
void setupMenu(QMenu *goMenu, QAction *playZone, QAction *loopZone, QMenu *markerMenu = NULL);
- QDomDocument sceneList();
+ const QString sceneList();
DocClipBase *activeClip();
GenTime position();
void checkOverlay();
}
/** Create the producer from the Westley QDomDocument */
-QString Render::sceneList() {
+const QString Render::sceneList() {
QString playlist;
Mlt::Consumer westleyConsumer(*m_mltProfile , "westley:kdenlive_playlist");
m_mltProducer->optimise();
Mlt::Producer clip(trackPlaylist.get_clip(clipIndex));
if (!clip.is_valid() || clip.is_blank()) {
- // invalid clip
- return -1;
+ // invalid clip
+ return -1;
}
Mlt::Producer clipparent = clip.parent();
if (!clipparent.is_valid() || clipparent.is_blank()) {
- // invalid clip
- return -1;
+ // invalid clip
+ return -1;
}
QString serv = clipparent.get("mlt_service");
QString id = clipparent.get("id");
void setSceneList(QDomDocument list, int position = 0);
void setSceneList(QString playlist, int position = 0);
void setProducer(Mlt::Producer *producer, int position);
- QString sceneList();
+ const QString sceneList();
void saveSceneList(QString path, QDomElement kdenliveData = QDomElement());
/** Wraps the VEML command of the same name. Tells the renderer to