void CustomTrackView::slotImportClipKeyframes(GRAPHICSRECTITEM type)
{
- if (!m_selectionGroup) {
- emit displayMessage(i18n("You need to select one clip and one transition"), ErrorMessage);
- return;
- }
- // Make sure there is no collision
- QList<QGraphicsItem *> children = m_selectionGroup->childItems();
ClipItem *item = NULL;
- for (int i = 0; i < children.count(); i++) {
- if (children.at(i)->type() == AVWIDGET) {
- item = (ClipItem*) children.at(i);
- break;
- }
+ if (type == TRANSITIONWIDGET) {
+ // We want to import keyframes to a transition
+ if (!m_selectionGroup) {
+ emit displayMessage(i18n("You need to select one clip and one transition"), ErrorMessage);
+ return;
+ }
+ // Make sure there is no collision
+ QList<QGraphicsItem *> children = m_selectionGroup->childItems();
+ for (int i = 0; i < children.count(); i++) {
+ if (children.at(i)->type() == AVWIDGET) {
+ item = (ClipItem*) children.at(i);
+ break;
+ }
+ }
}
+ else {
+ // Import keyframes from current clip to its effect
+ if (m_dragItem) item = static_cast<ClipItem*> (m_dragItem);
+ }
+
if (!item) {
emit displayMessage(i18n("No clip found"), ErrorMessage);
return;
{
m_paramWidget->setRange(inPoint, outPoint);
}
+
+void CollapsibleEffect::setKeyframes(const QString data, int maximum)
+{
+ m_paramWidget->setKeyframes(data, maximum);
+}
+
bool needsMonitorEffectScene() const;
/** @brief Set clip in / out points. */
void setRange(int inPoint , int outPoint);
+ /** @brief Import keyframes from a clip's data. */
+ void setKeyframes(const QString data, int maximum);
public slots:
void slotSyncEffectsPos(int pos);
processDroppedEffect(doc.documentElement(), event);
}
+void EffectStackView2::setKeyframes(const QString data, int maximum)
+{
+ for (int i = 0; i < m_effects.count(); i++) {
+ if (m_effects.at(i)->isActive()) {
+ m_effects.at(i)->setKeyframes(data, maximum);
+ break;
+ }
+ }
+}
+
//static
const QString EffectStackView2::getStyleSheet()
{
/** @brief Return the stylesheet required for effect parameters. */
static const QString getStyleSheet();
+ /** @brief Import keyframes from the clip metadata */
+ void setKeyframes(const QString data, int maximum);
+
protected:
virtual void mouseMoveEvent(QMouseEvent * event);
virtual void mouseReleaseEvent(QMouseEvent * event);
{
if (type == AVWIDGET) {
// This data should be sent to the effect stack
+ m_effectStack->setKeyframes(data, maximum);
}
else if (type == TRANSITIONWIDGET) {
// This data should be sent to the transition stack