]> git.sesse.net Git - kdenlive/blobdiff - src/mainwindow.cpp
small fixes for auto scene detection
[kdenlive] / src / mainwindow.cpp
index e80868fd86775a6d5b07d7d715717845b17c7f37..0a138bb1fc0f96f8f0ca968db60f2da4825be50f 100644 (file)
@@ -460,7 +460,7 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, const QString &
 
     loadPlugins();
     loadTranscoders();
-    loadStabilize();
+    loadClipActions();
 
     m_projectMonitor->setupMenu(static_cast<QMenu*>(factory()->container("monitor_go", this)), m_playZone, m_loopZone, NULL, m_loopClip);
     m_clipMonitor->setupMenu(static_cast<QMenu*>(factory()->container("monitor_go", this)), m_playZone, m_loopZone, static_cast<QMenu*>(factory()->container("marker_menu", this)));
@@ -471,7 +471,7 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, const QString &
        menus.insert("addMenu",static_cast<QMenu*>(factory()->container("generators", this)));
         menus.insert("extractAudioMenu",static_cast<QMenu*>(factory()->container("extract_audio", this)));
        menus.insert("transcodeMenu",static_cast<QMenu*>(factory()->container("transcoders", this)));
-       menus.insert("stabilizeMenu",static_cast<QMenu*>(factory()->container("stabilize", this)));
+       menus.insert("clipActionsMenu",static_cast<QMenu*>(factory()->container("clip_actions", this)));
        menus.insert("inTimelineMenu",clipInTimeline);
     m_projectList->setupGeneratorMenu(menus);
 
@@ -912,6 +912,7 @@ void MainWindow::slotUpdateClip(const QString &id)
 void MainWindow::slotConnectMonitors()
 {
     m_projectList->setRenderer(m_projectMonitor->render);
+    connect(m_projectList, SIGNAL(pauseMonitor()), m_monitorManager, SLOT(slotPause()));
     connect(m_projectList, SIGNAL(deleteProjectClips(QStringList, QMap<QString, QString>)), this, SLOT(slotDeleteProjectClips(QStringList, QMap<QString, QString>)));
     connect(m_projectList, SIGNAL(showClipProperties(DocClipBase *)), this, SLOT(slotShowClipProperties(DocClipBase *)));
     connect(m_projectList, SIGNAL(showClipProperties(QList <DocClipBase *>, QMap<QString, QString>)), this, SLOT(slotShowClipProperties(QList <DocClipBase *>, QMap<QString, QString>)));
@@ -2734,7 +2735,7 @@ void MainWindow::updateConfiguration()
 
     // Update list of transcoding profiles
     loadTranscoders();
-    loadStabilize();
+    loadClipActions();
 #ifdef USE_JOGSHUTTLE
     activateShuttleDevice();
 #endif
@@ -3886,25 +3887,35 @@ void MainWindow::slotMaximizeCurrent(bool)
     kDebug() << "CURRENT WIDGET: " << par->objectName();
 }
 
-void MainWindow::loadStabilize()
+void MainWindow::loadClipActions()
 {
-       QMenu* stabMenu= static_cast<QMenu*>(factory()->container("stabilize", this));
-       if (stabMenu){
-               stabMenu->clear();
+       QMenu* actionMenu= static_cast<QMenu*>(factory()->container("clip_actions", this));
+       if (actionMenu){
+               actionMenu->clear();
                Mlt::Profile profile;
-               if (Mlt::Factory::filter(profile,(char*)"videostab")){
-                       QAction *action=stabMenu->addAction("Videostab (vstab)");
+               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(slotStabilize()));
                }
-               if (Mlt::Factory::filter(profile,(char*)"videostab2")){
-                       QAction *action=stabMenu->addAction("Videostab (transcode)");
+               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(slotStabilize()));
                }
+               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(slotStabilize()));
+               }
        }
 
-
 }
 
 void MainWindow::loadTranscoders()