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 )), this, SLOT(slotCursorMoved( int )));
+ connect(m_ruler, SIGNAL(cursorMoved ( int )), m_trackview, 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 )));
m_trackview->initView();
}
void TrackView::slotCursorMoved(int pos)
{
- //kDebug()<<"///// CURSOR: "<<pos;
- m_ruler->slotNewValue(m_trackview->mapToScene(QPoint(pos, 0)).x());
- m_trackview->setCursorPos(pos);
+ kDebug()<<"///// CURSOR: "<<pos;
+ m_ruler->slotNewValue(pos * FRAME_SIZE); //(int) m_trackview->mapToScene(QPoint(pos, 0)).x());
+ //m_trackview->setCursorPos(pos);
//m_trackview->invalidateScene(QRectF(), QGraphicsScene::ForegroundLayer);
}
void TrackView::slotChangeZoom(int factor)
{
m_ruler->setPixelPerMark(factor);
- //m_scale = m_ruler->pixelPerMark();
m_scale = (double) m_ruler->comboScale[m_currentZoom] / m_ruler->comboScale[factor];
- //else m_scale = (double) m_ruler->comboScale[m_currentZoom] / m_ruler->comboScale[factor];
m_currentZoom = factor;
- kDebug()<<"///// ZOOMING: "<<m_scale;
m_trackview->scale(m_scale, 1);
- /*
- for (int i = 0; i < documentTracks.count(); i++) {
- kDebug()<<"------REPAINTING OBJECT";
- documentTracks.at(i)->update();
- //documentTracks.at(i)->setFixedWidth(300 * zoomFactor());
- }
- m_scrollBox->setFixedWidth(( m_projectDuration + 300) * zoomFactor());*/
- /*m_scrollArea->horizontalScrollBar()->setMaximum(300 * zoomFactor());
- m_scrollArea->horizontalScrollBar()->setPageStep(FRAME_SIZE * zoomFactor());*/
+ m_trackview->centerOn(QPointF(m_trackview->cursorPos(), 50));
}
const double TrackView::zoomFactor() const
return m_scale * FRAME_SIZE;
}
+void TrackView::slotZoomIn()
+{
+ view->horizontalSlider->setValue(view->horizontalSlider->value() - 1);
+}
+
+void TrackView::slotZoomOut()
+{
+ view->horizontalSlider->setValue(view->horizontalSlider->value() + 1);
+}
+
const int TrackView::mapLocalToValue(int x) const
{
return (int) x * zoomFactor();
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: "<<clip.cropTime<<", out: "<<clip.duration<<", Producer: "<<clip.producer<<"\n\n++++++++++++++++++++";
- ClipItem *item = new ClipItem(elem.attribute("type").toInt(), clipName, elem.attribute("producer").toInt(), QRectF(position, trackTop + 1, out, 49));
+ ClipItem *item = new ClipItem(elem.attribute("type").toInt(), clipName, elem.attribute("producer").toInt(), clipMaxDuration, QRectF(position, trackTop + 1, out, 49));
m_scene->addItem(item);
position += out;