From db101991c540c6d73fed14f934598e300016f6c4 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Mon, 31 Dec 2007 14:24:04 +0000 Subject: [PATCH] slowly progressing... ruler scrubbing, start of trackview svn path=/branches/KDE4/; revision=1785 --- src/customruler.cpp | 8 ++++++++ src/customruler.h | 1 + src/kdenlivedoc.cpp | 8 ++++++-- src/kdenlivedoc.h | 1 + src/monitor.cpp | 2 ++ src/trackview.cpp | 40 +++++++++++++++++++++++++++++++++++++++- src/trackview.h | 9 +++++++++ 7 files changed, 66 insertions(+), 3 deletions(-) diff --git a/src/customruler.cpp b/src/customruler.cpp index d05caca3..db04c008 100644 --- a/src/customruler.cpp +++ b/src/customruler.cpp @@ -78,6 +78,14 @@ void CustomRuler::mousePressEvent ( QMouseEvent * event ) kDebug()<x(); + slotNewValue( pos ); + kDebug()<play(0); + if (m_position < 1) return; m_position--; render->seekToFrame(m_position); ui.monitor_time->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position)); @@ -84,6 +85,7 @@ void Monitor::slotRewindOneFrame() void Monitor::slotForwardOneFrame() { render->play(0); + if (m_position >= m_length) return; m_position++; render->seekToFrame(m_position); ui.monitor_time->setText(m_monitorManager->timecode().getTimecodeFromFrames(m_position)); diff --git a/src/trackview.cpp b/src/trackview.cpp index 68efca20..40d79897 100644 --- a/src/trackview.cpp +++ b/src/trackview.cpp @@ -4,7 +4,8 @@ #include - +#include "documenttrack.h" +#include "headertrack.h" #include "trackview.h" TrackView::TrackView(KdenliveDoc *doc, QWidget *parent) @@ -17,9 +18,37 @@ TrackView::TrackView(KdenliveDoc *doc, QWidget *parent) layout->addWidget(m_ruler); view->ruler_frame->setLayout(layout); + m_tracksLayout = new QVBoxLayout; + m_tracksLayout->setContentsMargins (0, 0, 0, 0); + m_scrollArea = new QScrollArea; + + m_tracksLayout->addWidget(m_scrollArea); + m_scrollArea->setHorizontalScrollBarPolicy ( Qt::ScrollBarAlwaysOn); + m_scrollArea->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::MinimumExpanding); + m_tracksAreaLayout = new QVBoxLayout; + m_tracksAreaLayout->setContentsMargins (0, 0, 0, 0); + m_tracksAreaLayout->insertStretch (1000); + m_scrollArea->setLayout(m_tracksAreaLayout); + view->tracks_frame->setLayout(m_tracksLayout); + + m_headersLayout = new QVBoxLayout; + m_headersLayout->setContentsMargins (0, 0, 0, 0); + view->headers_frame->setLayout(m_headersLayout); + + parseDocument(doc->toXml()); + connect(view->horizontalSlider, SIGNAL(valueChanged ( int )), this, SLOT(slotChangeZoom( int ))); } +void TrackView::parseDocument(QDomDocument doc) +{ + QDomNodeList tracks = doc.elementsByTagName("kdenlivetrack"); + for (int i = 0; i < tracks.count(); i++) + { + slotAddTrack(i); + } +} + void TrackView::slotChangeZoom(int factor) { m_ruler->setPixelPerMark(factor); @@ -30,4 +59,13 @@ KdenliveDoc *TrackView::document() return m_doc; } +void TrackView::slotAddTrack(int ix) +{ + DocumentTrack *track = new DocumentTrack(); + HeaderTrack *header = new HeaderTrack(); + m_tracksAreaLayout->addWidget(track, ix, Qt::AlignTop); + m_headersLayout->addWidget(header, ix, Qt::AlignTop); + //track->show(); +} + #include "trackview.moc" diff --git a/src/trackview.h b/src/trackview.h index 63340c3e..c92b5519 100644 --- a/src/trackview.h +++ b/src/trackview.h @@ -1,7 +1,10 @@ #ifndef TRACKVIEW_H #define TRACKVIEW_H +#include +#include #include + #include "ui_timeline_ui.h" #include "customruler.h" #include "kdenlivedoc.h" @@ -20,9 +23,15 @@ class TrackView : public QWidget Ui::TimeLine_UI *view; CustomRuler *m_ruler; KdenliveDoc *m_doc; + QVBoxLayout *m_tracksLayout; + QVBoxLayout *m_headersLayout; + QScrollArea *m_scrollArea; + QVBoxLayout *m_tracksAreaLayout; + void parseDocument(QDomDocument doc); private slots: void slotChangeZoom(int factor); + void slotAddTrack(int ix); }; #endif -- 2.39.5