]> git.sesse.net Git - kdenlive/commitdiff
Merge branch 'master' into feature/pkey
authorEd Rogalsky <ed.rogalsky@googlemail.com>
Thu, 25 Oct 2012 21:09:17 +0000 (23:09 +0200)
committerEd Rogalsky <ed.rogalsky@googlemail.com>
Thu, 25 Oct 2012 21:09:17 +0000 (23:09 +0200)
1  2 
src/customtrackview.cpp
src/customtrackview.h
src/mainwindow.cpp

diff --combined src/customtrackview.cpp
index de183f879c83acb42a65431e0f46ad5d0a019762,f4aa85ff4ca61a02c7ec70ed17ead5807e5afe4d..d03e745dbc32830696c0262b513685e29ddf4685
@@@ -404,15 -404,6 +404,15 @@@ void CustomTrackView::slotCheckPosition
      }
  }
  
 +void CustomTrackView::slotAlignPlayheadToMousePos()
 +{
 +      /* get curser point ref in screen coord */
 +      QPoint ps = QCursor::pos();
 +      /* get xPos in scene coord */
 +      int mappedXPos = qMax((int)(mapToScene(mapFromGlobal(ps)).x() + 0.5), 0);
 +      /* move playhead to new xPos*/
 +      seekCursorPos(mappedXPos);
 +}
  
  // virtual
  void CustomTrackView::mouseMoveEvent(QMouseEvent * event)
@@@ -2693,7 -2684,7 +2693,7 @@@ void CustomTrackView::dropEvent(QDropEv
              groupSelectedItems(true);
          } else if (items.count() == 1) {
              m_dragItem = static_cast <AbstractClipItem *>(items.at(0));
-             emit clipItemSelected((ClipItem*)m_dragItem, false);
+             emit clipItemSelected((ClipItem*) m_dragItem, false);
          }
          event->setDropAction(Qt::MoveAction);
          event->accept();
@@@ -7500,16 -7491,16 +7500,16 @@@ void CustomTrackView::adjustEffects(Cli
  }
  
  
