#include "interfaces.h"
#include "config-kdenlive.h"
#include "cliptranscode.h"
-#include "clipstabilize.h"
#include "ui_templateclip_ui.h"
#include "colorscopes/vectorscope.h"
#include "colorscopes/waveform.h"
m_timelineContextClipMenu->addAction(actionCollection()->action("group_clip"));
m_timelineContextClipMenu->addAction(actionCollection()->action("ungroup_clip"));
m_timelineContextClipMenu->addAction(actionCollection()->action("split_audio"));
+ m_timelineContextClipMenu->addAction(actionCollection()->action("set_audio_align_ref"));
+ m_timelineContextClipMenu->addAction(actionCollection()->action("align_audio"));
m_timelineContextClipMenu->addSeparator();
m_timelineContextClipMenu->addAction(actionCollection()->action("cut_timeline_clip"));
m_timelineContextClipMenu->addAction(actionCollection()->action(KStandardAction::name(KStandardAction::Copy)));
collection.addAction("edit_clip_marker", editClipMarker);
connect(editClipMarker, SIGNAL(triggered(bool)), this, SLOT(slotEditClipMarker()));
- KAction *addMarkerGuideQuickly = new KAction(KIcon("bookmark-new"), i18n("Add Marker/Guide quickly"), this);
+ KAction* addMarkerGuideQuickly = new KAction(KIcon("bookmark-new"), i18n("Add Marker/Guide quickly"), this);
addMarkerGuideQuickly->setShortcut(Qt::Key_Asterisk);
collection.addAction("add_marker_guide_quickly", addMarkerGuideQuickly);
connect(addMarkerGuideQuickly, SIGNAL(triggered(bool)), this, SLOT(slotAddMarkerGuideQuickly()));
collection.addAction("split_audio", splitAudio);
connect(splitAudio, SIGNAL(triggered(bool)), this, SLOT(slotSplitAudio()));
+ KAction* setAudioAlignReference = new KAction(i18n("Set reference for audio alignment"), this);
+ collection.addAction("set_audio_align_ref", setAudioAlignReference);
+ connect(setAudioAlignReference, SIGNAL(triggered()), this, SLOT(slotSetAudioAlignReference()));
+
+ KAction* alignAudio = new KAction(i18n("Align audio to reference"), this);
+ collection.addAction("align_audio", alignAudio);
+ connect(alignAudio, SIGNAL(triggered()), this, SLOT(slotAlignAudio()));
+
KAction* audioOnly = new KAction(KIcon("document-new"), i18n("Audio Only"), this);
collection.addAction("clip_audio_only", audioOnly);
audioOnly->setData("clip_audio_only");
collection.addAction("delete_space", removeSpace);
connect(removeSpace, SIGNAL(triggered()), this, SLOT(slotRemoveSpace()));
- m_tracksActionCollection = new KActionCollection(m_tracksActionCollection, KGlobal::mainComponent());
+ m_tracksActionCollection = new KActionCollection(this, KGlobal::mainComponent());
m_tracksActionCollection->addAssociatedWidget(m_timelineArea);
KAction *insertTrack = new KAction(KIcon(), i18n("Insert Track"), m_tracksActionCollection);
m_activeTimeline->projectView()->splitAudio();
}
+void MainWindow::slotSetAudioAlignReference()
+{
+ if (m_activeTimeline) {
+ m_activeTimeline->projectView()->setAudioAlignReference();
+ }
+}
+
+void MainWindow::slotAlignAudio()
+{
+ if (m_activeTimeline) {
+ m_activeTimeline->projectView()->alignAudio();
+ }
+}
+
void MainWindow::slotUpdateClipType(QAction *action)
{
if (m_activeTimeline) {
}
}
-void MainWindow::slotStabilize(KUrl::List urls)
+void MainWindow::slotStabilize()
{
QString condition,filtername;
+ QStringList ids;
- if (urls.isEmpty()) {
- QAction *action = qobject_cast<QAction *>(sender());
- if (action){
- filtername=action->data().toString();
- urls = m_projectList->getConditionalUrls(condition);
- }
+ // Stablize selected clips
+ QAction *action = qobject_cast<QAction *>(sender());
+ if (action){
+ filtername=action->data().toString();
}
- if (urls.isEmpty()) {
+ m_projectList->startClipFilterJob(filtername, condition);
+ /*
+ if (ids.isEmpty()) {
m_messageLabel->setMessage(i18n("No clip to transcode"), ErrorMessage);
return;
}
- Mlt::Profile profile;
- Mlt::Filter filter(profile,filtername.toUtf8().data());
- ClipStabilize *d=new ClipStabilize(urls,filtername,&filter);
- connect(d, SIGNAL(addClip(KUrl)), this, SLOT(slotAddProjectClip(KUrl)));
- d->show();
-
+ QString destination;
+ ProjectItem *item = m_projectList->getClipById(ids.at(0));
+ if (ids.count() == 1) {
+
+ }
+ ClipStabilize *d = new ClipStabilize(destination, ids.count(), filtername);
+ //connect(d, SIGNAL(addClip(KUrl)), this, SLOT(slotAddProjectClip(KUrl)));
+ if (d->exec() == QDialog::Accepted) {
+ m_projectList->slotStabilizeClipJob(ids, d->autoAddClip(), d->params(), d->desc());
+ }
+ delete d;*/
}
void MainWindow::slotTranscode(KUrl::List urls)
params = data.at(0);
if (data.count() > 1) desc = data.at(1);
if (data.count() > 3) condition = data.at(3);
- QStringList ids = m_projectList->getConditionalIds(condition);
- m_projectList->slotTranscodeClipJob(ids, params, desc);
+ m_projectList->slotTranscodeClipJob(condition, params, desc);
return;
}
if (urls.isEmpty()) {