ProjectItem *item = getItemById(id);
if (item) {
slotUpdateClipProperties(item, properties);
- if (properties.contains("out") || properties.contains("force_fps") || properties.contains("resource")) {
+ if (properties.contains("out") || properties.contains("force_fps") || properties.contains("resource") || properties.contains("video_index") || properties.contains("audio_index")) {
slotReloadClip(id);
} else if (properties.contains("colour") ||
properties.contains("xmldata") ||
{
//m_listView->setEnabled(false);
const QString parent = clip->getProperty("groupid");
+ QString groupName = clip->getProperty("groupname");
ProjectItem *item = NULL;
- kDebug()<<"// Adding clip 1";
monitorItemEditing(false);
if (!parent.isEmpty()) {
FolderProjectItem *parentitem = getFolderItemById(parent);
if (!parentitem) {
QStringList text;
- QString groupName = clip->getProperty("groupname");
//kDebug() << "Adding clip to new group: " << groupName;
if (groupName.isEmpty()) groupName = i18n("Folder");
text << groupName;
if (item == NULL) {
item = new ProjectItem(m_listView, clip);
}
- kDebug()<<"// Adding clip 2";
if (item->data(0, DurationRole).isNull()) item->setData(0, DurationRole, i18n("Loading"));
connect(clip, SIGNAL(createProxy(const QString &)), this, SLOT(slotCreateProxy(const QString &)));
connect(clip, SIGNAL(abortProxy(const QString &, const QString &)), this, SLOT(slotAbortProxy(const QString, const QString)));
//item->setFlags(Qt::ItemIsSelectable);
m_listView->processLayout();
QDomElement e = clip->toXML().cloneNode().toElement();
+ if (!groupName.isEmpty()) {
+ e.setAttribute("groupId", parent);
+ e.setAttribute("group", groupName);
+ }
e.removeAttribute("file_hash");
resetThumbsProducer(clip);
m_render->getFileProperties(e, clip->getId(), m_listView->iconSize().height(), true);
if (givenList.isEmpty() && !list.isEmpty()) {
QStringList groupInfo = getGroup();
- m_doc->slotAddClipList(list, groupInfo.at(0), groupInfo.at(1));
+ QMap <QString, QString> data;
+ data.insert("group", groupInfo.at(0));
+ data.insert("groupId", groupInfo.at(1));
+ m_doc->slotAddClipList(list, data);
} else if (!list.isEmpty()) {
- m_doc->slotAddClipList(list, groupName, groupId);
+ QMap <QString, QString> data;
+ data.insert("group", groupName);
+ data.insert("groupId", groupId);
+ m_doc->slotAddClipList(list, data);
}
if (!foldersList.isEmpty()) {
folder = getFolderItemByName(folderName);
}
}
- if (folder)
- m_doc->slotAddClipList(urls, folder->groupName(), folder->clipId());
+ if (folder) {
+ QMap <QString, QString> data;
+ data.insert("group", folder->groupName());
+ data.insert("groupId", folder->clipId());
+ m_doc->slotAddClipList(urls, data);
+ }
else m_doc->slotAddClipList(urls);
}
}
int dwidth = (int)(height * m_render->dar() + 0.5);
if (clip->clipType() == AUDIO)
pix = KIcon("audio-x-generic").pixmap(QSize(dwidth, height));
- else if (clip->clipType() == IMAGE)
+ else if (clip->clipType() == IMAGE) {
img = KThumb::getFrame(item->referencedClip()->getProducer(), 0, swidth, dwidth, height);
+ }
else {
img = item->referencedClip()->extractImage(frame, dwidth, height);
}
-
if (!pix.isNull() || !img.isNull()) {
monitorItemEditing(false);
if (!img.isNull()) {
void ProjectList::slotReplyGetFileProperties(const QString &clipId, Mlt::Producer *producer, const stringMap &properties, const stringMap &metadata, bool replace)
{
QString toReload;
- kDebug()<<"// CLIP LOADED 1;";
ProjectItem *item = getItemById(clipId);
int queue = m_render->processingItems();
if (item && producer) {
if (queue == 0) {
monitorItemEditing(true);
if (item && m_thumbnailQueue.isEmpty()) {
- kDebug()<<"// CLIP LOADED;";
if (!item->hasProxy() || m_render->activeClipId() == item->clipId())
m_listView->setCurrentItem(item);
bool updatedProfile = false;
Ui::CutJobDialog_UI ui;
ui.setupUi(d);
ui.extra_params->setVisible(false);
- ui.add_clip->setChecked(KdenliveSettings::add_clip_cut());
+ ui.add_clip->setChecked(KdenliveSettings::add_new_clip());
ui.file_url->fileDialog()->setOperationMode(KFileDialog::Saving);
ui.extra_params->setMaximumHeight(QFontMetrics(font()).lineSpacing() * 5);
ui.file_url->setUrl(KUrl(dest));
}
}
QString extraParams = ui.extra_params->toPlainText().simplified();
- KdenliveSettings::setAdd_clip_cut(ui.add_clip->isChecked());
+ KdenliveSettings::setAdd_new_clip(ui.add_clip->isChecked());
delete d;
QStringList jobParams;
- jobParams << dest << item->clipUrl().path() << timeIn << timeOut << QString::number(duration) << QString::number(KdenliveSettings::add_clip_cut());
+ jobParams << dest << item->clipUrl().path() << timeIn << timeOut << QString::number(duration) << QString::number(KdenliveSettings::add_new_clip());
if (!extraParams.isEmpty()) jobParams << extraParams;
CutClipJob *job = new CutClipJob(item->clipType(), id, jobParams);
if (job->isExclusive() && hasPendingJob(item, job->jobType)) {
ui.extra_params->setVisible(false);
d->adjustSize();
ui.button_more->setIcon(KIcon("configure"));
- ui.add_clip->setChecked(KdenliveSettings::add_clip_cut());
+ ui.add_clip->setChecked(KdenliveSettings::add_new_clip());
ui.extra_params->setPlainText(params.simplified().section(' ', 0, -2));
QString mess = desc;
mess.append(' ' + i18np("(%1 clip)", "(%1 clips)", ids.count()));
return;
}
params = ui.extra_params->toPlainText().simplified();
- KdenliveSettings::setAdd_clip_cut(ui.add_clip->isChecked());
-
+ KdenliveSettings::setAdd_new_clip(ui.add_clip->isChecked());
+ int index = 0;
foreach(const QString &id, ids) {
ProjectItem *item = getItemById(id);
if (!item || !item->referencedClip()) continue;
QString src = item->clipUrl().path();
QString dest;
- if (ids.count() > 1) dest = params.section(' ', -1).replace("%1", src);
+ if (ids.count() > 1) {
+ dest = destinations.at(index);
+ index++;
+ }
else dest = ui.file_url->url().path();
QStringList jobParams;
jobParams << dest << src << QString() << QString();
int max = item->clipMaxDuration();
QString duration = QString::number(max);
jobParams << duration;
- jobParams << QString::number(KdenliveSettings::add_clip_cut());
+ jobParams << QString::number(KdenliveSettings::add_new_clip());
jobParams << params;
CutClipJob *job = new CutClipJob(item->clipType(), id, jobParams);
if (job->isExclusive() && hasPendingJob(item, job->jobType)) {
foreach(const QString&id, ids) {
ProjectItem *item = getItemById(id);
if (!item) continue;
+ QStringList jobArgs;
+ jobArgs << preParams;
if (ids.count() == 1) {
- consumer += ':' + destination;
+ jobArgs << consumer + ':' + destination;
}
else {
- consumer += ':' + destination + item->clipUrl().fileName() + ".mlt";
+ jobArgs << consumer + ':' + destination + item->clipUrl().fileName() + ".mlt";
}
- preParams << consumer << jobParams;
+ jobArgs << jobParams;
- MeltJob *job = new MeltJob(item->clipType(), id, preParams);
+ MeltJob *job = new MeltJob(item->clipType(), id, jobArgs);
if (autoAdd) {
job->setAddClipToProject(true);
kDebug()<<"// ADDING TRUE";