]> git.sesse.net Git - kdenlive/commitdiff
Fix title clip duration (1 frame offset):
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 14 Apr 2010 20:50:38 +0000 (20:50 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Wed, 14 Apr 2010 20:50:38 +0000 (20:50 +0000)
http://www.kdenlive.org/mantis/view.php?id=1552

svn path=/trunk/kdenlive/; revision=4384

src/kdenlivedoc.cpp
src/mainwindow.cpp
src/titlewidget.cpp
src/titlewidget.h

index 9a9f3cd017a41f4e447c8119d311a8f4fc1e7fda..e8bec8ca75edc8814086178bc53ac578d466e294 100644 (file)
@@ -1070,7 +1070,7 @@ void KdenliveDoc::slotCreateTextClip(QString group, const QString &groupId, cons
     KStandardDirs::makeDir(titlesFolder);
     TitleWidget *dia_ui = new TitleWidget(templatePath, m_timecode, titlesFolder, m_render, kapp->activeWindow());
     if (dia_ui->exec() == QDialog::Accepted) {
-        m_clipManager->slotAddTextClipFile(i18n("Title clip"), dia_ui->duration(), dia_ui->xml().toString(), group, groupId);
+        m_clipManager->slotAddTextClipFile(i18n("Title clip"), dia_ui->outPoint(), dia_ui->xml().toString(), group, groupId);
         setModified(true);
         emit selectLastAddedClip(QString::number(m_clipManager->lastClipId()));
     }
index 7459cbe48928697ff63696a9abbbe7222da7f2d5..edc9e999196965384123ffc808a5d8e4c8a62024 100644 (file)
@@ -2635,9 +2635,9 @@ void MainWindow::slotShowClipProperties(DocClipBase *clip)
         if (dia_ui->exec() == QDialog::Accepted) {
             QMap <QString, QString> newprops;
             newprops.insert("xmldata", dia_ui->xml().toString());
-            if (dia_ui->duration() != clip->duration().frames(m_activeDocument->fps()) - 1) {
+            if (dia_ui->outPoint() != clip->duration().frames(m_activeDocument->fps()) - 1) {
                 // duration changed, we need to update duration
-                newprops.insert("out", QString::number(dia_ui->duration()));
+                newprops.insert("out", QString::number(dia_ui->outPoint()));
             }
             EditClipCommand *command = new EditClipCommand(m_projectList, clip->getId(), clip->properties(), newprops, true);
             m_activeDocument->commandStack()->push(command);
index 612d133eb0bc19c8862168ab7068d80672cd6bc6..4bb5ddf62743c9138fc8535bc31ae1cbeabe814d 100644 (file)
@@ -1771,7 +1771,7 @@ void TitleWidget::saveTitle(KUrl url)
         delete fs;
     }
     if (!url.isEmpty()) {
-        if (m_titledocument.saveDocument(url, m_startViewport, m_endViewport, m_tc.getFrameCount(title_duration->text())) == false)
+        if (m_titledocument.saveDocument(url, m_startViewport, m_endViewport, m_tc.getFrameCount(title_duration->text()) - 1) == false)
             KMessageBox::error(this, i18n("Cannot write to file %1", url.path()));
     }
 }
@@ -1779,13 +1779,13 @@ void TitleWidget::saveTitle(KUrl url)
 QDomDocument TitleWidget::xml()
 {
     QDomDocument doc = m_titledocument.xml(m_startViewport, m_endViewport);
-    doc.documentElement().setAttribute("out", m_tc.getFrameCount(title_duration->text()));
+    doc.documentElement().setAttribute("out", m_tc.getFrameCount(title_duration->text()) - 1);
     return doc;
 }
 
-int TitleWidget::duration() const
+int TitleWidget::outPoint() const
 {
-    return m_tc.getFrameCount(title_duration->text());
+    return m_tc.getFrameCount(title_duration->text()) - 1;
 }
 
 void TitleWidget::setXml(QDomDocument doc)
@@ -1793,7 +1793,7 @@ void TitleWidget::setXml(QDomDocument doc)
     int out;
     m_count = m_titledocument.loadFromXml(doc, m_startViewport, m_endViewport, &out);
     adjustFrameSize();
-    title_duration->setText(m_tc.getTimecode(GenTime(out, m_render->fps())));
+    title_duration->setText(m_tc.getTimecode(GenTime(out + 1, m_render->fps())));
     /*if (doc.documentElement().hasAttribute("out")) {
     GenTime duration = GenTime(doc.documentElement().attribute("out").toDouble() / 1000.0);
     title_duration->setText(m_tc.getTimecode(duration));
index d31b8958fb61078910db96b6fd7984adeb22cdad..4818f8866ab9404aaae9352136cbb69270c9d564 100644 (file)
@@ -91,8 +91,8 @@ public:
      * returned. */
     static QString getTitleResourceFromName(const KUrl &projectUrl, const QString &titleName);
 
-    /** \brief Get clip duration. */
-    int duration() const;
+    /** \brief Get clip out position. */
+    int outPoint() const;
     /** load Title Templates*/
     static void refreshTitleTemplates();