]> git.sesse.net Git - kdenlive/blob - src/documenttrack.cpp
fa65d2cca32a5b8eebc78e40a6f9095ec3500407
[kdenlive] / src / documenttrack.cpp
1
2 #include <QMouseEvent>
3 #include <QStylePainter>
4
5 #include <KDebug>
6 #include <QFrame>
7 #include <QWidget>
8 #include <QPainter>
9
10
11 #include "documenttrack.h"
12
13 DocumentTrack::DocumentTrack(QDomElement xml, TrackView * view, QWidget *parent)
14     : QWidget(parent), m_xml(xml), m_trackDuration(0)
15 {
16   setFixedHeight(50);
17   parseXml();
18 }
19
20
21 void DocumentTrack::parseXml()
22 {
23   m_clipList.clear();
24   int position = 0;
25   for(QDomNode n = m_xml.firstChild(); !n.isNull(); n = n.nextSibling())
26   {
27     QDomElement elem = n.toElement();
28    if (elem.tagName() == "blank") {
29     position += elem.attribute("length", 0).toInt();
30    }
31    else if (elem.tagName() == "entry") {
32     TrackViewClip clip;
33     clip.startTime = position;
34     int in = elem.attribute("in", 0).toInt();
35     int out = elem.attribute("out", 0).toInt() - in;
36     clip.cropTime = in;
37     clip.duration = out;
38     position += out;
39     clip.producer = elem.attribute("producer", QString::null);
40     kDebug()<<"++++++++++++++\n\n / / /ADDING CLIP: "<<clip.cropTime<<", out: "<<clip.duration<<", Producer: "<<clip.producer<<"\n\n++++++++++++++++++++";
41     m_clipList.append(clip);
42    }
43   }
44   m_trackDuration = position;
45 }
46
47 int DocumentTrack::duration()
48 {
49   return m_trackDuration;
50 }
51
52 QList <TrackViewClip> DocumentTrack::clipList()
53 {
54   return m_clipList;
55 }
56
57 // virtual
58 void DocumentTrack::paintEvent(QPaintEvent *e )
59 {
60     QRect region = e->rect();
61     region.setBottomRight(QPoint(region.right() - 1, region.bottom() - 1));
62     QPainter painter(this);
63     painter.fillRect(region, QBrush(Qt::red));
64     painter.drawLine(region.bottomLeft (), region.bottomRight ());
65 }
66
67
68 #include "documenttrack.moc"