]> git.sesse.net Git - kdenlive/commitdiff
update timeline duration
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 24 Feb 2008 23:04:38 +0000 (23:04 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 24 Feb 2008 23:04:38 +0000 (23:04 +0000)
svn path=/branches/KDE4/; revision=1927

src/customtrackview.cpp
src/customtrackview.h
src/mainwindow.cpp
src/mainwindow.h
src/monitor.cpp
src/monitor.h
src/renderer.cpp
src/renderer.h

index 4ddb02d70c7677a7b1124716407beb968a9ddf63..24ff4df63e2e4442b70c794539a2c236fef59102 100644 (file)
@@ -454,7 +454,7 @@ void CustomTrackView::setDuration(int duration)
 {
   kDebug()<<"/////////////  PRO DUR: "<<duration<<", height: "<<50 * m_tracksCount;
   m_projectDuration = duration;
-  scene()->setSceneRect(0, 0, m_projectDuration + 500, scene()->sceneRect().height()); //50 * m_tracksCount);
+  scene()->setSceneRect(0, 0, (m_projectDuration + 500) * m_scale, scene()->sceneRect().height()); //50 * m_tracksCount);
 }
 
 
@@ -649,6 +649,7 @@ void CustomTrackView::setScale(double scaleFactor)
   m_scale = scaleFactor;
   kDebug()<<" HHHHHHHH  SCALING: "<<m_scale;
   QList<QGraphicsItem *> itemList = items();
+  scene()->setSceneRect(0, 0, (m_projectDuration + 500) * m_scale, scene()->sceneRect().height()); //50 *
 
   for (int i = 0; i < itemList.count(); i++) {
       if (itemList.at(i)->type() == 70000) {
@@ -671,10 +672,11 @@ void CustomTrackView::drawBackground ( QPainter * painter, const QRectF & rect )
   QColor base = palette().button().color();
   //painter->setPen(base);
   painter->setClipRect(rect);
-  painter->drawLine(0, 0, width(), 0);
+  int width = scene()->sceneRect().width();
+  painter->drawLine(0, 0, width, 0);
     for (uint i = 0; i < m_tracksCount;i++)
     {
-      painter->drawLine(0, 50 * (i+1), width(), 50 * (i+1));
+      painter->drawLine(0, 50 * (i+1), width, 50 * (i+1));
       painter->drawText(QRectF(10, 50 * i, 100, 50 * i + 49), Qt::AlignLeft, i18n(" Track ") + QString::number(i + 1));
     }
   int lowerLimit = 50 * m_tracksCount;
index 632681879764594a774abe8f92ea07fa9dbe6c0b..5cfd988b9753d3bcc22e0a02e2b5b82c8b87e693 100644 (file)
@@ -47,7 +47,6 @@ class CustomTrackView : public QGraphicsView
     void resizeClip ( const QPointF &startPos, const QPointF &endPos, bool resizeClipStart );
     void addClip ( QDomElement xml, int clipId, int track, int startpos, const QRectF &rect, int duration);
     void deleteClip ( int track, int startpos, const QRectF &rect );
-    void setDuration(int duration);
     void setScale(double scaleFactor);
     void deleteClip(int clipId);
     void slotAddEffect(QDomElement effect);
@@ -59,6 +58,7 @@ class CustomTrackView : public QGraphicsView
     void slotDeleteEffect(ClipItem *clip, QDomElement effect);
     void slotUpdateClipEffect(ClipItem *clip, QDomElement effect);
     void slotRefreshEffects(ClipItem *clip);
+    void setDuration(int duration);
 
   protected:
     virtual void drawBackground ( QPainter * painter, const QRectF & rect );
index e744e809c045c774d0c56d109b64c8e9716e3ab4..e8c556c3ec29de8d23941aafd84c2b612388fa32 100644 (file)
@@ -261,12 +261,22 @@ void MainWindow::setupActions()
   KStandardAction::redo(this, SLOT(redo()),
                         actionCollection());*/
 
+  connect(actionCollection(), SIGNAL( actionHighlighted( QAction* ) ), 
+    this, SLOT( slotDisplayActionMessage( QAction* ) ) );
+  //connect(actionCollection(), SIGNAL( clearStatusText() ),
+    //statusBar(), SLOT( clear() ) );
+
   readOptions();  
 
   /*m_redo = m_commandStack->createRedoAction(actionCollection());
   m_undo = m_commandStack->createUndoAction(actionCollection());*/
 }
 
+void MainWindow::slotDisplayActionMessage( QAction *a)
+{
+  statusBar()->showMessage(a->data().toString(), 3000);
+}
+
 void MainWindow::saveOptions()
 {
   KSharedConfigPtr config = KGlobal::config ();
@@ -437,6 +447,7 @@ void MainWindow::connectDocument(TrackView *trackView, KdenliveDoc *doc) //chang
   connect(trackView, SIGNAL(cursorMoved()), m_projectMonitor, SLOT(activateMonitor()));
   connect(trackView, SIGNAL(mousePosition(int)), this, SLOT(slotUpdateMousePosition(int)));
   connect(m_projectMonitor, SIGNAL(renderPosition(int)), trackView, SLOT(moveCursorPos(int)));
+  connect(m_projectMonitor, SIGNAL(durationChanged(int)), trackView->projectView(), SLOT(setDuration(int)));
   connect(doc, SIGNAL(addProjectClip(DocClipBase *)), m_projectList, SLOT(slotAddClip(DocClipBase *)));
   connect(doc, SIGNAL(signalDeleteProjectClip(int)), m_projectList, SLOT(slotDeleteClip(int)));
   connect(doc, SIGNAL(updateClipDisplay(int)), m_projectList, SLOT(slotUpdateClip(int)));
index cc6d1581671cf13930ecb4c82295c89b881ba6e5..060f657e7e32dfe48543626f8f9d4abfc24173c4 100644 (file)
@@ -119,6 +119,7 @@ class MainWindow : public KXmlGuiWindow
     void slotAddEffect(QDomElement effect);
     void slotEditProfiles();
     void slotEditProjectSettings();
+    void slotDisplayActionMessage( QAction *a);
 };
  
 #endif
index 563c6557290575dea49e90d4f5569f27264b46df..4a432208b8c30040ea49d10527ccdb7bfc161fd6 100644 (file)
@@ -55,7 +55,10 @@ Monitor::Monitor(QString name, MonitorManager *manager, QWidget *parent)
   connect(render, SIGNAL(playListDuration(int)), this, SLOT(adjustRulerSize(int)));
   connect(render, SIGNAL(rendererPosition(int)), this, SLOT(seekCursor(int)));
   connect(render, SIGNAL(rendererStopped(int)), this, SLOT(rendererStopped(int)));
-  if (name != "clip") connect(render, SIGNAL(rendererPosition(int)), this, SIGNAL(renderPosition(int)));
+  if (name != "clip") {
+    connect(render, SIGNAL(rendererPosition(int)), this, SIGNAL(renderPosition(int)));
+    connect(render, SIGNAL(durationChanged(int)), this, SIGNAL(durationChanged(int)));
+  }
   //render->createVideoXWindow(ui.video_frame->winId(), -1);
   int width = m_ruler->width();
   m_ruler->setLength(width);
index bc4df3c1fa065b95ec7251c4d2379117f5687044..c4a667e06655cec240dbb3137254396c3d97de4d 100644 (file)
@@ -76,6 +76,7 @@ class Monitor : public QWidget
 
   signals:
     void renderPosition(int);
+    void durationChanged(int);
 };
 
 #endif
index a44f016462ba3b5a9aa22f430375b28cf3dbc2de..74b3018e0947ff5c54a2eab0c24cab2dd3f25449 100644 (file)
@@ -553,7 +553,7 @@ void Render::setSceneList(QDomDocument list, int position)
 
        m_fps = m_mltProducer->get_fps();
 
-       emit playListDuration(m_mltProducer->get_playtime());
+       emit durationChanged(m_mltProducer->get_playtime());
        //m_connectTimer->start( 500 );
        connectPlaylist();
        m_generateScenelist = false;
@@ -901,7 +901,7 @@ void Render::mltCheckLength()
         Mlt::Playlist trackPlaylist(( mlt_playlist ) trackProducer.get_service());
         duration = Mlt::Producer(trackPlaylist.get_producer()).get_playtime() - 1;
        m_mltProducer->set("out", duration);
-       emit playListDuration(duration);
+       emit durationChanged(duration);
        return;
     }
     while (trackNb > 1) {
@@ -937,7 +937,7 @@ void Render::mltCheckLength()
        mltInsertClip(0, GenTime(), black);
 
        m_mltProducer->set("out", duration);
-       emit playListDuration(duration);
+       emit durationChanged(duration);
     }
 }
 
index a995c2a112bbacdb1ea8d258bd36a39226e31d8b..be3d937d80411401ada1a2d9d1cd5468b719baf9 100644 (file)
@@ -229,7 +229,7 @@ class Render:public QObject {
 //    void positionChanged(const GenTime &);
        /** Emitted when an error occurs within this renderer. */
     void error(const QString &, const QString &);
-    void playListDuration(int);
+    void durationChanged(int);
     void rendererPosition(int);
     void rendererStopped(int);