]> git.sesse.net Git - kdenlive/commitdiff
Cleanup keyframe editor code
authorTill Theato <root@ttill.de>
Sun, 31 Oct 2010 10:40:12 +0000 (10:40 +0000)
committerTill Theato <root@ttill.de>
Sun, 31 Oct 2010 10:40:12 +0000 (10:40 +0000)
svn path=/trunk/kdenlive/; revision=5065

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

index 8f5eb0ac4ba8dde8c27fdb51acf43bbcdd8a9a46..bbb606ffde699c125a42a31b6c928a936f48c316 100644 (file)
@@ -288,7 +288,7 @@ void EffectStackEdit::transferParamDesc(const QDomElement d, int pos, int in, in
             // keyframe editor widget
             kDebug() << "min: " << m_in << ", MAX: " << m_out;
             if (m_keyframeEditor == NULL) {
-                KeyframeEdit *geo = new KeyframeEdit(pa, m_in, m_in + m_out, pa.attribute("min").toInt(), pa.attribute("max").toInt(), m_timecode, e.attribute("active_keyframe", "-1").toInt());
+                KeyframeEdit *geo = new KeyframeEdit(pa, m_in, m_in + m_out, m_timecode, e.attribute("active_keyframe", "-1").toInt());
                 m_vbox->addWidget(geo);
                 m_valueItems[paramName+"keyframe"] = geo;
                 m_keyframeEditor = geo;
index e35236918191cbdef9c2b83b64c41e8ed0a27257..5354a2429febbe6e5abf30637a30f5a6d165be15 100644 (file)
 
 #include <QHeaderView>
 
-KeyframeEdit::KeyframeEdit(QDomElement e, int minFrame, int maxFrame, int minVal, int maxVal, Timecode tc, int active_keyframe, QWidget* parent) :
+KeyframeEdit::KeyframeEdit(QDomElement e, int minFrame, int maxFrame, Timecode tc, int activeKeyframe, QWidget* parent) :
         QWidget(parent),
         m_min(minFrame),
         m_max(maxFrame),
-        m_minVal(minVal),
-        m_maxVal(maxVal),
-        m_timecode(tc),
-        m_previousPos(0),
-        m_active_keyframe(active_keyframe)
+        m_timecode(tc)
 {
-    kDebug() << " / / / /MODIFIED KFR: " << m_active_keyframe;
     setupUi(this);
     if (m_max == -1) {
         // special case: keyframe for tracks, do not allow keyframes
         widgetTable->setHidden(true);
     }
-    m_params.append(e.cloneNode().toElement());
     keyframe_list->setFont(KGlobalSettings::generalFont());
     buttonSeek->setChecked(KdenliveSettings::keyframeseek());
     connect(buttonSeek, SIGNAL(toggled(bool)), this, SLOT(slotSetSeeking(bool)));
@@ -54,18 +48,22 @@ KeyframeEdit::KeyframeEdit(QDomElement e, int minFrame, int maxFrame, int minVal
     buttonSeek->setIcon(KIcon("insert-link"));
     connect(keyframe_list, SIGNAL(itemSelectionChanged()), this, SLOT(slotAdjustKeyframeInfo()));
     connect(keyframe_list, SIGNAL(cellChanged(int, int)), this, SLOT(slotGenerateParams(int, int)));
-    setupParam();
 
+    m_slidersLayout = new QGridLayout(param_sliders);
+    keyframe_list->setSelectionBehavior(QAbstractItemView::SelectRows);
+    keyframe_list->setSelectionMode(QAbstractItemView::SingleSelection);
+    addParameter(e, activeKeyframe);
     keyframe_list->resizeRowsToContents();
-    keyframe_list->resizeColumnsToContents();
+
     //keyframe_list->horizontalHeader()->resizeSections(QHeaderView::ResizeToContents);
     connect(button_delete, SIGNAL(clicked()), this, SLOT(slotDeleteKeyframe()));
     connect(button_add, SIGNAL(clicked()), this, SLOT(slotAddKeyframe()));
     connect(buttonKeyframes, SIGNAL(clicked()), this, SLOT(slotKeyframeMode()));
     connect(buttonResetKeyframe, SIGNAL(clicked()), this, SLOT(slotResetKeyframe()));
-    //connect(keyframe_list, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(slotSaveCurrentParam(QTreeWidgetItem *, int)));
     connect(keyframe_pos, SIGNAL(valueChanged(int)), this, SLOT(slotAdjustKeyframePos(int)));
-    //connect(keyframe_val, SIGNAL(valueChanged(int)), this, SLOT(slotAdjustKeyframeValue(int)));
+
+    //connect(keyframe_list, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), this, SLOT(slotSaveCurrentParam(QTreeWidgetItem *, int)));
+
     keyframe_pos->setPageStep(1);
     if (!keyframe_list->currentItem()) {
         keyframe_list->setCurrentCell(0, 0);
@@ -73,8 +71,6 @@ KeyframeEdit::KeyframeEdit(QDomElement e, int minFrame, int maxFrame, int minVal
     }
     // ensure the keyframe list shows at least 3 lines
     keyframe_list->setMinimumHeight(QFontInfo(keyframe_list->font()).pixelSize() * 9);
-    /*m_delegate = new KeyItemDelegate(minVal, maxVal);
-    keyframe_list->setItemDelegate(m_delegate);*/
 
     // Do not show keyframe table if only one keyframe exists at the beginning
     if (keyframe_list->rowCount() < 2 && getPos(0) == m_min && m_max != -1)
@@ -94,10 +90,9 @@ KeyframeEdit::~KeyframeEdit()
         if (wid)
             delete wid;
     }
-    //delete m_delegate;
 }
 
-void KeyframeEdit::addParameter(QDomElement e)
+void KeyframeEdit::addParameter(QDomElement e, int activeKeyframe)
 {
     keyframe_list->blockSignals(true);
     m_params.append(e.cloneNode().toElement());
@@ -134,50 +129,13 @@ void KeyframeEdit::addParameter(QDomElement e)
             keyframe_list->setItem(j, columnId, new QTableWidgetItem(frames.at(i).section(':', 1, 1)));
             keyframe_list->resizeRowToContents(j);
         }
-    }
-    keyframe_list->resizeColumnsToContents();
-    keyframe_list->blockSignals(false);
-    slotAdjustKeyframeInfo(false);
-}
-
-void KeyframeEdit::setupParam()
-{
-    keyframe_list->blockSignals(true);
-    keyframe_list->clear();
-    int col = keyframe_list->columnCount();
-    QDomNode na = m_params.at(0).firstChildElement("name");
-    QString paramName = i18n(na.toElement().text().toUtf8().data());
-    kDebug() << " INSERT COL: " << col << ", " << paramName;
-    keyframe_list->insertColumn(col);
-    keyframe_list->setHorizontalHeaderItem(col, new QTableWidgetItem(paramName));
-    m_slidersLayout = new QGridLayout(param_sliders);
-
-    DoubleParameterWidget *doubleparam = new DoubleParameterWidget(paramName, 0,
-            m_params.at(0).attribute("min").toInt(), m_params.at(0).attribute("max").toInt(),
-            m_params.at(0).attribute("default").toInt(), m_params.at(0).attribute("suffix"), this);
-    connect(doubleparam, SIGNAL(valueChanged(int)), this, SLOT(slotAdjustKeyframeValue(int)));
-    m_slidersLayout->addWidget(doubleparam, 0, 0);
-
-    keyframe_list->setSelectionBehavior(QAbstractItemView::SelectRows);
-    keyframe_list->setSelectionMode(QAbstractItemView::SingleSelection);
-
-    QStringList frames = m_params.at(0).attribute("keyframes").split(";", QString::SkipEmptyParts);
-    setEnabled(frames.count() > 0);
-    for (int i = 0; i < frames.count(); i++) {
-        keyframe_list->insertRow(i);
-        int currentpos = frames.at(i).section(':', 0, 0).toInt();
-        keyframe_list->setVerticalHeaderItem(i, new QTableWidgetItem(getPosString(currentpos)));
-        keyframe_list->setItem(i, col, new QTableWidgetItem(frames.at(i).section(':', 1, 1)));
-        if ((m_active_keyframe > -1) && (m_active_keyframe == currentpos)) {
-            keyframe_list->setCurrentCell(i, 0);
+        if ((activeKeyframe > -1) && (activeKeyframe == frame)) {
+            keyframe_list->setCurrentCell(i, columnId);
             keyframe_list->selectRow(i);
         }
-        //item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled);
     }
-    /*QTreeWidgetItem *first = keyframe_list->topLevelItem(0);
-    if (first) keyframe_list->setCurrentItem(first);*/
+    keyframe_list->resizeColumnsToContents();
     keyframe_list->blockSignals(false);
-    //keyframe_list->setCurrentCell(0, 0);
     slotAdjustKeyframeInfo(false);
     button_delete->setEnabled(keyframe_list->rowCount() > 1);
 }
@@ -206,7 +164,6 @@ void KeyframeEdit::slotAddKeyframe()
     int pos1 = getPos(row);
 
     int result;
-    kDebug() << "// ADD KF: " << row << ", MAX: " << keyframe_list->rowCount() << ", POS: " << pos1;
     if (row < (keyframe_list->rowCount() - 1)) {
         result = pos1 + (getPos(row + 1) - pos1) / 2;
         newrow++;
@@ -228,7 +185,6 @@ void KeyframeEdit::slotAddKeyframe()
         keyframe_list->setItem(newrow, i, new QTableWidgetItem(keyframe_list->item(item->row(), i)->text()));
 
     keyframe_list->resizeRowsToContents();
-    //keyframe_list->resizeRowToContents(newrow);
     slotAdjustKeyframeInfo();
     keyframe_list->blockSignals(false);
     generateAllParams();
@@ -327,7 +283,6 @@ const QString KeyframeEdit::getValue(const QString &name)
     for (int col = 0; col < keyframe_list->columnCount(); col++) {
         QDomNode na = m_params.at(col).firstChildElement("name");
         QString paramName = i18n(na.toElement().text().toUtf8().data());
-        //kDebug() << paramName << " == " << name;
         if (paramName == name)
             return m_params.at(col).attribute("keyframes");
     }
@@ -377,8 +332,10 @@ void KeyframeEdit::slotAdjustKeyframePos(int value)
         emit seekToPos(value - m_min);
 }
 
-void KeyframeEdit::slotAdjustKeyframeValue(int /*value*/)
+void KeyframeEdit::slotAdjustKeyframeValue(int value)
 {
+    Q_UNUSED(value);
+
     QTableWidgetItem *item = keyframe_list->currentItem();
     for (int col = 0; col < keyframe_list->columnCount(); col++) {
         DoubleParameterWidget *doubleparam = static_cast <DoubleParameterWidget*>(m_slidersLayout->itemAtPosition(col, 0)->widget());
@@ -441,9 +398,4 @@ void KeyframeEdit::slotResetKeyframe()
     }
 }
 
-
-/*void KeyframeEdit::slotSaveCurrentParam(QTreeWidgetItem *item, int column)
-{
-    if (item && column == 0) m_previousPos = m_timecode.getFrameCount(item->text(0));
-}*/
-
+#include "keyframeedit.moc"
index a2fcd1c2e84606c7060595ffe25bacf1c2fca8f2..8a02defcd7a4d6aea31a1a50a267d44f5c89e3f8 100644 (file)
@@ -79,10 +79,9 @@ class KeyframeEdit : public QWidget, public Ui::KeyframeEditor_UI
 {
     Q_OBJECT
 public:
-    explicit KeyframeEdit(QDomElement e, int minFrame, int maxFrame, int minVal, int maxVal, Timecode tc, int active_keyframe, QWidget* parent = 0);
+    explicit KeyframeEdit(QDomElement e, int minFrame, int maxFrame, Timecode tc, int activeKeyframe, QWidget* parent = 0);
     virtual ~KeyframeEdit();
-    void setupParam();
-    void addParameter(QDomElement e);
+    void addParameter(QDomElement e, int activeKeyframe = -1);
     const QString getValue(const QString &name);
     /** @brief Updates the timecode display according to settings (frame number or hh:mm:ss:ff) */
     void updateTimecodeFormat();
@@ -91,15 +90,10 @@ private:
     QList <QDomElement> m_params;
     int m_min;
     int m_max;
-    int m_minVal;
-    int m_maxVal;
     Timecode m_timecode;
-    int m_previousPos;
-    //KeyItemDelegate *m_delegate;
-    void generateAllParams();
     QGridLayout *m_slidersLayout;
-    int m_active_keyframe;
 
+    void generateAllParams();
     /** @brief Gets the position of a keyframe from the table.
     * @param row Row of the keyframe in the table */
     int getPos(int row);
@@ -124,8 +118,6 @@ private slots:
     /** @brief Resets all parameters of the selected keyframe to their default values. */
     void slotResetKeyframe();
 
-    //void slotSaveCurrentParam(QTreeWidgetItem *item, int column);
-
 signals:
     void parameterChanged();
     void seekToPos(int);