Sélectionner une révision Git
TimingLine.cc 1,55 Kio
#include "TimingLine.hh"
#include <QPainter>
#include <QGraphicsScene>
#include "TimingUtils.hh"
#include "TimingSyl.hh"
#include "TimingSeparator.hh"
using namespace Vivy;
TimingLine::TimingLine(Ass::Line *lineptr, QGraphicsItem *parent)
: QGraphicsObject(parent)
, line(*lineptr)
{
setPos(TimingUtils::posFromMs(int(line.getStart())*10), TimingUtils::axisHeight());
int currentTime = 0;
QVector<Ass::Syl> syls = line.getContent();
for (int i = 0; i < syls.size(); ++i){
int endSyl = currentTime + 10 * int(syls.at(i).getDuration());
TimingSyl* timingSyl = new TimingSyl(syls.at(i), currentTime, this);
// TODO: Here create the TimingSeparator and connect
TimingSeparator* timingSeparatorStart = new TimingSeparator(currentTime, i != 0 ? TimingSeparator::SeparatorStyle::Middle : TimingSeparator::SeparatorStyle::Start, this);
TimingSeparator* timingSeparatorEnd = new TimingSeparator(i != syls.size()-1 ? endSyl : int(10*line.getDuration()), i != syls.size()-1 ? TimingSeparator::SeparatorStyle::Middle : TimingSeparator::SeparatorStyle::End, this);
currentTime = endSyl;
}
}
QRectF
TimingLine::boundingRect() const
{
return QRectF(0, 0, TimingUtils::posFromMs(int(10*(line.getEnd()-line.getStart()))), TimingUtils::audioHeight());
}
void
TimingLine::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
painter->fillRect(QRectF(0, 0, TimingUtils::posFromMs(int(10*(line.getEnd()-line.getStart()))), TimingUtils::audioHeight()), QColor(0, 255, 255, 50));
}