]> git.sesse.net Git - kdenlive/blobdiff - src/mainwindow.cpp
First steps to implement 3 points editing (Using v to insert-overwrite)
[kdenlive] / src / mainwindow.cpp
index c17d6109cfa0aa023e35beb216bc89f9dd37a425..ebcf106c7f825e5b850922819ce06472d899d229 100644 (file)
@@ -741,14 +741,14 @@ void MainWindow::setupActions()
     toolbar->setMovable(false);
     statusBar()->setStyleSheet(QString("QStatusBar QLabel {font-size:%1pt;} QStatusBar::item { border: 0px; font-size:%1pt;padding:0px; }").arg(statusBar()->font().pointSize()));
     QString style1 = "QToolBar { border: 0px } QToolButton { border-style: inset; border:1px solid #999999;border-radius: 3px;margin: 0px 3px;padding: 0px;} QToolButton:checked { background-color: rgba(224, 224, 0, 100); border-style: inset; border:1px solid #cc6666;border-radius: 3px;}";
-    
+
     // create edit mode buttons
     KAction *normaledit = new KAction(KIcon("kdenlive-normal-edit"), i18n("Normal mode"), this);
     normaledit->setShortcut(i18nc("Normal editing", "n"));
     toolbar->addAction(normaledit);
     normaledit->setCheckable(true);
     normaledit->setChecked(true);
-    
+
     m_overwriteModeTool = new KAction(KIcon("kdenlive-overwrite-edit"), i18n("Overwrite mode"), this);
     m_overwriteModeTool->setShortcut(i18nc("Overwrite mode shortcut", "o"));
     toolbar->addAction(m_overwriteModeTool);
@@ -762,7 +762,7 @@ void MainWindow::setupActions()
     m_insertModeTool->setChecked(false);
     // not implemented yet
     m_insertModeTool->setEnabled(false);
-    
+
     QActionGroup *editGroup = new QActionGroup(this);
     editGroup->addAction(normaledit);
     editGroup->addAction(m_overwriteModeTool);
@@ -770,7 +770,7 @@ void MainWindow::setupActions()
     editGroup->setExclusive(true);
     connect(editGroup, SIGNAL(triggered(QAction *)), this, SLOT(slotChangeEdit(QAction *)));
     //connect(m_overwriteModeTool, SIGNAL(toggled(bool)), this, SLOT(slotSetOverwriteMode(bool)));
-    
+
     toolbar->addSeparator();
 
     // create tools buttons
@@ -808,11 +808,11 @@ void MainWindow::setupActions()
     actionWidget = toolbar->widgetForAction(m_insertModeTool);
     actionWidget->setMaximumWidth(max);
     actionWidget->setMaximumHeight(max - 4);
-    
+
     actionWidget = toolbar->widgetForAction(m_overwriteModeTool);
     actionWidget->setMaximumWidth(max);
     actionWidget->setMaximumHeight(max - 4);
-    
+
     actionWidget = toolbar->widgetForAction(m_buttonSelectTool);
     actionWidget->setMaximumWidth(max);
     actionWidget->setMaximumHeight(max - 4);
@@ -896,7 +896,7 @@ void MainWindow::setupActions()
     statusBar()->addPermanentWidget(m_timecodeFormat);
     //statusBar()->setMaximumHeight(statusBar()->font().pointSize() * 3);
 
-    collection->addAction("normal_mode", normaledit);    
+    collection->addAction("normal_mode", normaledit);
     collection->addAction("overwrite_mode", m_overwriteModeTool);
     collection->addAction("insert_mode", m_insertModeTool);
     collection->addAction("select_tool", m_buttonSelectTool);
@@ -1101,6 +1101,11 @@ void MainWindow::setupActions()
     ungroupClip->setData("ungroup_clip");
     connect(ungroupClip, SIGNAL(triggered(bool)), this, SLOT(slotUnGroupClips()));
 
