X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Ftrackview.cpp;h=2425e236c68efe5525d0c5a74da44916e7db4b70;hb=7931e3703f53c9eb89490b3d209c31674989cf95;hp=6a48058c83f2f65886749ecd52f5dfda976b6e72;hpb=01d238387bbc2afe861356fa69e71aab0447c3ae;p=kdenlive diff --git a/src/trackview.cpp b/src/trackview.cpp index 6a48058c..2425e236 100644 --- a/src/trackview.cpp +++ b/src/trackview.cpp @@ -40,12 +40,12 @@ TrackView::TrackView(KdenliveDoc *doc, QWidget *parent) view->setupUi(this); m_ruler = new CustomRuler(doc->timecode()); QVBoxLayout *layout = new QVBoxLayout; - layout->addWidget(m_ruler); view->ruler_frame->setLayout(layout); + layout->addWidget(m_ruler); m_scene = new QGraphicsScene(); - m_trackview = new CustomTrackView(m_doc->commandStack(), m_scene, this); - m_trackview->scale(FRAME_SIZE, 1); + m_trackview = new CustomTrackView(doc, m_scene, this); + m_trackview->scale(1, 1); m_trackview->setAlignment(Qt::AlignLeft | Qt::AlignTop); //m_scene->addRect(QRectF(0, 0, 100, 100), QPen(), QBrush(Qt::red)); @@ -59,19 +59,21 @@ TrackView::TrackView(KdenliveDoc *doc, QWidget *parent) tracksLayout->addWidget(m_trackview); parseDocument(doc->toXml()); - +/* TrackPanelClipMoveFunction *m_moveFunction = new TrackPanelClipMoveFunction(this); registerFunction("move", m_moveFunction); - setEditMode("move"); + setEditMode("move");*/ - view->horizontalSlider->setValue(0); - m_currentZoom = view->horizontalSlider->value(); connect(view->horizontalSlider, SIGNAL(valueChanged ( int )), this, SLOT(slotChangeZoom( int ))); - connect(m_ruler, SIGNAL(cursorMoved ( int )), m_trackview, SLOT(setCursorPos( int ))); + connect(m_ruler, SIGNAL(cursorMoved ( int )), this, SLOT(setCursorPos( int ))); connect(m_trackview, SIGNAL(cursorMoved ( int )), this, SLOT(slotCursorMoved( int ))); connect(m_trackview, SIGNAL(zoomIn ()), this, SLOT(slotZoomIn())); connect(m_trackview, SIGNAL(zoomOut ()), this, SLOT(slotZoomOut())); connect(m_trackview->horizontalScrollBar(), SIGNAL(sliderMoved( int )), m_ruler, SLOT(slotMoveRuler( int ))); + connect(m_trackview, SIGNAL(mousePosition(int)), this, SIGNAL(mousePosition(int))); + + view->horizontalSlider->setValue(4); + m_currentZoom = view->horizontalSlider->value(); m_trackview->initView(); } @@ -92,11 +94,18 @@ int TrackView::tracksNumber() void TrackView::parseDocument(QDomDocument doc) { + int cursorPos = 0; + kDebug()<<"//// DOCUMENT: "< m_projectDuration) m_projectDuration = duration; } + m_trackview->setDuration(m_projectDuration); + slotCursorMoved(cursorPos, true); //m_scrollBox->setGeometry(0, 0, 300 * zoomFactor(), m_scrollArea->height()); } -void TrackView::slotCursorMoved(int pos) +void TrackView::setCursorPos(int pos) +{ + emit cursorMoved(pos); + m_trackview->setCursorPos(pos * m_scale); +} + +void TrackView::moveCursorPos(int pos) +{ + m_trackview->setCursorPos(pos * m_scale, false); + //m_ruler->slotNewValue(pos * FRAME_SIZE, false); +} + +void TrackView::slotCursorMoved(int pos, bool emitSignal) { - kDebug()<<"///// CURSOR: "<slotNewValue(pos * FRAME_SIZE); //(int) m_trackview->mapToScene(QPoint(pos, 0)).x()); + m_ruler->slotNewValue(pos * FRAME_SIZE / m_scale, emitSignal); //(int) m_trackview->mapToScene(QPoint(pos, 0)).x()); //m_trackview->setCursorPos(pos); //m_trackview->invalidateScene(QRectF(), QGraphicsScene::ForegroundLayer); } @@ -120,15 +143,15 @@ void TrackView::slotCursorMoved(int pos) void TrackView::slotChangeZoom(int factor) { m_ruler->setPixelPerMark(factor); - m_scale = (double) m_ruler->comboScale[m_currentZoom] / m_ruler->comboScale[factor]; + m_scale = (double) FRAME_SIZE / m_ruler->comboScale[factor]; // m_ruler->comboScale[m_currentZoom] / m_currentZoom = factor; - m_trackview->scale(m_scale, 1); + m_trackview->setScale(m_scale); m_trackview->centerOn(QPointF(m_trackview->cursorPos(), 50)); } const double TrackView::zoomFactor() const { - return m_scale * FRAME_SIZE; + return m_scale; } void TrackView::slotZoomIn() @@ -153,20 +176,21 @@ KdenliveDoc *TrackView::document() int TrackView::slotAddAudioTrack(int ix, QDomElement xml) { + kDebug()<<"************* ADD AUDIO TRACK "<addTrack(); - DocumentTrack *track = new DocumentAudioTrack(xml, this, m_trackview); + //DocumentTrack *track = new DocumentAudioTrack(xml, this, m_trackview); HeaderTrack *header = new HeaderTrack(); //m_tracksAreaLayout->addWidget(track); //, ix, Qt::AlignTop); m_headersLayout->addWidget(header); //, ix, Qt::AlignTop); - documentTracks.insert(ix, track); - return track->duration(); + //documentTracks.insert(ix, track); + return 0; //track->show(); } int TrackView::slotAddVideoTrack(int ix, QDomElement xml) { m_trackview->addTrack(); - DocumentTrack *track = new DocumentVideoTrack(xml, this, m_trackview); + //DocumentTrack *track = new DocumentVideoTrack(xml, this, m_trackview); HeaderTrack *header = new HeaderTrack(); int trackTop = 50 * ix; int trackBottom = trackTop + 50; @@ -181,10 +205,8 @@ int TrackView::slotAddVideoTrack(int ix, QDomElement xml) else if (elem.tagName() == "entry") { int in = elem.attribute("in", 0).toInt(); int out = elem.attribute("out", 0).toInt() - in; - QString clipName = m_doc->producerName(elem.attribute("producer").toInt()); - int clipMaxDuration = m_doc->getProducerDuration(elem.attribute("producer").toInt()); //kDebug()<<"++++++++++++++\n\n / / /ADDING CLIP: "<addItem(item); position += out; @@ -195,7 +217,8 @@ int TrackView::slotAddVideoTrack(int ix, QDomElement xml) //m_tracksAreaLayout->addWidget(track); //, ix, Qt::AlignTop); m_headersLayout->addWidget(header); //, ix, Qt::AlignTop); - documentTracks.insert(ix, track); + //documentTracks.insert(ix, track); + kDebug()<<"************* ADD VIDEO TRACK "<show(); } @@ -227,7 +250,6 @@ const QString & TrackView::editMode() const /** This event occurs when the mouse has been moved. */ void TrackView::mouseMoveEvent(QMouseEvent * event) { - kDebug()<<"-------- TRACKVIEW MOUSE MOVE EVENT -----"; if (m_panelUnderMouse) { if (event->buttons() & Qt::LeftButton) { bool result = false;