void MainWindow::openLastFile()
{
- KSharedConfigPtr config = KGlobal::config();
- KUrl::List urls = m_fileOpenRecent->urls();
- //WARNING: this is buggy, we get a random url, not the last one. Bug in KRecentFileAction?
- if (urls.isEmpty()) newFile(false);
- else openFile(urls.last());
+ if (m_fileOpenRecent->selectableActionGroup()->actions().isEmpty()) {
+ // No files in history
+ newFile(false);
+ return;
+ }
+ QAction *firstUrlAction = m_fileOpenRecent->selectableActionGroup()->actions().first();
+ if (firstUrlAction) firstUrlAction->trigger();
+ else newFile(false);
}
void MainWindow::openFile(const KUrl &url)
}
m_timelineArea->setTabToolTip(m_timelineArea->currentIndex(), doc->url().path());
trackView->setDuration(trackView->duration());
- trackView->projectView()->initCursorPos(m_projectMonitor->render->seekPosition().frames(doc->fps()));
if (m_timelineArea->count() > 1) m_timelineArea->setTabBarHidden(false);
slotGotProgressInfo(QString(), -1);
connect(trackView->projectView(), SIGNAL(forceClipProcessing(const QString &)), m_projectList, SLOT(slotForceProcessing(const QString &)));
connect(trackView->projectView(), SIGNAL(importKeyframes(GRAPHICSRECTITEM, const QString&, int)), this, SLOT(slotProcessImportKeyframes(GRAPHICSRECTITEM, const QString&, int)));
-
+
connect(m_projectMonitor, SIGNAL(renderPosition(int)), trackView, SLOT(moveCursorPos(int)));
connect(m_projectMonitor, SIGNAL(zoneUpdated(QPoint)), trackView, SLOT(slotSetZone(QPoint)));
connect(m_projectMonitor, SIGNAL(zoneUpdated(QPoint)), doc, SLOT(setModified()));
void MainWindow::slotInsertTrack(int ix)
{
- m_projectMonitor->slotActivateMonitor();
+ m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
if (m_activeTimeline) {
if (ix == -1) ix = m_activeTimeline->projectView()->selectedTrack();
m_activeTimeline->projectView()->slotInsertTrack(ix);
void MainWindow::slotDeleteTrack(int ix)
{
- m_projectMonitor->slotActivateMonitor();
+ m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
if (m_activeTimeline) {
if (ix == -1) ix = m_activeTimeline->projectView()->selectedTrack();
m_activeTimeline->projectView()->slotDeleteTrack(ix);
void MainWindow::slotConfigTrack(int ix)
{
- m_projectMonitor->slotActivateMonitor();
+ m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
if (m_activeTimeline)
m_activeTimeline->projectView()->slotConfigTracks(ix);
if (m_activeDocument)
void MainWindow::slotSelectTrack()
{
- m_projectMonitor->slotActivateMonitor();
+ m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
if (m_activeTimeline) {
m_activeTimeline->projectView()->slotSelectClipsInTrack();
}
void MainWindow::slotSelectAllTracks()
{
- m_projectMonitor->slotActivateMonitor();
+ m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
if (m_activeTimeline)
m_activeTimeline->projectView()->slotSelectAllClips();
}
// any type of clip but a title
ClipProperties *dia = new ClipProperties(clip, m_activeDocument->timecode(), m_activeDocument->fps(), this);
- if (clip->clipType() == AV || clip->clipType() == VIDEO || clip->clipType() == PLAYLIST) {
+ if (clip->clipType() == AV || clip->clipType() == VIDEO || clip->clipType() == PLAYLIST || clip->clipType() == SLIDESHOW) {
// request clip thumbnails
m_activeDocument->clipManager()->requestThumbs(QString('?' + clip->getId()), QList<int>() << clip->getClipThumbFrame());
connect(m_activeDocument->clipManager(), SIGNAL(gotClipPropertyThumbnail(const QString&,QImage)), dia, SLOT(slotGotThumbnail(const QString&,QImage)));
Mlt::Profile profile;
Mlt::Filter *filter = Mlt::Factory::filter(profile,(char*)"videostab");
if (filter) {
- delete filter;
- QAction *action=actionMenu->addAction(i18n("Stabilize (vstab)"));
- action->setData("videostab");
- connect(action,SIGNAL(triggered()), this, SLOT(slotStartClipAction()));
+ if (!filter->is_valid()) {
+ delete filter;
+ }
+ else {
+ delete filter;
+ QAction *action=actionMenu->addAction(i18n("Stabilize (vstab)"));
+ action->setData("videostab");
+ connect(action,SIGNAL(triggered()), this, SLOT(slotStartClipAction()));
+ }
}
filter = Mlt::Factory::filter(profile,(char*)"videostab2");
if (filter) {
- delete filter;
- QAction *action=actionMenu->addAction(i18n("Stabilize (transcode)"));
- action->setData("videostab2");
- connect(action,SIGNAL(triggered()), this, SLOT(slotStartClipAction()));
+ if (!filter->is_valid()) {
+ delete filter;
+ }
+ else {
+ delete filter;
+ QAction *action=actionMenu->addAction(i18n("Stabilize (transcode)"));
+ action->setData("videostab2");
+ connect(action,SIGNAL(triggered()), this, SLOT(slotStartClipAction()));
+ }
}
filter = Mlt::Factory::filter(profile,(char*)"motion_est");
if (filter) {
- delete filter;
- QAction *action=actionMenu->addAction(i18n("Automatic scene split"));
- action->setData("motion_est");
- connect(action,SIGNAL(triggered()), this, SLOT(slotStartClipAction()));
+ if (!filter->is_valid()) {
+ delete filter;
+ }
+ else {
+ delete filter;
+ QAction *action=actionMenu->addAction(i18n("Automatic scene split"));
+ action->setData("motion_est");
+ connect(action,SIGNAL(triggered()), this, SLOT(slotStartClipAction()));
+ }
}
}
{
if (type == AVWIDGET) {
// This data should be sent to the effect stack
+ m_effectStack->setKeyframes(data, maximum);
}
else if (type == TRANSITIONWIDGET) {
// This data should be sent to the transition stack
void MainWindow::slotAlignPlayheadToMousePos()
{
- m_activeTimeline->projectView()->slotAlignPlayheadToMousePos();
+ m_monitorManager->activateMonitor(Kdenlive::projectMonitor);
+ m_activeTimeline->projectView()->slotAlignPlayheadToMousePos();
}
#include "mainwindow.moc"