ClipItem *clip = getClipItemAt((int)pos.frames(m_document->fps()) + 1, m_scene->m_tracksList.count() - track);
if (clip) {
m_document->renderer()->mltMoveEffect(track, pos, oldPos, newPos);
+ QDomElement act = clip->effectAt(newPos - 1).cloneNode().toElement();
+ QDomElement before = clip->effectAt(oldPos - 1).cloneNode().toElement();
+ clip->setEffectAt(oldPos - 1, act);
+ clip->setEffectAt(newPos - 1, before);
+ emit clipItemSelected(clip, newPos - 1);
}
m_document->setModified(true);
}
void zoomIn();
void zoomOut();
void mousePosition(int);
- void clipItemSelected(ClipItem*);
+ void clipItemSelected(ClipItem*, int ix = -1);
void transitionItemSelected(Transition*);
void activateDocumentMonitor();
void trackHeightChanged();
emit updateClipEffect(clipref, old, e, ui.effectlist->currentRow());
}
-void EffectStackView::slotClipItemSelected(ClipItem* c) {
- int ix = 0;
+void EffectStackView::slotClipItemSelected(ClipItem* c, int ix) {
if (c && c == clipref) {
- ix = ui.effectlist->currentRow();
+ if (ix == -1) ix = ui.effectlist->currentRow();
} else {
clipref = c;
if (c) ix = c->selectedEffectIndex();
+ else ix = 0;
}
if (clipref == NULL) {
ui.effectlist->clear();
void EffectStackView::slotItemUp() {
int activeRow = ui.effectlist->currentRow();
- if (activeRow > 0) {
- QDomElement act = clipref->effectAt(activeRow).cloneNode().toElement();
- QDomElement before = clipref->effectAt(activeRow - 1).cloneNode().toElement();
- clipref->setEffectAt(activeRow - 1, act);
- clipref->setEffectAt(activeRow, before);
- }
- QListWidgetItem *item = ui.effectlist->takeItem(activeRow);
- ui.effectlist->insertItem(activeRow - 1, item);
- ui.effectlist->setCurrentItem(item);
+ if (activeRow <= 0) return;
emit changeEffectPosition(clipref, activeRow + 1, activeRow);
}
void EffectStackView::slotItemDown() {
int activeRow = ui.effectlist->currentRow();
- if (activeRow < ui.effectlist->count() - 1) {
- QDomElement act = clipref->effectAt(activeRow).cloneNode().toElement();
- QDomElement after = clipref->effectAt(activeRow + 1).cloneNode().toElement();
- clipref->setEffectAt(activeRow + 1, act);
- clipref->setEffectAt(activeRow, after);
- }
- QListWidgetItem *item = ui.effectlist->takeItem(activeRow);
- ui.effectlist->insertItem(activeRow + 1, item);
- ui.effectlist->setCurrentItem(item);
+ if (activeRow >= ui.effectlist->count() - 1) return;
emit changeEffectPosition(clipref, activeRow + 1, activeRow + 2);
}
//void updateButtonStatus();
public slots:
- void slotClipItemSelected(ClipItem*);
+ void slotClipItemSelected(ClipItem*, int ix);
void slotUpdateEffectParams(const QDomElement&, const QDomElement&);
private slots:
disconnect(m_activeDocument, SIGNAL(updateClipDisplay(const QString &)), m_projectList, SLOT(slotUpdateClip(const QString &)));
disconnect(m_activeDocument, SIGNAL(selectLastAddedClip(const QString &)), m_projectList, SLOT(slotSelectClip(const QString &)));
disconnect(m_activeDocument, SIGNAL(deleteTimelineClip(const QString &)), m_activeTimeline, SLOT(slotDeleteClip(const QString &)));
- disconnect(m_activeTimeline, SIGNAL(clipItemSelected(ClipItem*)), effectStack, SLOT(slotClipItemSelected(ClipItem*)));
- disconnect(m_activeTimeline, SIGNAL(clipItemSelected(ClipItem*)), this, SLOT(slotActivateEffectStackView()));
+ disconnect(m_activeTimeline->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), effectStack, SLOT(slotClipItemSelected(ClipItem*, int)));
+ disconnect(m_activeTimeline->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), this, SLOT(slotActivateEffectStackView()));
disconnect(m_activeTimeline, SIGNAL(transitionItemSelected(Transition*)), transitionConfig, SLOT(slotTransitionItemSelected(Transition*)));
disconnect(m_activeTimeline, SIGNAL(transitionItemSelected(Transition*)), this, SLOT(slotActivateTransitionView()));
disconnect(m_zoomSlider, SIGNAL(valueChanged(int)), m_activeTimeline, SLOT(slotChangeZoom(int)));
connect(doc, SIGNAL(guidesUpdated()), this, SLOT(slotGuidesUpdated()));
- connect(trackView, SIGNAL(clipItemSelected(ClipItem*)), effectStack, SLOT(slotClipItemSelected(ClipItem*)));
- connect(trackView, SIGNAL(clipItemSelected(ClipItem*)), this, SLOT(slotActivateEffectStackView()));
+ connect(trackView->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), effectStack, SLOT(slotClipItemSelected(ClipItem*, int)));
+ connect(trackView->projectView(), SIGNAL(clipItemSelected(ClipItem*, int)), this, SLOT(slotActivateEffectStackView()));
connect(trackView, SIGNAL(transitionItemSelected(Transition*)), transitionConfig, SLOT(slotTransitionItemSelected(Transition*)));
connect(trackView, SIGNAL(transitionItemSelected(Transition*)), this, SLOT(slotActivateTransitionView()));
m_zoomSlider->setValue(doc->zoom());
connect(m_trackview, SIGNAL(cursorMoved(int, int)), m_ruler, SLOT(slotCursorMoved(int, int)));
connect(m_trackview->horizontalScrollBar(), SIGNAL(valueChanged(int)), m_ruler, SLOT(slotMoveRuler(int)));
connect(m_trackview, SIGNAL(mousePosition(int)), this, SIGNAL(mousePosition(int)));
- connect(m_trackview, SIGNAL(clipItemSelected(ClipItem*)), this, SLOT(slotClipItemSelected(ClipItem*)));
connect(m_trackview, SIGNAL(transitionItemSelected(Transition*)), this, SLOT(slotTransitionItemSelected(Transition*)));
slotChangeZoom(m_doc->zoom());
}
m_ruler->setZone(p);
}
-void TrackView::slotClipItemSelected(ClipItem*c) {
- emit clipItemSelected(c);
-}
-
void TrackView::slotTransitionItemSelected(Transition *t) {
emit transitionItemSelected(t);
}
private slots:
void setCursorPos(int pos);
void moveCursorPos(int pos);
- void slotClipItemSelected(ClipItem*);
void slotTransitionItemSelected(Transition*);
void slotRebuildTrackHeaders();
signals:
void mousePosition(int);
void cursorMoved();
- void clipItemSelected(ClipItem*);
void transitionItemSelected(Transition*);
void zoneMoved(int, int);
};