]> git.sesse.net Git - kdenlive/commitdiff
Merge branch 'master' into stabilize
authorMarco Gittler <marco@gitma.de>
Sun, 11 Dec 2011 16:04:11 +0000 (17:04 +0100)
committerMarco Gittler <marco@gitma.de>
Sun, 11 Dec 2011 16:04:11 +0000 (17:04 +0100)
1  2 
src/CMakeLists.txt
src/mainwindow.cpp

diff --combined src/CMakeLists.txt
index b2d56d586b3b7eca4c365884ba0650ed08ff4442,2783549438a22935127fe30b0b314ce3fa9e506a..ffe559b6b7b32abba6b973d9e51fd9f25a71fbbf
@@@ -111,7 -111,6 +111,7 @@@ list(APPEND kdenlive_SRC
    clipmanager.cpp
    clipproperties.cpp
    cliptranscode.cpp
 +  clipstabilize.cpp
    colorpickerwidget.cpp
    colorplaneexport.cpp
    colortools.cpp
@@@ -196,7 -195,6 +196,7 @@@ kde4_add_ui_files(kdenlive_UI
    widgets/clipdurationdialog_ui.ui
    widgets/clipproperties_ui.ui
    widgets/cliptranscode_ui.ui
 +  widgets/clipstabilize_ui.ui
    widgets/colorclip_ui.ui
    widgets/colorplaneexport_ui.ui
    widgets/configcapture_ui.ui
    widgets/wizardextra_ui.ui
    widgets/wizardmltcheck_ui.ui
    widgets/wizardstandard_ui.ui
+   widgets/keywordval_ui.ui
+   widgets/fontval_ui.ui
  )
  
  if(OPENGL_FOUND)
diff --combined src/mainwindow.cpp
index 9927ddcf11f3d82bc6604f3da1c7a1deb1846c05,3ab21390f99072625473ba67d38983ac1355e68d..8dda49a6dbc826a2ac884f00f8551dc897a828ed
@@@ -54,7 -54,6 +54,7 @@@
  #include "interfaces.h"
  #include "config-kdenlive.h"
  #include "cliptranscode.h"
 +#include "clipstabilize.h"
  #include "ui_templateclip_ui.h"
  #include "colorscopes/vectorscope.h"
  #include "colorscopes/waveform.h"
  #include <QBitmap>
  
  #include <stdlib.h>
+ #include <locale.h>
  
  // Uncomment for deeper debugging
  //#define DEBUG_MAINW
@@@ -157,6 -157,15 +158,15 @@@ MainWindow::MainWindow(const QString &M
  
      // Init locale
      QLocale systemLocale = QLocale();
+     setlocale(LC_NUMERIC, NULL);
+     char *separator = localeconv()->decimal_point;
+     if (separator != systemLocale.decimalPoint()) {
+         kDebug()<<"------\n!!! system locale is not similar to Qt's locale... be prepared for bugs!!!\n------";
+         // HACK: There is a locale conflict, so set locale to at least have correct decimal point
+         if (strncmp(separator, ".", 1) == 0) systemLocale = QLocale::c();
+         else if (strncmp(separator, ",", 1) == 0) systemLocale = QLocale("fr_FR.UTF-8");
+     }
+     
      systemLocale.setNumberOptions(QLocale::OmitGroupSeparator);
      QLocale::setDefault(systemLocale);
  
      m_clipMonitorDock->setWidget(m_clipMonitor);
      
      // Connect the project list
-     connect(m_projectList, SIGNAL(clipSelected(DocClipBase *, QPoint)), m_clipMonitor, SLOT(slotSetClipProducer(DocClipBase *, QPoint)));
+     connect(m_projectList, SIGNAL(clipSelected(DocClipBase *, QPoint, bool)), m_clipMonitor, SLOT(slotSetClipProducer(DocClipBase *, QPoint, bool)));
      connect(m_projectList, SIGNAL(raiseClipMonitor()), m_clipMonitor, SLOT(activateMonitor()));
      connect(m_projectList, SIGNAL(loadingIsOver()), this, SLOT(slotElapsedTime()));
      connect(m_projectList, SIGNAL(displayMessage(const QString&, int)), this, SLOT(slotGotProgressInfo(const QString&, int)));
      connect(m_projectList, SIGNAL(updateRenderStatus()), this, SLOT(slotCheckRenderStatus()));
      connect(m_projectList, SIGNAL(clipNeedsReload(const QString&)),this, SLOT(slotUpdateClip(const QString &)));
      connect(m_projectList, SIGNAL(updateProfile(const QString &)), this, SLOT(slotUpdateProjectProfile(const QString &)));
-     connect(m_projectList, SIGNAL(refreshClip(const QString &, bool)), m_monitorManager, SLOT(slotRefreshCurrentMonitor()));
+     connect(m_projectList, SIGNAL(refreshClip(const QString &, bool)), m_monitorManager, SLOT(slotRefreshCurrentMonitor(const QString &)));
      connect(m_projectList, SIGNAL(findInTimeline(const QString&)), this, SLOT(slotClipInTimeline(const QString&)));
      connect(m_clipMonitor, SIGNAL(zoneUpdated(QPoint)), m_projectList, SLOT(slotUpdateClipCut(QPoint)));
  
@@@ -2473,7 -2482,7 +2483,7 @@@ void MainWindow::connectDocument(TrackV
              disconnect(m_activeTimeline->projectView(), SIGNAL(transitionItemSelected(Transition*, int, QPoint, bool)), m_projectMonitor, SLOT(slotSetSelectedClip(Transition*)));
              disconnect(m_activeTimeline->projectView(), SIGNAL(playMonitor()), m_projectMonitor, SLOT(slotPlay()));
              disconnect(m_activeTimeline->projectView(), SIGNAL(displayMessage(const QString&, MessageType)), m_messageLabel, SLOT(setMessage(const QString&, MessageType)));
-             disconnect(m_activeTimeline->projectView(), SIGNAL(showClipFrame(DocClipBase *, QPoint, const int)), m_clipMonitor, SLOT(slotSetClipProducer(DocClipBase *, QPoint, const int)));
+             disconnect(m_activeTimeline->projectView(), SIGNAL(showClipFrame(DocClipBase *, QPoint, bool, const int)), m_clipMonitor, SLOT(slotSetClipProducer(DocClipBase *, QPoint, bool, const int)));
              disconnect(m_activeTimeline, SIGNAL(cursorMoved()), m_projectMonitor, SLOT(activateMonitor()));
              disconnect(m_activeTimeline, SIGNAL(insertTrack(int)), this, SLOT(slotInsertTrack(int)));
              disconnect(m_activeTimeline, SIGNAL(deleteTrack(int)), this, SLOT(slotDeleteTrack(int)));
      connect(trackView, SIGNAL(setZoom(int)), this, SLOT(slotSetZoom(int)));
      connect(trackView->projectView(), SIGNAL(displayMessage(const QString&, MessageType)), m_messageLabel, SLOT(setMessage(const QString&, MessageType)));
  
-     connect(trackView->projectView(), SIGNAL(showClipFrame(DocClipBase *, QPoint, const int)), m_clipMonitor, SLOT(slotSetClipProducer(DocClipBase *, QPoint, const int)));
+     connect(trackView->projectView(), SIGNAL(showClipFrame(DocClipBase *, QPoint, bool, const int)), m_clipMonitor, SLOT(slotSetClipProducer(DocClipBase *, QPoint, bool, const int)));
      connect(trackView->projectView(), SIGNAL(playMonitor()), m_projectMonitor, SLOT(slotPlay()));
  
      connect(trackView->projectView(), SIGNAL(clipItemSelected(ClipItem*, int, bool)), m_projectMonitor, SLOT(slotSetSelectedClip(ClipItem*)));
@@@ -3195,7 -3204,7 +3205,7 @@@ void MainWindow::slotShowClipProperties
                  else newprops.insert("templatetext", description);
                  //newprops.insert("xmldata", m_projectList->generateTemplateXml(newtemplate, description).toString());
                  if (!newprops.isEmpty()) {
-                     EditClipCommand *command = new EditClipCommand(m_projectList, clip->getId(), clip->properties(), newprops, true);
+                     EditClipCommand *command = new EditClipCommand(m_projectList, clip->getId(), clip->currentProperties(newprops), newprops, true);
                      m_activeDocument->commandStack()->push(command);
                  }
              }
          if (dia_ui->exec() == QDialog::Accepted) {
              QMap <QString, QString> newprops;
              newprops.insert("xmldata", dia_ui->xml().toString());
-             if (dia_ui->outPoint() != clip->duration().frames(m_activeDocument->fps()) - 1) {
+             if (dia_ui->outPoint() != clip->duration().frames(m_activeDocument->fps())) {
                  // duration changed, we need to update duration
                  newprops.insert("out", QString::number(dia_ui->outPoint()));
                  int currentLength = QString(clip->producerProperty("length")).toInt();
                      dia_ui->saveTitle(path);
                  } else newprops.insert("resource", QString());
              }
-             EditClipCommand *command = new EditClipCommand(m_projectList, clip->getId(), clip->properties(), newprops, true);
+             EditClipCommand *command = new EditClipCommand(m_projectList, clip->getId(), clip->currentProperties(newprops), newprops, true);
              m_activeDocument->commandStack()->push(command);
              //m_activeTimeline->projectView()->slotUpdateClip(clip->getId());
              m_activeDocument->setModified(true);
@@@ -3273,9 -3282,9 +3283,9 @@@ void MainWindow::slotShowClipProperties
          for (int i = 0; i < cliplist.count(); i++) {
              DocClipBase *clip = cliplist.at(i);
              if (clip->clipType() == IMAGE)
-                 new EditClipCommand(m_projectList, clip->getId(), clip->properties(), newImageProps, true, command);
+                 new EditClipCommand(m_projectList, clip->getId(), clip->currentProperties(newImageProps), newImageProps, true, command);
              else 
-                 new EditClipCommand(m_projectList, clip->getId(), clip->properties(), newProps, true, command);
+                 new EditClipCommand(m_projectList, clip->getId(), clip->currentProperties(newProps), newProps, true, command);
          }
          m_activeDocument->commandStack()->push(command);
          for (int i = 0; i < cliplist.count(); i++)
@@@ -3823,25 -3832,14 +3833,25 @@@ void MainWindow::loadTranscoders(
  
  void MainWindow::slotStabilize(KUrl::List urls)
  {
 -      QString condition;
 +      QString condition,filtername;
 +
        if (urls.isEmpty()) {
          QAction *action = qobject_cast<QAction *>(sender());
                if (action){
 -                      QString filtername=action->data().toString();
 +                      filtername=action->data().toString();
                        urls = m_projectList->getConditionalUrls(condition);
                }
      }
 +    if (urls.isEmpty()) {
 +        m_messageLabel->setMessage(i18n("No clip to transcode"), ErrorMessage);
 +        return;
 +    }
 +      Mlt::Profile profile;
 +      Mlt::Filter filter(profile,filtername.toUtf8().data());
 +      ClipStabilize *d=new ClipStabilize(urls,filtername,&filter);
 +      connect(d, SIGNAL(addClip(KUrl)), this, SLOT(slotAddProjectClip(KUrl)));
 +      d->show();
 +
  }
  
  void MainWindow::slotTranscode(KUrl::List urls)