X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fkdenlivedoc.cpp;h=ec7322e7b4ea5eecb5f85eccca27749070ef8c2c;hb=80c878e198cde92fcb14be699b0983e3e936789d;hp=61351c3aa117809b031ceb1475be4917961801e2;hpb=c5720a8894dd5a0dbd06f3330299dc669454fa06;p=kdenlive diff --git a/src/kdenlivedoc.cpp b/src/kdenlivedoc.cpp index 61351c3a..ec7322e7 100644 --- a/src/kdenlivedoc.cpp +++ b/src/kdenlivedoc.cpp @@ -43,8 +43,7 @@ #include "titlewidget.h" #include "mainwindow.h" - -KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup *undoGroup, const QString &profileName, const QPoint tracks, MainWindow *parent): QObject(parent), m_render(NULL), m_url(url), m_projectFolder(projectFolder), m_commandStack(new QUndoStack(undoGroup)), m_modified(false), m_documentLoadingProgress(0), m_documentLoadingStep(0.0), m_startPos(0), m_zoom(7), m_autosave(NULL) { +KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup *undoGroup, const QString &profileName, const QPoint tracks, Render *render, MainWindow *parent): QObject(parent), m_render(render), m_url(url), m_projectFolder(projectFolder), m_commandStack(new QUndoStack(undoGroup)), m_modified(false), m_documentLoadingProgress(0), m_documentLoadingStep(0.0), m_startPos(0), m_zoom(7), m_autosave(NULL) { m_clipManager = new ClipManager(this); m_autoSaveTimer = new QTimer(this); m_autoSaveTimer->setSingleShot(true); @@ -186,7 +185,12 @@ KdenliveDoc::KdenliveDoc(const KUrl &url, const KUrl &projectFolder, QUndoGroup 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(); + checkProjectClips(); + connect(m_autoSaveTimer, SIGNAL(timeout()), this, SLOT(slotAutoSave())); + } KdenliveDoc::~KdenliveDoc() { @@ -968,6 +972,7 @@ QUndoStack *KdenliveDoc::commandStack() { return m_commandStack; } +/* void KdenliveDoc::setRenderer(Render *render) { if (m_render) return; m_render = render; @@ -979,7 +984,7 @@ void KdenliveDoc::setRenderer(Render *render) { checkProjectClips(); } emit progressInfo(QString(), -1); -} +}*/ void KdenliveDoc::checkProjectClips() { if (m_render == NULL) return; @@ -1147,6 +1152,10 @@ void KdenliveDoc::addClip(QDomElement elem, QString clipId, bool createClipItem) int subtrack = clipId.section('_', 1, 1).toInt(); DocClipBase *clip = m_clipManager->getClipById(producerId); if (clip == NULL) { + /*kDebug()<<"// CLIP "<activeWindow(), KMessageBox::WarningYesNo, i18n("Clip %1
is invalid, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search automatically")), /*KGuiItem(i18n("Remove from project")), */KGuiItem(i18n("Keep as placeholder"))); + else action = (KMessageBox::ButtonCode)KMessageBox::messageBox(kapp->activeWindow(), KMessageBox::WarningYesNo, i18n("Clip %1
is invalid, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search automatically")), /*KGuiItem(i18n("Remove from project")), */KGuiItem(i18n("Keep as placeholder"))); } else { if (elem.attribute("type").toInt() == SLIDESHOW) { if (KMessageBox::messageBox(kapp->activeWindow(), KMessageBox::WarningYesNo, i18n("Clip %1
is invalid or missing, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search manually")), /*KGuiItem(i18n("Remove from project")),*/ KGuiItem(i18n("Keep as placeholder"))) == KMessageBox::Yes) newpath = KFileDialog::getExistingDirectory(KUrl("kfiledialog:///clipfolder"), kapp->activeWindow(), i18n("Looking for %1", path)); - } else if (KMessageBox::messageBox(kapp->activeWindow(), KMessageBox::WarningYesNo, i18n("Clip %1
is invalid or missing, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search manually")), /*KGuiItem(i18n("Remove from project")),*/ KGuiItem(i18n("Keep as placeholder"))) == KMessageBox::Yes) + } else if (KMessageBox::messageBox(kapp->activeWindow(), KMessageBox::WarningYesNo, i18n("Clip %1
is invalid or missing, what do you want to do?", path), i18n("File not found"), KGuiItem(i18n("Search manually")), /*KGuiItem(i18n("Remove from project")),*/ KGuiItem(i18n("Keep as placeholder"))) == KMessageBox::Yes) newpath = KFileDialog::getOpenFileName(KUrl("kfiledialog:///clipfolder"), QString(), kapp->activeWindow(), i18n("Looking for %1", path)); } if (action == KMessageBox::Yes) { @@ -1186,9 +1195,14 @@ void KdenliveDoc::addClip(QDomElement elem, QString clipId, bool createClipItem) clip = new DocClipBase(m_clipManager, elem, producerId); m_clipManager->addClip(clip); } - if (createClipItem) emit addProjectClip(clip); + if (createClipItem) { + emit addProjectClip(clip); + qApp->processEvents(); + m_render->getFileProperties(clip->toXML(), clip->getId()); + } } + void KdenliveDoc::setNewClipResource(const QString &id, const QString &path) { QDomNodeList prods = m_document.elementsByTagName("producer"); int maxprod = prods.count(); @@ -1247,7 +1261,7 @@ QString KdenliveDoc::searchFileRecursively(const QDir &dir, const QString &match void KdenliveDoc::addClipInfo(QDomElement elem, QString clipId) { DocClipBase *clip = m_clipManager->getClipById(clipId); if (clip == NULL) { - addClip(elem, clipId); + addClip(elem, clipId, false); } else { QMap properties; QDomNamedNodeMap attributes = elem.attributes();