Setup of timeline and keyframe controls
*/
- ((QGridLayout *)(m_ui.widgetTimeWrapper->layout()))->addWidget(m_timePos, 1, 4);
+ ((QGridLayout *)(m_ui.widgetTimeWrapper->layout()))->addWidget(m_timePos, 1, 6);
QVBoxLayout *layout = new QVBoxLayout(m_ui.frameTimeline);
m_timeline = new KeyframeHelper(m_ui.frameTimeline);
m_ui.buttonAddDelete->setIcon(KIcon("document-new"));
m_ui.buttonAddDelete->setToolTip(i18n("Add keyframe"));
+ m_ui.buttonSync->setIcon(KIcon("insert-link"));
+ m_ui.buttonSync->setToolTip(i18n("Synchronize with timeline cursor"));
+ m_ui.buttonSync->setCheckable(true);
+ m_ui.buttonSync->setChecked(KdenliveSettings::transitionfollowcursor());
+
connect(m_timeline, SIGNAL(positionChanged(int)), this, SLOT(slotPositionChanged(int)));
connect(m_timeline, SIGNAL(keyframeMoved(int)), this, SLOT(slotKeyframeMoved(int)));
connect(m_timeline, SIGNAL(addKeyframe(int)), this, SLOT(slotAddKeyframe(int)));
connect(m_ui.buttonPrevious, SIGNAL(clicked()), this, SLOT(slotPreviousKeyframe()));
connect(m_ui.buttonNext, SIGNAL(clicked()), this, SLOT(slotNextKeyframe()));
connect(m_ui.buttonAddDelete, SIGNAL(clicked()), this, SLOT(slotAddDeleteKeyframe()));
+ connect(m_ui.buttonSync, SIGNAL(toggled(bool)), this, SLOT(slotSetSynchronize(bool)));
/*
m_ui.buttonConfig->setToolTip(i18n("Show/Hide settings"));
m_ui.buttonConfig->setCheckable(true);
m_ui.groupSettings->setHidden(true);
- m_ui.checkSync->setChecked(KdenliveSettings::transitionfollowcursor());
m_ui.checkDirectUpdate->setChecked(m_scene->getDirectUpdate());
connect(m_ui.buttonConfig, SIGNAL(toggled(bool)), m_ui.groupSettings, SLOT(setVisible(bool)));
- connect(m_ui.checkSync, SIGNAL(toggled(bool)), this, SLOT(slotSetSynchronize(bool)));
connect(m_ui.checkShowScene, SIGNAL(toggled(bool)), this, SLOT(slotShowScene(bool)));
connect(m_ui.checkDirectUpdate, SIGNAL(toggled(bool)), m_scene, SLOT(slotSetDirectUpdate(bool)));
void GeometryWidget::slotSyncPosition(int relTimelinePos)
{
+ // do only sync if this effect is keyframable
if (m_timePos->maximum() > 0 && KdenliveSettings::transitionfollowcursor()) {
relTimelinePos = qMax(0, relTimelinePos);
relTimelinePos = qMin(relTimelinePos, m_timePos->maximum());
<rect>
<x>0</x>
<y>0</y>
- <width>381</width>
- <height>304</height>
+ <width>366</width>
+ <height>282</height>
</rect>
</property>
<property name="windowTitle">
</property>
</widget>
</item>
- <item row="1" column="3">
+ <item row="1" column="5">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</spacer>
</item>
- <item row="0" column="0" colspan="5">
+ <item row="0" column="0" colspan="7">
<widget class="QFrame" name="frameTimeline">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Preferred">
</property>
</widget>
</item>
- <item row="1" column="4">
+ <item row="1" column="6">
<widget class="QFrame" name="frameTimePos"/>
</item>
+ <item row="1" column="4">
+ <widget class="QToolButton" name="buttonSync">
+ <property name="text">
+ <string>...</string>
+ </property>
+ <property name="autoRaise">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3">
+ <spacer name="horizontalSpacer_6">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Fixed</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>15</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
</layout>
</widget>
</item>
<property name="bottomMargin">
<number>4</number>
</property>
- <item>
- <widget class="QCheckBox" name="checkSync">
- <property name="text">
- <string>Synchronize with timeline cursor</string>
- </property>
- <property name="checked">
- <bool>false</bool>
- </property>
- </widget>
- </item>
<item>
<widget class="QCheckBox" name="checkShowScene">
<property name="text">