+    KAction* insertOvertwrite = new KAction(KIcon(), i18n("Insert Clip Zone in Timeline (Overwrite)"), this);
+    insertOvertwrite->setShortcut(Qt::Key_V);
+    collection->addAction("overwrite_to_in_point", insertOvertwrite);
+    connect(insertOvertwrite, SIGNAL(triggered(bool)), this, SLOT(slotInsertClipOverwrite()));
+
     KAction* selectTimelineClip = new KAction(KIcon("edit-select"), i18n("Select Clip"), this);
     selectTimelineClip->setShortcut(Qt::Key_Plus);
     collection->addAction("select_timeline_clip", selectTimelineClip);
@@ -1410,7 +1415,7 @@ void MainWindow::newFile(bool showProjectSettings)
         profileName = KdenliveSettings::default_profile();
         projectFolder = KdenliveSettings::defaultprojectfolder();
     } else {
-        ProjectSettings *w = new ProjectSettings(NULL, projectTracks.x(), projectTracks.y(), KdenliveSettings::defaultprojectfolder(), false, true, this);
+        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());
@@ -1777,7 +1782,7 @@ void MainWindow::slotDetectAudioDriver()
 void MainWindow::slotEditProjectSettings()
 {
     QPoint p = m_activeDocument->getTracksCount();
-    ProjectSettings *w = new ProjectSettings(m_projectList, p.x(), p.y(), m_activeDocument->projectFolder().path(), true, !m_activeDocument->isModified(), this);
+    ProjectSettings *w = new ProjectSettings(m_projectList, m_activeTimeline->projectView()->extractTransitionsLumas(), p.x(), p.y(), m_activeDocument->projectFolder().path(), true, !m_activeDocument->isModified(), this);
 
     if (w->exec() == QDialog::Accepted) {
         QString profile = w->selectedProfile();
@@ -1790,7 +1795,7 @@ void MainWindow::slotEditProjectSettings()
             // Deselect current effect / transition
             m_effectStack->slotClipItemSelected(NULL, 0);
             m_transitionConfig->slotTransitionItemSelected(NULL, 0, QPoint(), false);
-            m_clipMonitor->slotSetXml(NULL, 0);
+            m_clipMonitor->slotSetXml(NULL);
             bool updateFps = m_activeDocument->setProfilePath(profile);
             KdenliveSettings::setCurrent_profile(profile);
             KdenliveSettings::setProject_fps(m_activeDocument->fps());
@@ -1949,7 +1954,7 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc)   //cha
     m_projectList->setDocument(doc);
     m_transitionConfig->updateProjectFormat(doc->mltProfile(), doc->timecode(), doc->tracksList());
     m_effectStack->updateProjectFormat(doc->mltProfile(), doc->timecode());
-    connect(m_projectList, SIGNAL(clipSelected(DocClipBase *)), m_clipMonitor, SLOT(slotSetXml(DocClipBase *)));
+    connect(m_projectList, SIGNAL(clipSelected(DocClipBase *, QPoint)), m_clipMonitor, SLOT(slotSetXml(DocClipBase *, QPoint)));
     connect(m_projectList, SIGNAL(refreshClip()), m_clipMonitor, SLOT(refreshMonitor()));
     connect(m_projectList, SIGNAL(projectModified()), doc, SLOT(setModified()));
     connect(m_projectList, SIGNAL(clipNameChanged(const QString, const QString)), trackView->projectView(), SLOT(clipNameChanged(const QString, const QString)));
@@ -2076,7 +2081,7 @@ void MainWindow::slotPreferences(int page, int option)
 void MainWindow::slotUpdatePreviewSettings()
 {
     if (m_activeDocument) {
-        m_clipMonitor->slotSetXml(NULL, 0);
+        m_clipMonitor->slotSetXml(NULL);
         m_activeDocument->updatePreviewSettings();
     }
 }
@@ -2333,6 +2338,14 @@ void MainWindow::slotCutTimelineClip()
     }
 }
 
+void MainWindow::slotInsertClipOverwrite()
+{
+    if (m_activeTimeline) {
+        QStringList data = m_clipMonitor->getZoneInfo();
+        m_activeTimeline->projectView()->insertZoneOverwrite(data, m_activeTimeline->inPoint());
+    }
+}
+
 void MainWindow::slotSelectTimelineClip()
 {
     if (m_activeTimeline) {