[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdenlive] src: Fix title clip duration has 1 frame offset: http://www.kdenlive.org/mantis/view.php?
From:       Jean-Baptiste Mardelle <jb () kdenlive ! org>
Date:       2012-12-25 23:58:50
Message-ID: 20121225235850.7E64EA6091 () git ! kde ! org
[Download RAW message or body]

Git commit bdfcbfc3ec309800eaa9e106203c9ad840fed35e by Jean-Baptiste Mardelle.
Committed on 26/12/2012 at 00:58.
Pushed by mardelle into branch 'master'.

Fix title clip duration has 1 frame offset: \
http://www.kdenlive.org/mantis/view.php?id=2896

M  +2    -2    src/clipmanager.cpp
M  +1    -1    src/kdenlivedoc.cpp
M  +4    -4    src/mainwindow.cpp
M  +4    -4    src/titlewidget.cpp
M  +2    -2    src/titlewidget.h

http://commits.kde.org/kdenlive/bdfcbfc3ec309800eaa9e106203c9ad840fed35e

diff --git a/src/clipmanager.cpp b/src/clipmanager.cpp
index 8ae95fb..38ae8e9 100644
--- a/src/clipmanager.cpp
+++ b/src/clipmanager.cpp
@@ -691,7 +691,7 @@ void ClipManager::slotAddSlideshowClipFile(QMap <QString, \
QString> properties, c  
 
 
-void ClipManager::slotAddTextClipFile(const QString &titleName, int out, const \
QString &xml, const QString &group, const QString &groupId) +void \
ClipManager::slotAddTextClipFile(const QString &titleName, int duration, const \
QString &xml, const QString &group, const QString &groupId)  {
     QDomDocument doc;
     QDomElement prod = doc.createElement("producer");
@@ -708,7 +708,7 @@ void ClipManager::slotAddTextClipFile(const QString &titleName, \
int out, const Q  prod.setAttribute("type", (int) TEXT);
     prod.setAttribute("transparency", "1");
     prod.setAttribute("in", "0");
-    prod.setAttribute("out", out);
+    prod.setAttribute("out", duration - 1);
     AddClipCommand *command = new AddClipCommand(m_doc, doc.documentElement(), \
QString::number(id), true);  m_doc->commandStack()->push(command);
 }
diff --git a/src/kdenlivedoc.cpp b/src/kdenlivedoc.cpp
index 611d5a3..e74fbfa 100644
--- a/src/kdenlivedoc.cpp
+++ b/src/kdenlivedoc.cpp
@@ -1274,7 +1274,7 @@ void KdenliveDoc::slotCreateTextClip(QString group, const \
QString &groupId, cons  KStandardDirs::makeDir(titlesFolder);
     QPointer<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->outPoint(), \
dia_ui->xml().toString(), group, groupId); +        \
m_clipManager->slotAddTextClipFile(i18n("Title clip"), dia_ui->duration(), \
dia_ui->xml().toString(), group, groupId);  setModified(true);
         emit selectLastAddedClip(QString::number(m_clipManager->lastClipId()));
     }
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 7c1aee5..f422fad 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -3306,12 +3306,12 @@ 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->outPoint() != \
clip->duration().frames(m_activeDocument->fps())) { +            if \
(dia_ui->duration() != clip->duration().frames(m_activeDocument->fps())) {  // \
                duration changed, we need to update duration
-                newprops.insert("out", QString::number(dia_ui->outPoint()));
+                newprops.insert("out", QString::number(dia_ui->duration() - 1));
                 int currentLength = \
                QString(clip->producerProperty("length")).toInt();
-                if (currentLength <= dia_ui->outPoint())
-                        newprops.insert("length", QString::number(dia_ui->outPoint() \
+ 1)); +                if (currentLength <= dia_ui->duration())
+                        newprops.insert("length", \
                QString::number(dia_ui->duration()));
                 else newprops.insert("length", clip->producerProperty("length"));
             }
             if (!path.isEmpty()) {
diff --git a/src/titlewidget.cpp b/src/titlewidget.cpp
index 0fc6c42..bc2e030 100644
--- a/src/titlewidget.cpp
+++ b/src/titlewidget.cpp
@@ -1875,7 +1875,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()), embed_image) == false) +        if \
(m_titledocument.saveDocument(url, m_startViewport, m_endViewport, \
                m_tc.getFrameCount(title_duration->text()) - 1, embed_image) == \
                false)
             KMessageBox::error(this, i18n("Cannot write to file %1", url.path()));
     }
 }
@@ -1883,11 +1883,11 @@ 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::outPoint() const
+int TitleWidget::duration() const
 {
     return m_tc.getFrameCount(title_duration->text());
 }
@@ -1897,7 +1897,7 @@ void TitleWidget::setXml(QDomDocument doc)
     int out;
     m_count = m_titledocument.loadFromXml(doc, m_startViewport, m_endViewport, &out, \
m_projectTitlePath);  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));
diff --git a/src/titlewidget.h b/src/titlewidget.h
index 478bad4..dfc537b 100644
--- a/src/titlewidget.h
+++ b/src/titlewidget.h
@@ -97,8 +97,8 @@ public:
      * get the file name. There is no check for the existence of the file. */
     static QString getTitleResourceFromName(const KUrl &projectUrl, const QString \
&titleName);  
-    /** @brief Returns clip out position. */
-    int outPoint() const;
+    /** @brief Returns clip duration. */
+    int duration() const;
 
     /** @brief Retrieves a list of all available title templates. */
     static void refreshTitleTemplates();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic