item->baseClip()->addReference();
m_document->updateClip(item->baseClip()->getId());
setDocumentModified();
- KdenliveSettings::setSnaptopoints(snap);
+ KdenliveSettings::setSnaptopoints(snap);
return dup;
//kDebug() << "///////// CUTTING CLIP RESULT: (" << item->startPos().frames(25) << "-" << item->endPos().frames(25) << "), DUP: (" << dup->startPos().frames(25) << "-" << dup->endPos().frames(25) << ")" << ", CUT: " << cutTime.frames(25);
} else {
bool snap = KdenliveSettings::snaptopoints();
KdenliveSettings::setSnaptopoints(false);
-
+
if (dup->isSelected()) emit clipItemSelected(NULL);
dup->baseClip()->removeReference();
m_document->updateClip(dup->baseClip()->getId());
setDocumentModified();
} else
emit displayMessage(i18n("Error when resizing clip"), ErrorMessage);
- KdenliveSettings::setSnaptopoints(snap);
+ KdenliveSettings::setSnaptopoints(snap);
return item;
}
m_commandStack->push(addCommand);
setDocumentModified();
- /*
- // debug info
- QRectF rect(0, 1 * m_tracksHeight + m_tracksHeight / 2, sceneRect().width(), 2);
- QList<QGraphicsItem *> selection = m_scene->items(rect);
- QStringList timelineList;
-
- kDebug()<<"// ITEMS on TRACK: "<<selection.count();
- for (int i = 0; i < selection.count(); i++) {
- if (selection.at(i)->type() == AVWIDGET) {
- ClipItem *clip = static_cast <ClipItem *>(selection.at(i));
- int start = clip->startPos().frames(m_document->fps());
- int end = clip->endPos().frames(m_document->fps());
- timelineList.append(QString::number(start) + "-" + QString::number(end));
- }
- }
- kDebug() << "// COMPARE:\n" << timelineList << "\n-------------------";
- */
+ /*
+ // debug info
+ QRectF rect(0, 1 * m_tracksHeight + m_tracksHeight / 2, sceneRect().width(), 2);
+ QList<QGraphicsItem *> selection = m_scene->items(rect);
+ QStringList timelineList;
+ kDebug()<<"// ITEMS on TRACK: "<<selection.count();
+ for (int i = 0; i < selection.count(); i++) {
+ if (selection.at(i)->type() == AVWIDGET) {
+ ClipItem *clip = static_cast <ClipItem *>(selection.at(i));
+ int start = clip->startPos().frames(m_document->fps());
+ int end = clip->endPos().frames(m_document->fps());
+ timelineList.append(QString::number(start) + "-" + QString::number(end));
+ }
+ }
+ kDebug() << "// COMPARE:\n" << timelineList << "\n-------------------";
+ */
+
m_pasteEffectsAction->setEnabled(m_copiedItems.count() == 1);
if (items.count() > 1) groupSelectedItems(true);
event->setDropAction(Qt::MoveAction);
bool snap = KdenliveSettings::snaptopoints();
KdenliveSettings::setSnaptopoints(false);
ItemInfo info;
- if (item == NULL) info = posinfo;
- else info = item->info();
+ if (item == NULL) info = posinfo;
+ else info = item->info();
QRectF rect(info.startPos.frames(m_document->fps()), info.track * m_tracksHeight + m_tracksHeight / 2, (info.endPos - info.startPos).frames(m_document->fps()) - 1, 5);
QList<QGraphicsItem *> selection = m_scene->items(rect);
if (item) selection.removeAll(item);
new RazorClipCommand(this, clipInfo, info.startPos, false, command);
new ResizeClipCommand(this, dupInfo, newdupInfo, false, false, command);
ClipItem *dup = cutClip(clipInfo, info.startPos, true, false);
- if (dup) dup->resizeStart(info.endPos.frames(m_document->fps()));
- kDebug() << "-----------------------------";
-
- kDebug() << "///RES+CUT: " << dup->startPos().frames(25) << "x" << dup->endPos().frames(25);
- kDebug() << "-----------------------------";
-
-
+ if (dup) dup->resizeStart(info.endPos.frames(m_document->fps()));
} else {
ItemInfo newclipInfo = clip->info();
newclipInfo.endPos = info.startPos;
// animate item deletion
if (refresh) item->closeAnimation();
else {
- // no refresh, means we have several operations chained, we need to delete clip immediatly
- // so that it does not get in the way of the other
- delete item;
- item = NULL;
+ // no refresh, means we have several operations chained, we need to delete clip immediatly
+ // so that it does not get in the way of the other
+ delete item;
+ item = NULL;
}
#else
delete item;
else if (transitionCount > 0 && groupCount == 0 && clipCount == 0)
deleteSelected->setText(i18np("Delete selected transition", "Delete selected transitions", transitionCount));
else deleteSelected->setText(i18n("Delete selected items"));
- m_commandStack->push(deleteSelected);
+ m_commandStack->push(deleteSelected);
}
void CustomTrackView::changeClipSpeed()
//if (!url.isEmpty() && QFile::exists(url.path()))
{
m_thumbProd = new KThumb(clipManager, url, m_id, m_properties.value("file_hash"));
- if (m_clipType == AV || m_clipType == AUDIO) slotCreateAudioTimer();
+ if (m_clipType == AV || m_clipType == AUDIO || m_clipType == PLAYLIST) slotCreateAudioTimer();
}
//kDebug() << "type is video" << (m_clipType == AV) << " " << m_clipType;
}
void DocClipBase::askForAudioThumbs()
{
- if (m_thumbProd) m_thumbProd->askForAudioThumbs(getId());
+ if (m_thumbProd && m_audioTimer) slotGetAudioThumbs();
}
void DocClipBase::slotClearAudioCache()
m_clipType = type;
m_properties.insert("type", QString::number((int) type));
- if (m_thumbProd && m_audioTimer == NULL && (m_clipType == AV || m_clipType == AUDIO))
+ if (m_thumbProd && m_audioTimer == NULL && (m_clipType == AV || m_clipType == AUDIO || m_clipType == PLAYLIST))
slotCreateAudioTimer();
}
bool DocClipBase::slotGetAudioThumbs()
{
if (m_thumbProd == NULL) return false;
- if (!KdenliveSettings::audiothumbnails()) {
+ if (!KdenliveSettings::audiothumbnails() || m_audioTimer == NULL) {
if (m_audioTimer != NULL) m_audioTimer->stop();
return false;
}
if (m_audioThumbCreated) {
- if (m_audioTimer != NULL) m_audioTimer->stop();
+ m_audioTimer->stop();
return false;
}
- if (m_audioTimer != NULL)
- m_audioTimer->start(1500);
+ m_audioTimer->start(1500);
double lengthInFrames = duration().frames(KdenliveSettings::project_fps());
m_thumbProd->getAudioThumbs(2, 0, lengthInFrames /*must be number of frames*/, 20);
return true;
if (m_audioThumbProducer.isRunning()) return;
m_audioThumbProducer.init(m_url, m_thumbFile, frame, frameLength, m_frequency, m_channels, arrayWidth);
m_audioThumbProducer.start(QThread::LowestPriority);
- kDebug() << "STARTING GENERATE THMB FOR: " << m_url << " ................................";
+ // kDebug() << "STARTING GENERATE THMB FOR: " <<m_id<<", URL: "<< m_url << " ................................";
}
}
ProjectSettings *w = new ProjectSettings(NULL, QStringList(), projectTracks.x(), projectTracks.y(), KdenliveSettings::defaultprojectfolder(), false, true, this);
if (w->exec() != QDialog::Accepted) return;
if (!KdenliveSettings::activatetabs()) closeCurrentDocument();
- KdenliveSettings::setVideothumbnails(w->enableVideoThumbs());
- m_buttonVideoThumbs->setChecked(KdenliveSettings::videothumbnails());
- KdenliveSettings::setAudiothumbnails(w->enableAudioThumbs());
- m_buttonAudioThumbs->setChecked(KdenliveSettings::audiothumbnails());
+ if (KdenliveSettings::videothumbnails() != w->enableVideoThumbs()) slotSwitchVideoThumbs();
+ if (KdenliveSettings::audiothumbnails() != w->enableAudioThumbs()) slotSwitchAudioThumbs();
profileName = w->selectedProfile();
projectFolder = w->selectedFolder();
projectTracks = w->tracks();
QString profile = w->selectedProfile();
m_activeDocument->setProjectFolder(w->selectedFolder());
if (m_renderWidget) m_renderWidget->setDocumentPath(w->selectedFolder().path(KUrl::AddTrailingSlash));
+ if (KdenliveSettings::videothumbnails() != w->enableVideoThumbs()) slotSwitchVideoThumbs();
+ if (KdenliveSettings::audiothumbnails() != w->enableAudioThumbs()) slotSwitchAudioThumbs();
if (m_activeDocument->profilePath() != profile) {
// Profile was changed
double dar = m_activeDocument->dar();
if (m_clipType != UNKNOWN) slotSetToolTip();
setText(1, name);
setText(2, m_clip->description());
- if ((m_clip->clipType() == AV || m_clip->clipType() == AUDIO) && KdenliveSettings::audiothumbnails()) m_clip->askForAudioThumbs();
+ m_clip->askForAudioThumbs();
GenTime duration = m_clip->duration();
if (duration != GenTime()) setData(1, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps()));
//setFlags(Qt::NoItemFlags);
m_clipType = (CLIPTYPE) m_clip->getProperty("type").toInt();
setText(1, name);
setText(2, m_clip->description());
- if ((m_clip->clipType() == AV || m_clip->clipType() == AUDIO) && KdenliveSettings::audiothumbnails()) m_clip->askForAudioThumbs();
+ m_clip->askForAudioThumbs();
GenTime duration = m_clip->duration();
if (duration != GenTime()) setData(1, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps()));
//setFlags(Qt::NoItemFlags);
}
m_clip->setProperties(attributes);
m_clip->setMetadata(metadata);
- if ((m_clipType == AV || m_clipType == AUDIO) && KdenliveSettings::audiothumbnails()) m_clip->askForAudioThumbs();
+ m_clip->askForAudioThumbs();
if (m_clip->description().isEmpty()) {
if (metadata.contains("description")) {
if (overwrite) {
destTrackPlaylist.remove_region(moveEnd, clip->get_playtime());
- int clipIndex = trackPlaylist.get_clip_index_at(moveEnd);
- trackPlaylist.insert_blank(clipIndex, clip->get_playtime() - 1);
+ int clipIndex = destTrackPlaylist.get_clip_index_at(moveEnd);
+ destTrackPlaylist.insert_blank(clipIndex, clip->get_playtime() - 1);
}
int newIndex = destTrackPlaylist.insert_at(moveEnd, clip, 1);