From f475537f4b0be796d0990db610a361095c1e7ee5 Mon Sep 17 00:00:00 2001 From: Till Theato Date: Sat, 23 Oct 2010 20:04:44 +0000 Subject: [PATCH] Do not show the keyframe table if only one keyframe exists. Instead show a button to switch to the "keyframe mode" svn path=/trunk/kdenlive/; revision=5038 --- src/keyframeedit.cpp | 18 +++- src/keyframeedit.h | 3 + src/widgets/keyframeeditor_ui.ui | 176 +++++++++++++++++-------------- 3 files changed, 118 insertions(+), 79 deletions(-) diff --git a/src/keyframeedit.cpp b/src/keyframeedit.cpp index 69d93776..19dbcdd1 100644 --- a/src/keyframeedit.cpp +++ b/src/keyframeedit.cpp @@ -41,14 +41,14 @@ KeyframeEdit::KeyframeEdit(QDomElement e, int minFrame, int maxFrame, int minVal button_add->setEnabled(false); button_delete->setEnabled(false); keyframe_seek->setEnabled(false); - label->setHidden(true); - keyframe_pos->setHidden(true); + widgetTable->setHidden(true); } m_params.append(e.cloneNode().toElement()); keyframe_list->setFont(KGlobalSettings::generalFont()); keyframe_seek->setChecked(KdenliveSettings::keyframeseek()); connect(keyframe_seek, SIGNAL(stateChanged(int)), this, SLOT(slotSetSeeking(int))); + buttonKeyframes->setIcon(KIcon("list-add")); button_add->setIcon(KIcon("list-add")); button_add->setToolTip(i18n("Add keyframe")); button_delete->setIcon(KIcon("list-remove")); @@ -62,6 +62,7 @@ KeyframeEdit::KeyframeEdit(QDomElement e, int minFrame, int maxFrame, int minVal //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(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))); @@ -74,6 +75,12 @@ KeyframeEdit::KeyframeEdit(QDomElement e, int minFrame, int maxFrame, int minVal 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) + widgetTable->setHidden(true); + else + buttonKeyframes->setHidden(true); } KeyframeEdit::~KeyframeEdit() @@ -418,6 +425,13 @@ void KeyframeEdit::updateTimecodeFormat() } } +void KeyframeEdit::slotKeyframeMode() +{ + widgetTable->setHidden(false); + buttonKeyframes->setHidden(true); + slotAddKeyframe(); +} + /*void KeyframeEdit::slotSaveCurrentParam(QTreeWidgetItem *item, int column) { if (item && column == 0) m_previousPos = m_timecode.getFrameCount(item->text(0)); diff --git a/src/keyframeedit.h b/src/keyframeedit.h index b79498da..4d3e5747 100644 --- a/src/keyframeedit.h +++ b/src/keyframeedit.h @@ -117,6 +117,9 @@ private slots: /** @brief Turns the seek to keyframe position setting on/off. * @param state State of the associated checkbox */ void slotSetSeeking(int state); + + /** @brief Shows the keyframe table and adds a second keyframe. */ + void slotKeyframeMode(); //void slotSaveCurrentParam(QTreeWidgetItem *item, int column); signals: diff --git a/src/widgets/keyframeeditor_ui.ui b/src/widgets/keyframeeditor_ui.ui index 7e09e749..eeb4f323 100644 --- a/src/widgets/keyframeeditor_ui.ui +++ b/src/widgets/keyframeeditor_ui.ui @@ -6,8 +6,8 @@ 0 0 - 277 - 269 + 336 + 190 @@ -20,81 +20,6 @@ 0 - - - - true - - - false - - - false - - - true - - - true - - - false - - - true - - - true - - - false - - - false - - - - - - - A - - - Qt::NoArrow - - - - - - - D - - - Qt::NoArrow - - - - - - - Seek to active keyframe - - - - - - - Position - - - - - - - Qt::Horizontal - - - @@ -109,6 +34,103 @@ + + + + + 0 + + + + + true + + + false + + + false + + + true + + + true + + + false + + + + + + + A + + + Qt::NoArrow + + + + + + + Seek to active keyframe + + + + + + + Position + + + + + + + Qt::Horizontal + + + + + + + D + + + Qt::NoArrow + + + + + + + + + + + 0 + + + + + Add keyframes + + + Keyframes + + + Qt::ToolButtonTextBesideIcon + + + true + + + + + + -- 2.39.2