]> git.sesse.net Git - kdenlive/blobdiff - src/mainwindow.cpp
Fix broken producer incorrectly handled when using proxy, corrupting project:
[kdenlive] / src / mainwindow.cpp
index 2ff3cfdf79cf939ccd2b647c53556de889e0373b..7574120fb8a148993b8c6bc5394be5de3049c66d 100644 (file)
@@ -359,6 +359,7 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, const QString &
 
 
     setupActions();
+    connect(m_commandStack, SIGNAL(cleanChanged(bool)), m_saveAction, SLOT(setDisabled(bool)));
 
 
     // Close non-general docks for the initial layout
@@ -1590,6 +1591,13 @@ void MainWindow::setupActions()
     connect(reloadClip , SIGNAL(triggered()), m_projectList, SLOT(slotReloadClip()));
     reloadClip->setEnabled(false);
 
+    QAction *proxyClip = new KAction(i18n("Proxy Clip"), this);
+    collection.addAction("proxy_clip", proxyClip);
+    proxyClip->setData("proxy_clip");
+    proxyClip->setCheckable(true);
+    proxyClip->setChecked(false);
+    connect(proxyClip, SIGNAL(toggled(bool)), m_projectList, SLOT(slotProxyCurrentItem(bool)));
+    
     QAction *stopMotion = new KAction(KIcon("image-x-generic"), i18n("Stop Motion Capture"), this);
     collection.addAction("stopmotion", stopMotion);
     connect(stopMotion , SIGNAL(triggered()), this, SLOT(slotOpenStopmotion()));
@@ -1603,6 +1611,7 @@ void MainWindow::setupActions()
     addClips->addAction(addFolderButton);
 
     addClips->addAction(reloadClip);
+    addClips->addAction(proxyClip);
     addClips->addAction(clipProperties);
     addClips->addAction(openClip);
     addClips->addAction(deleteClip);
@@ -1900,6 +1909,7 @@ bool MainWindow::saveFileAs(const QString &outputFileName)
     m_activeDocument->setModified(false);
     m_fileOpenRecent->addUrl(KUrl(outputFileName));
     m_fileRevert->setEnabled(true);
+    m_undoView->stack()->setClean();
     return true;
 }
 
@@ -2200,6 +2210,7 @@ void MainWindow::slotEditProjectSettings()
 {
     QPoint p = m_activeDocument->getTracksCount();
     ProjectSettings *w = new ProjectSettings(m_projectList, m_activeTimeline->projectView()->extractTransitionsLumas(), p.x(), p.y(), m_activeDocument->projectFolder().path(), true, !m_activeDocument->isModified(), this);
+    connect(w, SIGNAL(disableProxies()), this, SLOT(slotDisableProxies()));
 
     if (w->exec() == QDialog::Accepted) {
         QString profile = w->selectedProfile();
@@ -2248,6 +2259,13 @@ void MainWindow::slotEditProjectSettings()
     delete w;
 }
 
+void MainWindow::slotDisableProxies()
+{
+    m_activeDocument->setDocumentProperty("enableproxy", QString::number((int) false));
+    m_activeDocument->setModified();
+    slotUpdateProxySettings();
+}
+
 void MainWindow::slotUpdateProjectProfile(const QString &profile)
 {
     // Recreate the stopmotion widget if profile changes
@@ -4344,7 +4362,6 @@ void MainWindow::slotBlockClipMonitor(const QString id)
 }
 
 
-
 #include "mainwindow.moc"
 
 #ifdef DEBUG_MAINW