for (int i = 0; i < list.count(); i++) {
if (list.at(i)->data().toString() == "paste_effects") m_pasteEffectsAction = list.at(i);
else if (list.at(i)->data().toString() == "ungroup_clip") m_ungroupAction = list.at(i);
+ else if (list.at(i)->data().toString() == "A") m_audioActions.append(list.at(i));
+ else if (list.at(i)->data().toString() == "A+V") m_avActions.append(list.at(i));
}
m_timelineContextTransitionMenu = transition;
m_dragGuide = NULL;
if (m_tool != RAZORTOOL) activateMonitor();
- else if (m_document->renderer()->playSpeed() != 0.0) {
+ else if (m_document->renderer()->isPlaying()) {
m_document->renderer()->pause();
return;
}
//build go to marker menu
if (item->baseClip()) {
QList <CommentedTime> markers = item->baseClip()->commentedSnapMarkers();
- int offset = item->startPos().frames(m_document->fps());
+ int offset = (item->startPos()- item->cropStart()).frames(m_document->fps());
if (!markers.isEmpty()) {
for (int i = 0; i < markers.count(); i++) {
int pos = (int) markers.at(i).time().frames(m_document->timecode().fps());
m_document->updateClip(item->baseClip()->getId());
setDocumentModified();
KdenliveSettings::setSnaptopoints(snap);
- if (execute && item->isSelected())
- emit clipItemSelected(item);
+ if (execute && item->isSelected()) {
+ m_scene->clearSelection();
+ dup->setSelected(true);
+ m_dragItem = dup;
+ emit clipItemSelected(dup);
+ }
return dup;
} else {
// uncut clip
if (item->baseClip()->isTransparent() && getTransitionItemAtStart(info.startPos, info.track) == NULL) {
// add transparency transition
- QDomElement trans = MainWindow::transitions.getEffectByTag("composite", "composite").cloneNode().toElement();
+ QDomElement trans = MainWindow::transitions.getEffectByTag("affine", QString()).cloneNode().toElement();
new AddTransitionCommand(this, info, getPreviousVideoTrack(info.track), trans, false, true, addCommand);
}
item->setSelected(true);
void CustomTrackView::updateClipTypeActions(ClipItem *clip)
{
+ bool hasAudio;
+ bool hasAV;
if (clip == NULL || (clip->clipType() != AV && clip->clipType() != PLAYLIST)) {
m_clipTypeGroup->setEnabled(false);
+ hasAudio = clip != NULL && clip->clipType() == AUDIO;
+ hasAV = false;
} else {
+ switch (clip->clipType()) {
+ case AV:
+ case PLAYLIST:
+ hasAudio = true;
+ hasAV = true;
+ break;
+ case AUDIO:
+ hasAudio = true;
+ hasAV = false;
+ break;
+ default:
+ hasAudio = false;
+ hasAV = false;
+ }
m_clipTypeGroup->setEnabled(true);
QList <QAction *> actions = m_clipTypeGroup->actions();
QString lookup;
}
}
}
+
+ for (int i = 0; i < m_audioActions.count(); i++) {
+ m_audioActions.at(i)->setEnabled(hasAudio);
+ }
+ for (int i = 0; i < m_avActions.count(); i++) {
+ m_avActions.at(i)->setEnabled(hasAV);
+ }
}
void CustomTrackView::slotGoToMarker(QAction *action)
{
QMap<int, QDomElement> effects = item->adjustEffectsToDuration(m_document->width(), m_document->height(), oldInfo);
- if (effects.count()) {
+ if (!effects.isEmpty()) {
QMap<int, QDomElement>::const_iterator i = effects.constBegin();
while (i != effects.constEnd()) {
new EditEffectCommand(this, m_document->tracksCount() - item->track(), item->startPos(), i.value(), item->effect(i.key()), i.value().attribute("kdenlive_ix").toInt(), true, true, command);