]> git.sesse.net Git - kdenlive/commitdiff
Some progress on keyframe editor
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 22 Jun 2009 15:33:08 +0000 (15:33 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 22 Jun 2009 15:33:08 +0000 (15:33 +0000)
svn path=/trunk/kdenlive/; revision=3621

src/effectstackedit.cpp
src/keyframeedit.cpp
src/keyframeedit.h

index 8216c59957241b915b8338741a9c91d15a4617a4..9295d82510dc9c7ee9a6ab3b9678210cb33a7429 100644 (file)
@@ -82,6 +82,7 @@ EffectStackEdit::EffectStackEdit(QWidget *parent) :
     QWidget *wid = new QWidget(parent);
     area->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
     area->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+    area->setFrameStyle(QFrame::NoFrame);
     wid->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum));
     area->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::MinimumExpanding));
 
@@ -237,12 +238,13 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d, int in, int out)
             m_items.append(geo);
         } else if (type == "keyframe") {
             // keyframe editor widget
-            KeyframeEdit *geo = new KeyframeEdit(100, KdenliveSettings::project_fps(), 0, 100);
-            //connect(geo, SIGNAL(parameterChanged()), this, SLOT(collectAllParameters()));
+            KeyframeEdit *geo = new KeyframeEdit(m_timecode);
+            connect(geo, SIGNAL(parameterChanged()), this, SLOT(collectAllParameters()));
+            geo->setupParam(100, pa.attribute("min").toInt(), pa.attribute("max").toInt(), pa.attribute("keyframes"));
             //connect(geo, SIGNAL(seekToPos(int)), this, SLOT(slotSeekToPos(int)));
             //geo->setupParam(pa, minFrame, maxFrame);
             m_vbox->addWidget(geo);
-            m_valueItems[paramName+"geometry"] = geo;
+            m_valueItems[paramName+"keyframe"] = geo;
             m_items.append(geo);
         } else if (type == "color") {
             Colorval *cval = new Colorval;
index 153a190e9f32b5f3d7052842cefbe01b38a8c1a7..26eaf86cf648bc38d89d8fdadfa45eb0a025557d 100644 (file)
@@ -21,9 +21,9 @@
 #include <KDebug>
 
 
-KeyframeEdit::KeyframeEdit(int maxFrame, double fps, int minValue, int maxValue, QWidget* parent) :
+KeyframeEdit::KeyframeEdit(Timecode tc, QWidget* parent) :
         QWidget(parent),
-        m_fps(fps)
+        m_timecode(tc)
 {
     m_ui.setupUi(this);
     m_ui.keyframe_list->setHeaderLabels(QStringList() << i18n("Position") << i18n("Value"));
@@ -32,4 +32,17 @@ KeyframeEdit::KeyframeEdit(int maxFrame, double fps, int minValue, int maxValue,
     setEnabled(false);
 }
 
+void KeyframeEdit::setupParam(int maxFrame, int minValue, int maxValue, QString keyframes)
+{
+    m_maxFrame = maxFrame;
+    m_min = minValue;
+    m_max = maxValue;
+    m_ui.keyframe_list->clear();
+    QStringList frames = keyframes.split(";");
+    for (int i = 0; i < frames.count(); i++) {
+        QString framePos = m_timecode.getTimecodeFromFrames(frames.at(i).section(':', 0, 0).toInt());
+        m_ui.keyframe_list->addTopLevelItem(new QTreeWidgetItem(QStringList() << framePos << frames.at(i).section(':', 1, 1)));
+    }
+}
+
 
index 354184db950b57826055a318cf964d0693b26010..de334bc3ff445721ad057de4d9de3b6f9021b971 100644 (file)
@@ -33,11 +33,15 @@ class KeyframeEdit : public QWidget
 {
     Q_OBJECT
 public:
-    explicit KeyframeEdit(int maxFrame, double fps, int minValue, int maxValue, QWidget* parent = 0);
+    explicit KeyframeEdit(Timecode tc, QWidget* parent = 0);
+    void setupParam(int maxFrame, int minValue, int maxValue, QString keyframes);
 
 private:
     Ui::KeyframeEditor_UI m_ui;
-    double m_fps;
+    Timecode m_timecode;
+    int m_min;
+    int m_max;
+    int m_maxFrame;
 
 public slots: