]> git.sesse.net Git - kdenlive/blobdiff - src/mainwindow.cpp
Updated DVD wizard (added load/save dvd projects)
[kdenlive] / src / mainwindow.cpp
index 15adae1b9ecb1080bd11df7b7b06e02539f25a21..46f0fd9c81338a378f28e377d2a4aeb4f3d1c1eb 100644 (file)
@@ -50,6 +50,7 @@
 #include "clipitem.h"
 #include "interfaces.h"
 #include "kdenlive-config.h"
+#include "cliptranscode.h"
 
 #include <KApplication>
 #include <KAction>
@@ -841,6 +842,10 @@ void MainWindow::setupActions()
     collection->addAction("dvd_wizard", dvdWizard);
     connect(dvdWizard, SIGNAL(triggered(bool)), this, SLOT(slotDvdWizard()));
 
+    KAction *transcodeClip =  new KAction(KIcon("edit-copy"), i18n("Transcode Clip"), this);
+    collection->addAction("transcode_clip", transcodeClip);
+    connect(transcodeClip, SIGNAL(triggered(bool)), this, SLOT(slotTranscodeClip()));
+
     KAction *markIn = collection->addAction("mark_in");
     markIn->setText(i18n("Set In Point"));
     markIn->setShortcut(Qt::Key_I);
@@ -1437,7 +1442,7 @@ void MainWindow::recoverFiles(QList<KAutoSaveFile *> staleFiles)
 
 void MainWindow::parseProfiles(const QString &mltPath)
 {
-    //kdDebug()<<" + + YOUR MLT INSTALL WAS FOUND IN: "<< MLT_PREFIX <<endl;
+    // kDebug()<<" + + YOUR MLT INSTALL WAS FOUND IN: "<< MLT_PREFIX <<endl;
 
     //KdenliveSettings::setDefaulttmpfolder();
     if (!mltPath.isEmpty()) {
@@ -2634,7 +2639,7 @@ void MainWindow::slotShowTimeline(bool show)
     }
 }
 
-void MainWindow::slotMaximizeCurrent(bool show)
+void MainWindow::slotMaximizeCurrent(bool /*show*/)
 {
     //TODO: is there a way to maximize current widget?
     //if (show == true)
@@ -2669,42 +2674,27 @@ void MainWindow::loadTranscoders()
     }
 }
 
-void MainWindow::slotTranscode()
+void MainWindow::slotTranscode(QString url)
 {
-    if (m_transcodeProcess.state() != QProcess::NotRunning) {
-        m_messageLabel->setMessage(i18n("A transcoding job is already running"), ErrorMessage);
-        return;
+    QString params;
+    if (url.isEmpty()) {
+        url = m_projectList->currentClipUrl();
+        QAction *action = qobject_cast<QAction *>(sender());
+        params = action->data().toString();
+
     }
-    QString url = m_projectList->currentClipUrl();
     if (url.isEmpty()) return;
-    QAction *action = qobject_cast<QAction *>(sender());
-    QString params = action->data().toString();
-    params = params.simplified();
-    QStringList parameters;
-    parameters << "-i" << url;
-    QString fileName = url; //.section('.', 0, -1);
-    params.replace("%1", fileName);
-    QString newFile = params.section(' ', -1);
-    kDebug() << "//PARAMS: " << params << "\n\nNAME: " << newFile;
-    if (QFile::exists(newFile)) {
-        if (KMessageBox::questionYesNo(this, i18n("File %1 already exists.\nDo you want to overwrite it?", newFile)) == KMessageBox::No) return;
-        parameters << "-y";
-    }
-    parameters << params.split(' ');
-    kDebug() << "/// FFMPEG ARGS: " << parameters;
-    m_transcodeProcess.setProcessChannelMode(QProcess::MergedChannels);
-    connect(&m_transcodeProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(slotShowTranscodeInfo()));
-    m_transcodeProcess.start("ffmpeg", parameters);
-
+    ClipTranscode *d = new ClipTranscode(url, params);
+    connect(d, SIGNAL(addClip(KUrl)), this, SLOT(slotAddProjectClip(KUrl)));
+    d->show();
     //QProcess::startDetached("ffmpeg", parameters);
 }
 
-void MainWindow::slotShowTranscodeInfo()
+void MainWindow::slotTranscodeClip()
 {
-    QString log = QString(m_transcodeProcess.readAll());
-    kDebug() << "//LOG: " << log;
-    //TODO: find better way to display transcode output info
-    m_messageLabel->setMessage(log, ErrorMessage);
+    KUrl url = KFileDialog::getOpenUrl(KUrl("kfiledialog:///projectfolder"));
+    if (url.isEmpty()) return;
+    slotTranscode(url.path());
 }
 
 #include "mainwindow.moc"