From 6f8f092f36ef2a23f4d4cf44f75a48f219fcecc6 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Sun, 4 Oct 2009 00:03:42 +0000 Subject: [PATCH] Correctly update monitor when changing a title clip duration svn path=/trunk/kdenlive/; revision=3993 --- src/clipmanager.cpp | 2 ++ src/mainwindow.cpp | 5 ++++- src/projectlist.cpp | 7 +++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/clipmanager.cpp b/src/clipmanager.cpp index 874a0287..5a710969 100644 --- a/src/clipmanager.cpp +++ b/src/clipmanager.cpp @@ -287,6 +287,7 @@ void ClipManager::slotAddClipList(const KUrl::List urls, const QString group, co prod.setAttribute("in", 0); int out = txtdoc.documentElement().attribute("out").toInt(); if (out > 0) prod.setAttribute("out", out); + else prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1); } else txtfile.close(); } new AddClipCommand(m_doc, doc.documentElement(), QString::number(id), true, addClips); @@ -327,6 +328,7 @@ void ClipManager::slotAddClipFile(const KUrl url, const QString group, const QSt prod.setAttribute("in", 0); int out = (int) outPos.frames(m_doc->fps()); if (out > 0) prod.setAttribute("out", out); + else prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1); } else txtfile.close(); } AddClipCommand *command = new AddClipCommand(m_doc, doc.documentElement(), QString::number(id), true); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 73261a24..7990b3b6 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2343,7 +2343,10 @@ void MainWindow::slotShowClipProperties(DocClipBase *clip) if (dia_ui->exec() == QDialog::Accepted) { QMap newprops; newprops.insert("xmldata", dia_ui->xml().toString()); - newprops.insert("out", QString::number(dia_ui->duration())); + if (dia_ui->duration() != clip->duration().frames(m_activeDocument->fps()) - 1) { + // duration changed, we need to update duration + newprops.insert("out", QString::number(dia_ui->duration())); + } EditClipCommand *command = new EditClipCommand(m_projectList, clip->getId(), clip->properties(), newprops, true); m_activeDocument->commandStack()->push(command); m_activeTimeline->projectView()->slotUpdateClip(clip->getId()); diff --git a/src/projectlist.cpp b/src/projectlist.cpp index 45e67c85..af531d25 100644 --- a/src/projectlist.cpp +++ b/src/projectlist.cpp @@ -314,11 +314,14 @@ void ProjectList::slotUpdateClipProperties(const QString &id, QMap changeDuration(properties.value("out").toInt()); + } + else if (properties.contains("colour") || properties.contains("resource") || properties.contains("xmldata") || properties.contains("force_aspect_ratio") || properties.contains("templatetext")) { slotRefreshClipThumbnail(item); emit refreshClip(); } - if (properties.contains("out")) item->changeDuration(properties.value("out").toInt()); } } -- 2.39.2