]> git.sesse.net Git - kdenlive/commitdiff
Merge branch 'master' into feature/pkey
authorEd Rogalsky <ed.rogalsky@googlemail.com>
Tue, 6 Nov 2012 16:20:28 +0000 (17:20 +0100)
committerEd Rogalsky <ed.rogalsky@googlemail.com>
Tue, 6 Nov 2012 16:20:28 +0000 (17:20 +0100)
1  2 
src/customtrackview.cpp

diff --combined src/customtrackview.cpp
index 6e9706fe05adee5248c0d4310e95239ae1172862,57869bb2107b16c334d38c1df8963c2abb9d95a2..9a53b99526d588cf8492cc707f5fdad1a4a3bc54
@@@ -405,15 -405,6 +405,15 @@@ void CustomTrackView::slotCheckPosition
      }
  }
  
 +void CustomTrackView::slotAlignPlayheadToMousePos()
 +{
 +      /* get curser point ref in screen coord */
 +      QPoint ps = QCursor::pos();
 +      /* get xPos in scene coord */
 +      int mappedXPos = qMax((int)(mapToScene(mapFromGlobal(ps)).x() + 0.5), 0);
 +      /* move playhead to new xPos*/
 +      seekCursorPos(mappedXPos);
 +}
  
  // virtual
  void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
@@@ -7641,7 -7632,23 +7641,23 @@@ void CustomTrackView::slotImportClipKey
        return;
      }
      QString keyframeData = ui.data_list->itemData(ui.data_list->currentIndex()).toString();
-     QStringList keyframeList = keyframeData.split(';', QString::SkipEmptyParts);
+     
+     int offset = item->cropStart().frames(m_document->fps());
+     Mlt::Geometry geometry(keyframeData.toUtf8().data(), item->baseClip()->maxDuration().frames(m_document->fps()), m_document->mltProfile().width, m_document->mltProfile().height);
+     Mlt::Geometry newGeometry(QString().toUtf8().data(), item->baseClip()->maxDuration().frames(m_document->fps()), m_document->mltProfile().width, m_document->mltProfile().height);
+     Mlt::GeometryItem gitem;
+     geometry.fetch(&gitem, offset);
+     gitem.frame(0);
+     newGeometry.insert(gitem);
+     int pos = offset + 1;
+     while (!geometry.next_key(&gitem, pos)) {
+       pos = gitem.frame();
+       gitem.frame(pos - offset);
+       pos++;
+       newGeometry.insert(gitem);
+     }
+     QStringList keyframeList = QString(newGeometry.serialise()).split(';', QString::SkipEmptyParts);
+     
      QString result;
      if (ui.import_position->isChecked()) {
        if (ui.import_size->isChecked()) {