- void CustomTrackView::slotGotFilterJobResults(const QString &/*id*/, int startPos, int track, const QString &filter, stringMap filterParams, QStringList extra)
+ void CustomTrackView::slotGotFilterJobResults(const QString &/*id*/, int startPos, int track, stringMap filterParams, stringMap extra)
  {
      ClipItem *clip = getClipItemAt(GenTime(startPos, m_document->fps()), track);
      if (clip == NULL) {
-         emit displayMessage(i18n("Cannot find clip for effect update %1.", filter), ErrorMessage);
+         emit displayMessage(i18n("Cannot find clip for effect update %1.", extra.value("finalfilter")), ErrorMessage);
          return;
      }
      QDomElement newEffect;
      QDomElement effect = clip->getEffectAtIndex(clip->selectedEffectIndex());
-     if (effect.attribute("id") == filter) {
+     if (effect.attribute("id") == extra.value("finalfilter")) {
          newEffect = effect.cloneNode().toElement();
          QMap<QString, QString>::const_iterator i = filterParams.constBegin();
          while (i != filterParams.constEnd()) {
diff --combined src/customtrackview.h
index 7db48f597959e7694603ca20248f7ec8b6c7220d,3312e74ebd95f561412b6bfe0e259bccd196119b..bdaa74615ced455dc0a4194b50fccfabb742d120
@@@ -304,8 -304,6 +304,8 @@@ public slots
  
      /** @brief Get effect parameters ready for MLT*/
      static void adjustEffectParameters(EffectsParameterList &parameters, QDomNodeList params, MltVideoProfile profile, const QString &prefix = QString());
 +      /** @brief Move playhead to mouse curser position if defined key is pressed */
 +    void slotAlignPlayheadToMousePos();
  
  protected:
      virtual void drawBackground(QPainter * painter, const QRectF & rect);
@@@ -497,7 -495,7 +497,7 @@@ private slots
       *  @param resetThumbs Should we recreate the timeline thumbnails. */
      void slotRefreshThumbs(const QString &id, bool resetThumbs);
      /** @brief A Filter job producer results. */
-     void slotGotFilterJobResults(const QString &id, int startPos, int track, const QString &filter, stringMap filterParams, QStringList extra);
+     void slotGotFilterJobResults(const QString &id, int startPos, int track, stringMap filterParams, stringMap extra);
  
  
  signals:
diff --combined src/mainwindow.cpp
index 4a10ec80bc76ab0516fc3565cc8f14d798b20a7f,da448cc912b9f2ecbd00fb994440b27f0c9b9cee..9eadf01bba1eb02cb706e885d0bab17804ccd8dc
@@@ -280,7 -280,7 +280,7 @@@ MainWindow::MainWindow(const QString &M
      m_effectStack = new EffectStackView2(m_projectMonitor);
      m_effectStackDock->setWidget(m_effectStack);
      addDockWidget(Qt::TopDockWidgetArea, m_effectStackDock);
-     connect(m_effectStack, SIGNAL(startFilterJob(ItemInfo, const QString&,const QString&,const QString&,const QString&,const QString&,const QString&,const QStringList&)), m_projectList, SLOT(slotStartFilterJob(ItemInfo, const QString&,const QString&,const QString&,const QString&,const QString&,const QString&,const QStringList&)));
+     connect(m_effectStack, SIGNAL(startFilterJob(ItemInfo, const QString&,const QString&,const QString&,const QString&,const QString&,const QMap <QString, QString>&)), m_projectList, SLOT(slotStartFilterJob(ItemInfo, const QString&,const QString&,const QString&,const QString&,const QString&,const QMap <QString, QString>&)));
  
      m_transitionConfigDock = new QDockWidget(i18n("Transition"), this);
      m_transitionConfigDock->setObjectName("transition");
@@@ -1402,11 -1402,6 +1402,11 @@@ void MainWindow::setupActions(
      collection.addAction("delete_timeline_clip", deleteItem);
      connect(deleteItem, SIGNAL(triggered(bool)), this, SLOT(slotDeleteItem()));
  
 +    KAction* alignPlayhead = new KAction(i18n("Align Playhead to Mouse Position"), this);
 +    alignPlayhead->setShortcut(Qt::Key_P);
 +    collection.addAction("align_playhead", alignPlayhead);
 +    connect(alignPlayhead, SIGNAL(triggered(bool)), this, SLOT(slotAlignPlayheadToMousePos()));
 +
      /*KAction* editTimelineClipSpeed = new KAction(i18n("Change Clip Speed"), this);
      collection.addAction("change_clip_speed", editTimelineClipSpeed);
      editTimelineClipSpeed->setData("change_speed");
@@@ -1967,6 -1962,7 +1967,7 @@@ bool MainWindow::closeCurrentDocument(b
              break;
          }
      }
+     slotTimelineClipSelected(NULL, false);
      m_clipMonitor->slotSetClipProducer(NULL);
      m_projectList->slotResetProjectList();
      m_timelineArea->removeTab(m_timelineArea->indexOf(w));
@@@ -2528,7 -2524,7 +2529,7 @@@ void MainWindow::connectDocument(TrackV
              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, bool, const int)), m_clipMonitor, SLOT(slotSetClipProducer(DocClipBase *, QPoint, bool, const int)));
-             disconnect(m_projectList, SIGNAL(gotFilterJobResults(const QString &, int, int, const QString &, stringMap,QStringList)), m_activeTimeline->projectView(), SLOT(slotGotFilterJobResults(const QString &, int, int, const QString &, stringMap,QStringList)));
+             disconnect(m_projectList, SIGNAL(gotFilterJobResults(const QString &, int, int, stringMap,stringMap)), m_activeTimeline->projectView(), SLOT(slotGotFilterJobResults(const QString &, int, int, stringMap, stringMap)));
  
              disconnect(m_activeTimeline, SIGNAL(cursorMoved()), m_projectMonitor, SLOT(slotActivateMonitor()));
              disconnect(m_activeTimeline, SIGNAL(configTrack(int)), this, SLOT(slotConfigTrack(int)));
  
      connect(trackView->projectView(), SIGNAL(transitionItemSelected(Transition*, int, QPoint, bool)), m_projectMonitor, SLOT(slotSetSelectedClip(Transition*)));
  
-     connect(m_projectList, SIGNAL(gotFilterJobResults(const QString &, int, int, const QString &, stringMap,QStringList)), trackView->projectView(), SLOT(slotGotFilterJobResults(const QString &, int, int, const QString &, stringMap,QStringList)));
+     connect(m_projectList, SIGNAL(gotFilterJobResults(const QString &, int, int, stringMap,stringMap)), trackView->projectView(), SLOT(slotGotFilterJobResults(const QString &, int, int, stringMap,stringMap)));
  
      connect(m_projectList, SIGNAL(addMarkers(const QString &, QList <CommentedTime>)), trackView->projectView(), SLOT(slotAddClipMarker(const QString &, QList <CommentedTime>)));
  
@@@ -3328,6 -3324,13 +3329,13 @@@ void MainWindow::slotShowClipProperties
  
      // any type of clip but a title
      ClipProperties *dia = new ClipProperties(clip, m_activeDocument->timecode(), m_activeDocument->fps(), this);
+     if (clip->clipType() == AV || clip->clipType() == VIDEO || clip->clipType() == PLAYLIST) {
+       // request clip thumbnails
+       m_activeDocument->clipManager()->requestThumbs(QString('?' + clip->getId()), QList<int>() << clip->getClipThumbFrame());
+       connect(m_activeDocument->clipManager(), SIGNAL(gotClipPropertyThumbnail(const QString&,QImage)), dia, SLOT(slotGotThumbnail(const QString&,QImage)));
+     }
+     
      connect(dia, SIGNAL(addMarkers(const QString &, QList <CommentedTime>)), m_activeTimeline->projectView(), SLOT(slotAddClipMarker(const QString &, QList <CommentedTime>)));
      connect(dia, SIGNAL(deleteAnalysis(QString,QString)), m_activeTimeline->projectView(), SLOT(slotAddClipExtraData(QString,QString)));
      connect(m_activeTimeline->projectView(), SIGNAL(updateClipMarkers(DocClipBase *)), dia, SLOT(slotFillMarkersList(DocClipBase *)));
@@@ -4584,10 -4587,6 +4592,10 @@@ void MainWindow::slotProcessImportKeyfr
      }
  }
  
 +void MainWindow::slotAlignPlayheadToMousePos()
 +{
 +      m_activeTimeline->projectView()->slotAlignPlayheadToMousePos();
 +}
  
  #include "mainwindow.moc"